user.js 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. import { getUserInfo, removeSessionID, setUserInfo } from '@/utils/auth';
  2. import { user } from '@/store/mutation-types';
  3. import { resetRouter } from '@/router';
  4. import { login, updateLanguageType } 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. signOut({ commit }) {
  55. return new Promise(resolve => {
  56. removeSessionID();
  57. resetRouter();
  58. commit(user.RESET_STATE);
  59. resolve();
  60. });
  61. },
  62. // 用户更换语言类型
  63. updateLanguageType({ commit }, language_type) {
  64. return new Promise((reslove, reject) => {
  65. updateLanguageType({ language_type })
  66. .then(() => {
  67. commit(user.UPDATE_LANGUAGE_TYPE, language_type);
  68. reslove();
  69. })
  70. .catch(error => {
  71. reject(error);
  72. });
  73. });
  74. },
  75. resetSessionID({ commit }) {
  76. return new Promise(reslove => {
  77. removeSessionID();
  78. commit(user.RESET_STATE);
  79. reslove();
  80. });
  81. }
  82. };
  83. export default {
  84. namespaced: true,
  85. state,
  86. mutations,
  87. actions
  88. };