user.js 3.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146
  1. import { login, getAuthorizationInfo, logout } from '@/api/login'
  2. import { getAccountList } from '@/api/systemSetting/account'
  3. import { setToken, removeToken } from '@/utils/auth'
  4. const log = require('electron-log')
  5. const Store = require('electron-store')
  6. const localStore = new Store()
  7. const user = {
  8. state: {
  9. // token: getToken(),
  10. id: '',
  11. name: '',
  12. avatar: '',
  13. menuList: [],
  14. salesList: [],
  15. permissionList: []
  16. },
  17. mutations: {
  18. SET_TOKEN: (state, token) => {
  19. state.token = token
  20. },
  21. SET_NAME: (state, name) => {
  22. state.name = name
  23. },
  24. SET_SCENIC_NAME: (state, name) => {
  25. state.scenicName = name
  26. },
  27. SET_ID: (state, id) => {
  28. state.id = id
  29. },
  30. SET_AVATAR: (state, avatar) => {
  31. state.avatar = avatar
  32. },
  33. SET_MENU_LIST: (state, menuList) => {
  34. state.menuList = menuList
  35. },
  36. SET_PERMISSION_LIST: (state, permissionList) => {
  37. state.permissionList = permissionList
  38. },
  39. SET_SALES_LIST: (state, data) => {
  40. state.salesList = data
  41. }
  42. },
  43. actions: {
  44. getSalesList ({ commit }) {
  45. getAccountList({ pageNum: 0, pageSize: -1 }).then(res => {
  46. // let list = res.list.filter(i => i.roles.find(j => j.nickName.indexOf('售票') > -1))
  47. // if (list.length === 0) {
  48. // list = res.list
  49. // }
  50. commit('SET_SALES_LIST', res.list)
  51. })
  52. },
  53. // 登录
  54. Login ({ commit }, userInfo) {
  55. return new Promise((resolve, reject) => {
  56. login(userInfo).then(data => {
  57. if (data.code === '200') {
  58. console.log('登录成功', data)
  59. const { token, admin, resourceList, roleList } = data.data
  60. const { id, loginName } = admin || {}
  61. commit('SET_TOKEN', token)
  62. // 设置ID
  63. commit('SET_ID', id)
  64. // 设置用户名
  65. commit('SET_NAME', loginName)
  66. // 设置菜单
  67. commit('SET_MENU_LIST', resourceList || [])
  68. // 设置按钮权限
  69. commit('SET_PERMISSION_LIST', roleList || [])
  70. setToken(token)
  71. localStore.set('token', token)
  72. resolve(data.data)
  73. } else {
  74. reject(data.msg || '登录失败')
  75. }
  76. }).catch(error => {
  77. reject(error)
  78. })
  79. })
  80. },
  81. // 获取授权信息,所有接口必须调用此接口后执行
  82. GetInfo ({ commit, state }) {
  83. return new Promise((resolve, reject) => {
  84. getAuthorizationInfo().then(res => {
  85. const { admin, roleList, resourceList } = res.data || {}
  86. const { id, loginName } = admin || {}
  87. // 设置ID
  88. commit('SET_ID', id || '')
  89. // 设置用户名
  90. commit('SET_NAME', loginName || '')
  91. // 设置菜单
  92. commit('SET_MENU_LIST', resourceList || [])
  93. // 设置按钮权限
  94. commit('SET_PERMISSION_LIST', roleList || [])
  95. log.info(`【${loginName}】 登录成功`)
  96. // let permissions = _(info.permissionList)
  97. // .groupBy(i => {
  98. // return i.split(':')[0]
  99. // })
  100. // .mapValues(i => {
  101. // return i.map(j => {
  102. // return j.split(':')[1]
  103. // })
  104. // })
  105. // .value()
  106. // console.log(permissions)
  107. resolve(res)
  108. }).catch(error => {
  109. reject(error)
  110. })
  111. })
  112. },
  113. // 登出
  114. LogOut ({ commit, state }) {
  115. localStore.delete('token')
  116. return new Promise((resolve, reject) => {
  117. logout().then(() => {
  118. removeToken()
  119. resolve()
  120. }).catch(error => {
  121. reject(error)
  122. })
  123. })
  124. },
  125. // 前端 登出
  126. FedLogOut ({ commit }) {
  127. return new Promise(resolve => {
  128. localStore.delete('token')
  129. commit('SET_TOKEN', '')
  130. // removeToken()
  131. resolve()
  132. })
  133. }
  134. }
  135. }
  136. export default user