康巴易测肤/伤疤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.

120 lines
2.2KB

  1. import {
  2. api
  3. } from '@/api/index'
  4. import {
  5. getToken,
  6. setToken,
  7. removeToken
  8. } from '@/utils/auth.js';
  9. import Vue from 'vue'
  10. const user = {
  11. state: {
  12. // 用户认证token
  13. token: getToken(),
  14. // 用户ID
  15. userId: null,
  16. // 用户信息
  17. userInfo: '',
  18. // 测试信息
  19. testText: '',
  20. // 本地拍照路径
  21. photoPath: '',
  22. // 测评结果
  23. resultList: [],
  24. resultPath: '',
  25. agreementState: ''
  26. },
  27. mutations: {
  28. SET_TOKEN: (state, token) => {
  29. state.token = token
  30. },
  31. SET_USER_ID: (state, userId) => {
  32. state.userId = userId
  33. },
  34. SET_USERINFO: (state, userInfo) => {
  35. state.userInfo = userInfo;
  36. },
  37. SET_TEST_TEXT: (state, testText) => {
  38. state.testText = testText
  39. },
  40. setPhotoPath: (state, photoPath) => {
  41. state.photoPath = photoPath;
  42. },
  43. setResultList: (state, resultList) => {
  44. state.resultList = resultList;
  45. },
  46. setResultPath: (state, resultPath) => {
  47. state.resultPath = resultPath;
  48. },
  49. setAgreementState: (state, agreementState) => {
  50. state.agreementState = agreementState;
  51. },
  52. saveAll(state) {
  53. console.log("state", state);
  54. uni.setStorageSync(
  55. `Default_Vuex_Storage`,
  56. JSON.stringify(state)
  57. )
  58. },
  59. setAll(state, data) {
  60. Object.keys(data).forEach((key) => {
  61. state[key] = Vue.prototype.$util.deepClone(data[key])
  62. })
  63. },
  64. },
  65. actions: {
  66. // 用户登录
  67. Login({
  68. commit
  69. }, userInfo) {
  70. return new Promise(async (resolve, reject) => {
  71. // TODO: 用户登录处理,根据需求修改
  72. const res = await api.Login(userInfo);
  73. setToken(res.data.token);
  74. commit('SET_TOKEN', res.data.token);
  75. resolve(res);
  76. })
  77. },
  78. // 获取用户信息
  79. UserInfo({
  80. commit
  81. }) {
  82. return new Promise(async (resolve, reject) => {
  83. // TODO: 获取用户信息处理,根据需求修改
  84. try {
  85. const res = await getUserInfo();
  86. setUserId(res.data.userId);
  87. commit('SET_USER_ID', res.data.userId);
  88. commit('SET_USERINFO', res.data);
  89. resolve(res);
  90. } catch (e) {
  91. reject(e);
  92. }
  93. })
  94. },
  95. // 退出登录
  96. Logout({
  97. commit
  98. }) {
  99. return new Promise((resolve, reject) => {
  100. removeToken();
  101. removeUserId();
  102. commit('SET_TOKEN', null);
  103. commit('SET_USER_ID', null);
  104. resolve()
  105. })
  106. }
  107. }
  108. }
  109. export default user