user.js 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  1. import { login, loginUp, getInfo } from '@/api/login'
  2. import { getToken, setToken, removeToken, setUserId, TokenKey } from '@/utils/auth'
  3. import { resetRouter } from '@/router'
  4. const getDefaultState = () => {
  5. return {
  6. token: getToken(),
  7. name: '',
  8. avatar: '',
  9. roles: [],
  10. UserType: sessionStorage.getItem('UserType') ? sessionStorage.getItem('UserType') : '',
  11. UserId: sessionStorage.getItem('User_Id') ? sessionStorage.getItem('User_Id') : '',
  12. userPoewrList: sessionStorage.getItem('userAuthList') ? JSON.parse(sessionStorage.getItem('userAuthList')) : []
  13. // userPoewrList: sessionStorage.setItem('userAuthList') ? JSON.parse(sessionStorage.getItem('userAuthList')) : []
  14. }
  15. }
  16. const state = getDefaultState()
  17. const mutations = {
  18. RESET_STATE: (state) => {
  19. Object.assign(state, getDefaultState())
  20. },
  21. SET_TOKEN: (state, token) => {
  22. state.token = token
  23. },
  24. SET_NAME: (state, name) => {
  25. state.name = name
  26. },
  27. SET_UserId: (state, UserId) => {
  28. state.UserId = UserId
  29. },
  30. SET_UserType: (state, UserType) => {
  31. state.UserType = UserType
  32. sessionStorage.setItem('UserType', UserType)
  33. },
  34. SET_ROLES: (state, roles) => {
  35. state.roles = roles
  36. },
  37. SET_AVATAR: (state, avatar) => {
  38. state.avatar = avatar
  39. },
  40. SET_UserPoewrList: (state, arr) => {
  41. state.userPoewrList = arr
  42. }
  43. }
  44. const actions = {
  45. // user login
  46. login ({ commit }, userInfo) {
  47. return new Promise((resolve, reject) => {
  48. login(userInfo).then(response => {
  49. const { returnData } = response
  50. commit('SET_TOKEN', returnData.Token)
  51. commit('SET_UserType', returnData.UserType)
  52. commit('SET_UserId', returnData.UserId)
  53. sessionStorage.setItem("userName", userInfo.LoginName);
  54. setToken(TokenKey, returnData.Token)
  55. setUserId(returnData.UserId)
  56. let nowDate = new Date();
  57. let oldDate = new Date(returnData.ValidTime);
  58. let diffTime = oldDate - nowDate;
  59. setTimeout(function () {
  60. resetToken()
  61. }, diffTime)
  62. resolve()
  63. }).catch(error => {
  64. reject(error)
  65. })
  66. })
  67. },
  68. // get user info
  69. getInfo ({ commit, state }) {
  70. return new Promise((resolve, reject) => {
  71. let data = {
  72. roles: state.userPoewrList,
  73. introduction: '',
  74. avatar: '',
  75. name: sessionStorage.getItem("userName"),
  76. token: state.token
  77. }
  78. const { name, avatar, roles } = data
  79. commit('SET_NAME', name)
  80. commit('SET_AVATAR', avatar)
  81. commit('SET_ROLES', roles ? roles : ['admin'])
  82. resolve(data)
  83. })
  84. },
  85. // user logout
  86. logout ({ commit, state }) {
  87. console.log(state)
  88. return new Promise((resolve, reject) => {
  89. loginUp({ "UserId": state.UserId, "UserType": state.UserType }).then(result => {
  90. // sessionStorage.removeItem("userName");
  91. // sessionStorage.removeItem("UserType");
  92. // sessionStorage.removeItem("User_Id");
  93. sessionStorage.clear();
  94. removeToken(); // must remove token first
  95. removeToken('codeToken');
  96. removeToken('systemSet');
  97. resetRouter();
  98. commit('RESET_STATE');
  99. commit('SET_ROLES', [])
  100. resolve();
  101. })
  102. // logout(state.token).then(() => {
  103. // removeToken() // must remove token first
  104. // resetRouter()
  105. // commit('RESET_STATE')
  106. // resolve()
  107. // }).catch(error => {
  108. // reject(error)
  109. // })
  110. })
  111. },
  112. // remove token
  113. resetToken ({ commit }) {
  114. return new Promise(resolve => {
  115. removeToken() // must remove token first
  116. commit('RESET_STATE')
  117. commit('SET_ROLES', [])
  118. resolve()
  119. })
  120. },
  121. setPowerList ({ commit }, arr) {
  122. commit('SET_UserPoewrList', arr);
  123. }
  124. }
  125. export default {
  126. namespaced: true,
  127. state,
  128. mutations,
  129. actions
  130. }