user.js 1.8 KB

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