user.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081
  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 { session_id, user_code, user_real_name, user_type, user_name, popedom_code_list } =
  7. getUserInfo();
  8. return {
  9. session_id: session_id,
  10. user_code: user_code,
  11. user_real_name: user_real_name,
  12. user_type: user_type,
  13. user_name: user_name,
  14. popedom_code_list: popedom_code_list === undefined ? [] : JSON.parse(popedom_code_list)
  15. };
  16. };
  17. const state = getDefaultSate();
  18. const mutations = {
  19. [user.RESET_STATE]: state => {
  20. Object.assign(state, getDefaultSate());
  21. },
  22. [user.SET_USER_INFO]: (
  23. state,
  24. { user_code, user_real_name, user_type, session_id, popedom_code_list, user_name }
  25. ) => {
  26. state.user_code = user_code;
  27. state.user_real_name = user_real_name;
  28. state.user_type = user_type;
  29. state.session_id = session_id;
  30. state.user_name = user_name;
  31. state.popedom_code_list = popedom_code_list;
  32. }
  33. };
  34. const actions = {
  35. // 登录
  36. login({ commit }, userInfo) {
  37. const { loginForm } = userInfo;
  38. return new Promise((reslove, reject) => {
  39. login(loginForm)
  40. .then(response => {
  41. setUserInfo(response);
  42. commit(user.SET_USER_INFO, response);
  43. reslove();
  44. })
  45. .catch(error => {
  46. reject(error);
  47. });
  48. });
  49. },
  50. // 用户退出
  51. signOut({ commit }) {
  52. return new Promise(resolve => {
  53. removeSessionID();
  54. resetRouter();
  55. commit(user.RESET_STATE);
  56. resolve();
  57. });
  58. },
  59. resetSessionID({ commit }) {
  60. return new Promise(reslove => {
  61. removeSessionID();
  62. commit(user.RESET_STATE);
  63. reslove();
  64. });
  65. }
  66. };
  67. export default {
  68. namespaced: true,
  69. state,
  70. mutations,
  71. actions
  72. };