user.js 2.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. import { getUserInfo, removeSessionID, setUserInfo } from '@/utils/auth';
  2. import { user } from '@/store/mutation-types';
  3. import { resetRouter } from '@/router';
  4. import { login, updateLanguageType, GetLoginInfoByAccessCode } from '@/api/user';
  5. const getDefaultSate = () => {
  6. const { session_id, user_code, user_real_name, user_type, user_name } = getUserInfo();
  7. return {
  8. session_id: session_id,
  9. user_code: user_code,
  10. user_real_name: user_real_name,
  11. user_type: user_type,
  12. user_name: user_name,
  13. language_type: localStorage.getItem('language_type') || 'ZH'
  14. };
  15. };
  16. const state = getDefaultSate();
  17. const mutations = {
  18. [user.RESET_STATE]: state => {
  19. Object.assign(state, getDefaultSate());
  20. },
  21. [user.SET_USER_INFO]: (
  22. state,
  23. { user_code, user_real_name, user_type, language_type, session_id }
  24. ) => {
  25. state.user_code = user_code;
  26. state.user_real_name = user_real_name;
  27. state.user_type = user_type;
  28. state.language_type = language_type;
  29. state.session_id = session_id;
  30. localStorage.setItem('language_type', language_type);
  31. },
  32. [user.UPDATE_LANGUAGE_TYPE]: (state, language_type) => {
  33. localStorage.setItem('language_type', language_type);
  34. state.language_type = language_type;
  35. }
  36. };
  37. const actions = {
  38. // 登录
  39. login({ commit }, userInfo) {
  40. const { loginForm } = userInfo;
  41. return new Promise((reslove, reject) => {
  42. login(loginForm)
  43. .then(response => {
  44. setUserInfo(response);
  45. commit(user.SET_USER_INFO, response);
  46. reslove();
  47. })
  48. .catch(error => {
  49. reject(error);
  50. });
  51. });
  52. },
  53. // 根据身份通行码得到用户登录信息
  54. enterSys({ commit }, access_code) {
  55. return new Promise((reslove, reject) => {
  56. GetLoginInfoByAccessCode(access_code)
  57. .then(response => {
  58. setUserInfo(response);
  59. commit(user.SET_USER_INFO, response);
  60. reslove();
  61. })
  62. .catch(error => {
  63. reject(error);
  64. });
  65. });
  66. },
  67. // 用户退出
  68. signOut({ commit }) {
  69. return new Promise(resolve => {
  70. removeSessionID();
  71. resetRouter();
  72. commit(user.RESET_STATE);
  73. resolve();
  74. });
  75. },
  76. // 用户更换语言类型
  77. updateLanguageType({ commit }, language_type) {
  78. return new Promise((reslove, reject) => {
  79. updateLanguageType({ language_type })
  80. .then(() => {
  81. commit(user.UPDATE_LANGUAGE_TYPE, language_type);
  82. reslove();
  83. })
  84. .catch(error => {
  85. reject(error);
  86. });
  87. });
  88. },
  89. resetSessionID({ commit }) {
  90. return new Promise(reslove => {
  91. removeSessionID();
  92. commit(user.RESET_STATE);
  93. reslove();
  94. });
  95. }
  96. };
  97. export default {
  98. namespaced: true,
  99. state,
  100. mutations,
  101. actions
  102. };