user.js 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. import {
  2. defineStore
  3. } from 'pinia';
  4. import {
  5. clone,
  6. cloneDeep
  7. } from 'lodash-es';
  8. import config from '@/utils/config'
  9. import storage from '@/utils/storage'
  10. // import constant from '@/utils/vuexParams'
  11. import {
  12. appLogin,
  13. logout,
  14. getInfo
  15. } from '@/api/login'
  16. import {
  17. getAccessToken,
  18. setToken,
  19. removeToken,
  20. removeTenantId,
  21. removeUserInfo,
  22. } from '@/utils/auth'
  23. const baseUrl = config.apiUrl
  24. const user = defineStore('user', {
  25. state: () => ({
  26. userInfo: {},
  27. isLogin: !!getAccessToken() // 登录状态
  28. }),
  29. actions: {
  30. // 登录
  31. Login({
  32. commit
  33. }, userInfo) {
  34. const username = userInfo.username.trim()
  35. const password = userInfo.password
  36. const captchaVerification = userInfo.captchaVerification
  37. return new Promise((resolve, reject) => {
  38. appLogin(userInfo).then(res => {
  39. res = res.data;
  40. // 设置 token
  41. setToken(res)
  42. resolve()
  43. }).catch(error => {
  44. reject(error)
  45. })
  46. })
  47. },
  48. // 获取用户信息
  49. GetInfo({
  50. commit,
  51. state
  52. }) {
  53. return new Promise((resolve, reject) => {
  54. getInfo().then(res => {
  55. res = res.data; // 读取 data 数据
  56. const user = res.user
  57. const avatar = (user == null || user.avatar === "" || user.avatar == null) ?
  58. require("@/static/images/profile.jpg") : user.avatar
  59. const nickname = (user == null || user.nickname === "" || user.nickname ==
  60. null) ? "" : user.nickname
  61. if (res.roles && res.roles.length > 0) {
  62. commit('SET_ROLES', res.roles)
  63. commit('SET_PERMISSIONS', res.permissions)
  64. } else {
  65. commit('SET_ROLES', ['ROLE_DEFAULT'])
  66. }
  67. commit('SET_NAME', nickname)
  68. commit('SET_AVATAR', avatar)
  69. resolve(res)
  70. }).catch(error => {
  71. reject(error)
  72. })
  73. })
  74. },
  75. // 退出系统
  76. LogOut() {
  77. return new Promise((resolve, reject) => {
  78. logout().then(() => {
  79. removeToken()
  80. removeTenantId()
  81. removeUserInfo()
  82. resolve()
  83. }).catch(error => {
  84. reject(error)
  85. })
  86. })
  87. }
  88. }
  89. })
  90. export default user