user.js 1.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { defineStore } from 'pinia'
  2. import { miniAppLogin } from '../services/common'
  3. export const useUserStore = defineStore('user', () => {
  4. // 用户信息
  5. const userInfo = ref(uni.getStorageSync('userInfo') || {})
  6. const setUserInfo = data => {
  7. userInfo.value = data
  8. uni.setStorageSync('userInfo', data)
  9. }
  10. // token
  11. const token = ref(uni.getStorageSync('token') || '')
  12. const setToken = data => {
  13. token.value = data
  14. uni.setStorageSync('token', data)
  15. }
  16. // 角色
  17. const roles = ref(uni.getStorageSync('roles') || [])
  18. const setRoles = data => {
  19. roles.value = data
  20. uni.setStorageSync('roles', data)
  21. }
  22. // openId
  23. const openId = ref(uni.getStorageSync('openId') || '')
  24. const setOpenId = data => {
  25. openId.value = data
  26. uni.setStorageSync('openId', data)
  27. }
  28. // 系统信息
  29. const systemInfo = ref(uni.getStorageSync('systemInfo') || {})
  30. const setSystemInfo = data => {
  31. systemInfo.value = data
  32. uni.setStorageSync('systemInfo', data)
  33. }
  34. const login = data => {
  35. return new Promise((resolve, reject) => {
  36. miniAppLogin().then(res => {
  37. if (res.success) {
  38. setUserInfo(res.user || {})
  39. setToken(res.token || '')
  40. setRoles((res.roles || []).map(item => item.name))
  41. setOpenId(res.openId || '')
  42. resolve(res)
  43. } else {
  44. reject(res)
  45. }
  46. }).catch(err => {
  47. logout()
  48. reject(err)
  49. })
  50. })
  51. }
  52. const logout = () => {
  53. return new Promise(resolve => {
  54. setUserInfo({})
  55. setToken('')
  56. setRoles([])
  57. setOpenId('')
  58. setSystemInfo({})
  59. resolve()
  60. })
  61. }
  62. return {
  63. userInfo,
  64. setUserInfo,
  65. token,
  66. setToken,
  67. roles,
  68. setRoles,
  69. openId,
  70. setOpenId,
  71. systemInfo,
  72. setSystemInfo,
  73. login,
  74. logout
  75. }
  76. })