康巴易测肤/伤疤uniapp小程序类
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

87 lines
1.5KB

  1. import {
  2. login,
  3. getUserInfo
  4. } from '@/api/login'
  5. import {
  6. getToken,
  7. setToken,
  8. removeToken
  9. } from '@/utils/auth.js';
  10. const user = {
  11. state: {
  12. // 用户认证token
  13. token: getToken(),
  14. // 用户ID
  15. userId: null,
  16. // 用户信息
  17. userInfo: {},
  18. // 测试信息
  19. testText: ''
  20. },
  21. mutations: {
  22. SET_TOKEN: (state, token) => {
  23. state.token = token
  24. },
  25. SET_USER_ID: (state, userId) => {
  26. state.userId = userId
  27. },
  28. SET_USERINFO: (state, userInfo) => {
  29. state.userInfo = userInfo
  30. },
  31. SET_TEST_TEXT: (state, testText) => {
  32. state.testText = testText
  33. },
  34. },
  35. actions: {
  36. // 用户登录
  37. Login({
  38. commit
  39. }, userInfo) {
  40. return new Promise(async (resolve, reject) => {
  41. // TODO: 用户登录处理,根据需求修改
  42. const res = await login(userInfo);
  43. setToken(res.data.token);
  44. commit('SET_TOKEN', res.data.token);
  45. resolve(res);
  46. })
  47. },
  48. // 获取用户信息
  49. UserInfo({
  50. commit
  51. }) {
  52. return new Promise(async (resolve, reject) => {
  53. // TODO: 获取用户信息处理,根据需求修改
  54. try {
  55. const res = await getUserInfo();
  56. setUserId(res.data.userId);
  57. commit('SET_USER_ID', res.data.userId);
  58. commit('SET_USERINFO', res.data);
  59. resolve(res);
  60. } catch (e) {
  61. reject(e);
  62. }
  63. })
  64. },
  65. // 退出登录
  66. Logout({
  67. commit
  68. }) {
  69. return new Promise((resolve, reject) => {
  70. removeToken();
  71. removeUserId();
  72. commit('SET_TOKEN', null);
  73. commit('SET_USER_ID', null);
  74. resolve()
  75. })
  76. }
  77. }
  78. }
  79. export default user