user.js 3.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118
  1. import Vue from 'vue'
  2. import { login, mobileOrEmailCodeLogin, logout } from '@/api/login.js'
  3. import { setToken, removeToken, setRefreshToken } from '@/utils/auth';
  4. import { LOGIN, MOBILE_LOGIN, LOGOUT, SET_USER, SET_USER_FROM_STORAGE } from '@/store/mutation-types'
  5. const state = {
  6. user: {
  7. userId: null,
  8. username: '',
  9. realName: '',
  10. office: {
  11. },
  12. department: {
  13. },
  14. authorities: []
  15. }
  16. }
  17. // getters
  18. const getters = {
  19. isLogin: state => {
  20. if (!state.user.userId) {
  21. var userJson = sessionStorage.getItem('user');
  22. if(userJson && userJson != ''){
  23. //state.user = JSON.parse(userJson);
  24. //Vue.set(state.user, 'office', user.office);
  25. }
  26. }
  27. return state.user.userId;
  28. }
  29. }
  30. // actions
  31. const actions = {
  32. [LOGIN]({ commit }, user) {
  33. return new Promise((resolve, reject) => {
  34. login(user.account, user.password, user.captcha, user.codeUid, user.token, user.validate, user.captchaToken).then(response => {
  35. const data = response.data;
  36. user.password = '';
  37. data['user'] = user;
  38. commit(SET_USER, data);
  39. resolve()
  40. }).catch(error => {
  41. reject(error)
  42. })
  43. })
  44. },
  45. [MOBILE_LOGIN]({ commit }, param) {
  46. return new Promise((resolve, reject) => {
  47. mobileOrEmailCodeLogin(param.mobile, param.checkCode,param.service,param.token).then(response => {
  48. const data = response.data;
  49. param.password = '';
  50. data['user'] = param;
  51. commit(SET_USER, data);
  52. resolve()
  53. }).catch(error => {
  54. reject(error)
  55. })
  56. })
  57. },
  58. [LOGOUT]({ commit }, meetingId) {
  59. return new Promise((resolve, reject) => {
  60. logout().then(response => {
  61. // commit(SET_USER, {
  62. // user: {
  63. // userId: '',
  64. // account: '',
  65. // realName: '',
  66. // }
  67. // })
  68. removeToken();
  69. localStorage.removeItem('user');
  70. resolve()
  71. }).catch(error => {
  72. removeToken();
  73. localStorage.removeItem('user');
  74. reject(error)
  75. })
  76. })
  77. // return null;
  78. },
  79. }
  80. // mutations
  81. const mutations = {
  82. [SET_USER](state, data) {
  83. // state.user.account = data.user.account;
  84. var userInfo = JSON.parse(data.userInfo);
  85. Vue.set(state.user, 'office', userInfo.office);
  86. Vue.set(state.user, 'realName', userInfo.realName);
  87. Vue.set(state.user, 'username', userInfo.username);
  88. Vue.set(state.user, "userId", userInfo.id);
  89. Vue.set(state.user, "office", userInfo.office);
  90. Vue.set(state.user, "department", userInfo.department);
  91. Vue.set(state.user, "authorities", userInfo.authorities);
  92. Vue.set(state.user, "umsUser", userInfo.umsUser);
  93. setToken(data.access_token);
  94. setRefreshToken(data['refresh_token']);
  95. localStorage.setItem('user', JSON.stringify(state.user));
  96. },
  97. [SET_USER_FROM_STORAGE](state, data) {
  98. state.user = data;
  99. // Vue.set(state.user, 'office', data.office);
  100. // Vue.set(state.user, 'realName', data.realName);
  101. }
  102. }
  103. export default {
  104. namespaced: true,
  105. state,
  106. getters,
  107. actions,
  108. mutations
  109. }