user.js 2.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101
  1. /*
  2. * @Author: Zp 用户模块 仓库 store
  3. * @Desc: 这里存储用户数据、登录操作、权限查找、设置token等功能
  4. * @Date: 2020-03-11 16:59:43
  5. * @Last Modified by: Zp
  6. * @Last Modified time: 2020-04-29 20:47:02
  7. */
  8. import { login, checkRole, userGetRole } from 'api'
  9. import { getToken, setToken, getUserName, setUserName, getRoleList, setRoleList, setAdmin } from 'libs/token'
  10. export default {
  11. state: {
  12. token: getToken(),
  13. userName: getUserName(),
  14. roleList: getRoleList(),
  15. // 可操作权限角色数组
  16. access: [],
  17. // 判断是否存入权限角色数组
  18. hasAccess: false
  19. },
  20. getters: {
  21. userName: state => state.userName,
  22. access: state => state.access
  23. },
  24. mutations: {
  25. // 设置角色名
  26. setName(state, userName) {
  27. state.userName = userName
  28. setUserName(userName)
  29. },
  30. // 设置权限列表
  31. setRoles(state, roleList) {
  32. state.roleList = roleList
  33. setRoleList(roleList)
  34. },
  35. // 设置权限角色数组
  36. setAccess(state, access) {
  37. state.access = access
  38. },
  39. // 设置写入权限角色数组状态
  40. setHasAccess(state, status) {
  41. state.hasAccess = status
  42. }
  43. },
  44. actions: {
  45. // 登录相关动作
  46. login({ commit }, { phoneNum, password }) {
  47. return new Promise((resolve, reject) => {
  48. login({ phoneNum, password }).then(
  49. res => {
  50. const { data } = res
  51. setToken(data.token)
  52. setAdmin(data)
  53. commit('setName', data.admin.name || data.user.userName)
  54. resolve(res)
  55. }
  56. ).catch(error => {
  57. reject(error)
  58. })
  59. })
  60. },
  61. // 退出登录相关动作
  62. logout({ commit }) {
  63. return new Promise((resolve, reject) => {
  64. setToken('')
  65. commit('setHasAccess', false)
  66. resolve()
  67. })
  68. },
  69. // 获取角色相关列表
  70. userGetRole({ state, commit }) {
  71. return new Promise((resolve, reject) => {
  72. userGetRole().then(
  73. res => {
  74. const roleList = res.data
  75. commit('setRoles', JSON.stringify(roleList))
  76. resolve(roleList)
  77. }
  78. ).catch(error => {
  79. reject(error)
  80. })
  81. })
  82. },
  83. // 检查用户相关信息
  84. checkRole({ state, commit }) {
  85. return new Promise((resolve, reject) => {
  86. checkRole(state.token).then(
  87. res => {
  88. const access = res.data
  89. commit('setAccess', access)
  90. commit('setHasAccess', true)
  91. resolve({ access })
  92. }
  93. ).catch(error => {
  94. reject(error)
  95. })
  96. })
  97. }
  98. },
  99. modules: {}
  100. }