index.js 1.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. import Vue from "vue";
  2. import Vuex from "vuex";
  3. import storage from "@/utils/storage";
  4. Vue.use(Vuex);
  5. const store = new Vuex.Store({
  6. state: {
  7. verificationKey: "", //获取key表示验证通过
  8. /**
  9. * 是否需要强制登录
  10. */
  11. forcedLogin: false,
  12. distributionId:"", //分销员Id 如果当前账户从未登录过时记录
  13. hasLogin: storage.getHasLogin(),
  14. userInfo: storage.getUserInfo(),
  15. uuid: storage.getUuid(),
  16. token: "",
  17. getHeadInfo: "",
  18. getWeixinHeightInfo: "",
  19. },
  20. mutations: {
  21. /**
  22. * 获取头部高度 异步使用
  23. * 文档链接在 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync
  24. * */
  25. GET_HEAD_HEIGHT(state) {
  26. return new Promise((resolve, reject) => {
  27. state.getHeadInfo = uni.getSystemInfoSync();
  28. resolve();
  29. });
  30. },
  31. /**
  32. * 获取微信小胶囊高度 */
  33. MP_WEIXIN_HEIGHT(state) {
  34. // width number 宽度,单位:px
  35. // height number 高度,单位:px
  36. // top number 上边界坐标,单位:px
  37. // right number 右边界坐标,单位:px
  38. // bottom number 下边界坐标,单位:px
  39. // left number 左边界坐标,单位:px
  40. state.getWeixinHeightInfo = uni.getMenuButtonBoundingClientRect();
  41. },
  42. // 前台存储登录状态
  43. SET_HAS_LOGIN(state, val) {
  44. state.hasLogin = val;
  45. },
  46. // 登录信息
  47. SET_USER_INFO(state, val) {
  48. state.userInfo = val;
  49. },
  50. login(state, userInfo) {
  51. state.userInfo = userInfo || {};
  52. state.userName =
  53. userInfo.Name || userInfo.Nickname || userInfo.Username || "匿名用户";
  54. state.hasLogin = true;
  55. },
  56. logout(state) {
  57. state.userName = "";
  58. state.hasLogin = false;
  59. },
  60. },
  61. actions: {},
  62. });
  63. export default store;