user.js 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102
  1. import { getUserInfo, removeSessionID, setUserInfo } from '@/utils/auth';
  2. import { user } from '@/store/mutation-types';
  3. import { resetRouter } from '@/router';
  4. import { login } from '@/api/user';
  5. const getDefaultSate = () => {
  6. const {
  7. session_id,
  8. user_code,
  9. user_real_name,
  10. user_type,
  11. user_name,
  12. popedom_code_list,
  13. image_url,
  14. is_inner
  15. } = getUserInfo();
  16. return {
  17. session_id,
  18. user_code,
  19. user_real_name,
  20. user_type,
  21. user_name,
  22. image_url,
  23. is_inner,
  24. popedom_code_list: popedom_code_list === undefined ? [] : JSON.parse(popedom_code_list)
  25. };
  26. };
  27. const state = getDefaultSate();
  28. const mutations = {
  29. [user.RESET_STATE]: state => {
  30. Object.assign(state, getDefaultSate());
  31. },
  32. [user.SET_USER_INFO]: (
  33. state,
  34. {
  35. user_code,
  36. user_real_name,
  37. user_type,
  38. session_id,
  39. popedom_code_list,
  40. user_name,
  41. image_url,
  42. is_inner
  43. }
  44. ) => {
  45. state.user_code = user_code;
  46. state.user_real_name = user_real_name;
  47. state.user_type = user_type;
  48. state.session_id = session_id;
  49. state.user_name = user_name;
  50. state.popedom_code_list = popedom_code_list;
  51. state.image_url = image_url;
  52. state.is_inner = is_inner;
  53. }
  54. };
  55. const actions = {
  56. // 登录
  57. login({ commit }, userInfo) {
  58. const { loginForm } = userInfo;
  59. return new Promise((reslove, reject) => {
  60. login(loginForm)
  61. .then(response => {
  62. setUserInfo(response);
  63. commit(user.SET_USER_INFO, response);
  64. reslove();
  65. })
  66. .catch(error => {
  67. reject(error);
  68. });
  69. });
  70. },
  71. // 用户退出
  72. signOut({ commit }) {
  73. return new Promise(resolve => {
  74. removeSessionID();
  75. resetRouter();
  76. commit(user.RESET_STATE);
  77. resolve();
  78. });
  79. },
  80. resetSessionID({ commit }) {
  81. return new Promise(reslove => {
  82. removeSessionID();
  83. commit(user.RESET_STATE);
  84. reslove();
  85. });
  86. }
  87. };
  88. export default {
  89. namespaced: true,
  90. state,
  91. mutations,
  92. actions
  93. };