user.js 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113
  1. "use strict";
  2. const common_vendor = require("../../common/vendor.js");
  3. const store_mutationTypes = require("../mutation-types.js");
  4. const utils_storage = require("../../utils/storage.js");
  5. require("../../api/login.js");
  6. const core_app = require("../../core/app.js");
  7. const loginSuccess = (commit, {
  8. token,
  9. id,
  10. userInfo
  11. }) => {
  12. const expiryTime = 30 * 86400 * 3;
  13. utils_storage.storage.set(store_mutationTypes.USER_ID, id, expiryTime);
  14. utils_storage.storage.set(store_mutationTypes.ACCESS_TOKEN, token, expiryTime);
  15. commit("SET_TOKEN", token);
  16. commit("SET_USER_ID", id);
  17. commit("SET_USER_INFO", userInfo);
  18. };
  19. const user = {
  20. state: {
  21. // 用户认证token
  22. token: common_vendor.index.getStorageSync(store_mutationTypes.ACCESS_TOKEN),
  23. // 用户ID
  24. userId: common_vendor.index.getStorageSync(store_mutationTypes.USER_ID),
  25. userInfo: common_vendor.index.getStorageSync(store_mutationTypes.USER_INFO),
  26. parent_id: null
  27. },
  28. mutations: {
  29. SET_TOKEN: (state, value) => {
  30. state.token = value;
  31. },
  32. SET_USER_ID: (state, value) => {
  33. state.userId = value;
  34. },
  35. SET_USER_INFO: (state, value) => {
  36. state.userInfo = value;
  37. },
  38. M_PARENT_ID: (state, value) => {
  39. state.parent_id = value;
  40. }
  41. },
  42. actions: {
  43. // 用户登录(普通登录: 输入手机号和验证码)
  44. async LoginWX({
  45. commit
  46. }, data) {
  47. const result = await userLoginWX(data);
  48. if (result) {
  49. if (result.data.token) {
  50. loginSuccess(commit, {
  51. token: result.data.token,
  52. id: result.data.id,
  53. userInfo: {}
  54. });
  55. return Promise.resolve(result);
  56. } else {
  57. return Promise.resolve(result);
  58. }
  59. }
  60. },
  61. // 用户登录(普通登录: 输入手机号和验证码)
  62. async LoginApp({
  63. commit
  64. }, data) {
  65. const result = await userLloginApp(data);
  66. if (result) {
  67. loginSuccess(commit, {
  68. token: result.data.token,
  69. id: result.data.id
  70. });
  71. return Promise.resolve(result);
  72. } else {
  73. return Promise.resolve(result);
  74. }
  75. },
  76. // H5登陆
  77. async LoginH5({
  78. commit
  79. }, data) {
  80. const result = await userLoginH5(data);
  81. if (result) {
  82. if (result.data.token) {
  83. loginSuccess(commit, {
  84. token: result.data.token,
  85. id: result.data.id
  86. });
  87. return Promise.resolve(result);
  88. } else {
  89. return Promise.resolve(result);
  90. }
  91. }
  92. },
  93. // 退出登录
  94. async Logout({
  95. commit
  96. }, data) {
  97. const store = this;
  98. if (store.getters.userId > 0) {
  99. utils_storage.storage.remove(store_mutationTypes.USER_ID);
  100. utils_storage.storage.remove(store_mutationTypes.ACCESS_TOKEN);
  101. utils_storage.storage.remove(store_mutationTypes.USER_INFO);
  102. commit("SET_TOKEN", "");
  103. commit("SET_USER_ID", null);
  104. commit("SET_USER_INFO", null);
  105. core_app.navTo("pages/home/index", {});
  106. return Promise.resolve({
  107. result: true
  108. });
  109. }
  110. }
  111. }
  112. };
  113. exports.user = user;