user.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import {
  2. defineStore
  3. } from "pinia";
  4. import config from '@/config'
  5. import storage from '@/utils/storage'
  6. import constant from '@/utils/constant'
  7. import {
  8. login,
  9. logout,
  10. getInfo
  11. } from '@/api/login'
  12. import {
  13. getToken,
  14. setToken,
  15. removeToken
  16. } from '@/utils/auth'
  17. const baseUrl = config.baseUrl
  18. const useUserStore = defineStore('user', {
  19. state: () => ({
  20. token: getToken(),
  21. name: storage.get(constant.name),
  22. avatar: storage.get(constant.avatar),
  23. roles: storage.get(constant.roles),
  24. permissions: storage.get(constant.permissions)
  25. }),
  26. actions: {
  27. // 登录
  28. Login(userInfo) {
  29. const clientType = "wx_app"
  30. const code = ""
  31. const loginName = userInfo.username.trim()
  32. const password = userInfo.password
  33. const pointJson = userInfo.pointJson
  34. return new Promise((resolve, reject) => {
  35. login(loginName, password, code, clientType, pointJson).then(res => {
  36. console.log(res)
  37. setToken(res.satoken)
  38. this.token = res.satoken
  39. this.name = res.mercName
  40. storage.set(constant.name, res.mercName)
  41. resolve(res)
  42. }).catch(error => {
  43. reject(error)
  44. })
  45. })
  46. },
  47. // 获取用户信息
  48. GetInfo() {
  49. return new Promise((resolve, reject) => {
  50. getInfo().then(res => {
  51. const user = res.user
  52. const avatar = (user == null || user.avatar == "" || user.avatar == null) ?
  53. '' : baseUrl + user.avatar
  54. const username = (user == null || user.userName == "" || user.userName ==
  55. null) ? "" : user.userName
  56. if (res.roles && res.roles.length > 0) {
  57. this.roles = res.roles
  58. storage.set(constant.roles, res.roles)
  59. this.permissions = res.permissions
  60. storage.set(constant.permissions, res.permissions)
  61. } else {
  62. this.roles = ['ROLE_DEFAULT']
  63. storage.set(constant.roles, ['ROLE_DEFAULT'])
  64. }
  65. resolve(res)
  66. }).catch(error => {
  67. reject(error)
  68. })
  69. })
  70. },
  71. // 退出系统
  72. LogOut() {
  73. return new Promise((resolve, reject) => {
  74. this.roles = ''
  75. storage.set(constant.roles, '')
  76. this.permissions = ''
  77. storage.set(constant.permissions, '')
  78. this.permissions = res.permissions
  79. storage.set(constant.permissions, res.permissions)
  80. removeToken()
  81. storage.clean()
  82. resolve('退出登录成功~')
  83. })
  84. }
  85. }
  86. })
  87. export default useUserStore