useUserStore.js 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758
  1. import {defineStore} from "pinia";
  2. import storage from "@/utils/storage";
  3. import {useConfigStore} from "@/store/useConfigStore";
  4. import {login} from "@/api/student";
  5. import { showToast } from "@/utils/app";
  6. export const useUserStore = defineStore({
  7. id: 'user',
  8. state: () => ({
  9. token: null,
  10. userInfo: {}
  11. }),
  12. getters: {},
  13. actions: {
  14. _init() {
  15. this.checkLogin()
  16. },
  17. checkLogin() {
  18. let token = storage.getKey('LOGIN_TEACHER_TOKEN')
  19. if (token) {
  20. this.token = token
  21. }
  22. },
  23. async login(loginForm) {
  24. const configStore = useConfigStore()
  25. // let mac = configStore.getMac()
  26. return new Promise(async (resolve, reject) => {
  27. const res = await login({
  28. username: loginForm.mac,
  29. password: loginForm.pwd,
  30. })
  31. if(res.code == 1 && res.data.token){
  32. this.setToken(res.data)
  33. resolve(res.data)
  34. }
  35. else{
  36. showToast(res.msg)
  37. reject(res.msg)
  38. }
  39. })
  40. },
  41. logout() {
  42. this.token = null
  43. this.userInfo = {}
  44. storage.remove("LOGIN_TEACHER_TOKEN")
  45. storage.remove("userInfo")
  46. },
  47. setToken(data){
  48. this.token = data.token
  49. this.userInfo = data.info
  50. storage.setKey('LOGIN_TEACHER_TOKEN', data.token)
  51. storage.setKey('userInfo', data.info)
  52. }
  53. // getMachineInfo() {
  54. // this.mac = '123'
  55. // },
  56. }
  57. })