user.ts 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130
  1. import config from '@/config'
  2. import storage from '@/utils/storage'
  3. import constant from '@/utils/constant'
  4. import { login, logout, getInfo } from '@/api/login'
  5. import { getToken, setToken, removeToken } from '@/utils/auth'
  6. import { UserState, UserForm } from '@/types/store'
  7. import { Module } from 'vuex'
  8. const baseUrl = config.baseUrl
  9. const user: Module<UserState, UserState> = {
  10. state: {
  11. token: getToken(),
  12. name: storage.get(constant.name),
  13. avatar: storage.get(constant.avatar),
  14. roles: storage.get(constant.roles),
  15. permissions: storage.get(constant.permissions),
  16. userOrWorker: storage.get(constant.userOrWorker),
  17. nickName: storage.get(constant.nickName),
  18. userId: null,
  19. messageCount:0
  20. },
  21. mutations: {
  22. SET_TOKEN: (state, token: string) => {
  23. state.token = token
  24. },
  25. SET_NAME: (state, name: string) => {
  26. state.name = name
  27. storage.set(constant.name, name)
  28. },
  29. SET_AVATAR: (state, avatar: string) => {
  30. state.avatar = avatar
  31. storage.set(constant.avatar, avatar)
  32. },
  33. SET_ROLES: (state, roles: Array<string>) => {
  34. state.roles = roles
  35. storage.set(constant.roles, roles)
  36. },
  37. SET_PERMISSIONS: (state, permissions: Array<string>) => {
  38. state.permissions = permissions
  39. storage.set(constant.permissions, permissions)
  40. },
  41. SET_USERORWORKER: (state, userOrWorker: Array<string>) => {
  42. state.userOrWorker = userOrWorker
  43. storage.set(constant.userOrWorker, userOrWorker)
  44. },
  45. SET_NICKNAME: (state, nickName: String) => {
  46. state.nickName = nickName
  47. storage.set(constant.nickName, nickName)
  48. },
  49. SET_USERID: (state, id: String) => {
  50. state.userId = id
  51. },
  52. SET_MESSAGECOUNT: (state, num: Number) => {
  53. state.messageCount = num
  54. },
  55. },
  56. actions: {
  57. // 登录
  58. Login({ commit }, userInfo: UserForm) {
  59. const username = userInfo.username
  60. const password = userInfo.password
  61. const code = userInfo.code
  62. const uuid = userInfo.uuid
  63. return new Promise((resolve, reject) => {
  64. login(username, password, code, uuid).then((res: any) => {
  65. setToken(res.token)
  66. commit('SET_TOKEN', res.token)
  67. resolve(res)
  68. }).catch(error => {
  69. reject(error)
  70. })
  71. })
  72. },
  73. // 获取用户信息
  74. GetInfo({ commit, state }) {
  75. return new Promise((resolve, reject) => {
  76. getInfo().then((res: any) => {
  77. const user = res.user
  78. const avatar = (user == null || user.avatar == "" || user.avatar == null) ? "/static/serverImg/mine/user.png" : user.avatar
  79. const username = (user == null || user.userName == "" || user.userName == null) ? "" : user.userName
  80. if (res.roles && res.roles.length > 0) {
  81. commit('SET_ROLES', res.roles)
  82. commit('SET_PERMISSIONS', res.permissions)
  83. } else {
  84. commit('SET_ROLES', ['ROLE_DEFAULT'])
  85. }
  86. console.log(res.user.userOrWorker, '>>>>>>res.user.userOrWorker');
  87. if (res.user) commit('SET_USERORWORKER', res.user.userOrWorker)
  88. console.log(state.userOrWorker, '>>>>>>');
  89. commit('SET_NAME', username)
  90. commit('SET_AVATAR', avatar)
  91. commit('SET_NICKNAME', res.user.nickName)
  92. commit('SET_USERID', res.user.userId)
  93. resolve(res)
  94. }).catch(error => {
  95. reject(error)
  96. })
  97. })
  98. },
  99. // 退出系统
  100. LogOut({ commit, state }) {
  101. return new Promise((resolve, reject) => {
  102. logout().then((res) => {
  103. commit('SET_TOKEN', '')
  104. commit('SET_ROLES', [])
  105. commit('SET_PERMISSIONS', [])
  106. removeToken()
  107. storage.clean()
  108. resolve(res)
  109. }).catch(error => {
  110. reject(error)
  111. })
  112. })
  113. },
  114. handleMessageCount({ commit, state },count) {
  115. commit('SET_MESSAGECOUNT', count);
  116. },
  117. }
  118. }
  119. export default user