index.js 1.8 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
  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. hasLogin: storage.getHasLogin(),
  13. userInfo: storage.getUserInfo(),
  14. uuid: storage.getUuid(),
  15. token: "",
  16. getHeadInfo: "",
  17. getWeixinHeightInfo: "",
  18. },
  19. mutations: {
  20. /**
  21. * 获取头部高度 异步使用
  22. * 文档链接在 https://uniapp.dcloud.io/api/system/info?id=getsysteminfosync
  23. * */
  24. GET_HEAD_HEIGHT(state) {
  25. return new Promise((resolve, reject) => {
  26. state.getHeadInfo = uni.getSystemInfoSync();
  27. resolve();
  28. });
  29. },
  30. /**
  31. * 获取微信小胶囊高度 */
  32. MP_WEIXIN_HEIGHT(state) {
  33. // width number 宽度,单位:px
  34. // height number 高度,单位:px
  35. // top number 上边界坐标,单位:px
  36. // right number 右边界坐标,单位:px
  37. // bottom number 下边界坐标,单位:px
  38. // left number 左边界坐标,单位:px
  39. state.getWeixinHeightInfo = uni.getMenuButtonBoundingClientRect();
  40. },
  41. // 前台存储登录状态
  42. SET_HAS_LOGIN(state, val) {
  43. state.hasLogin = val;
  44. },
  45. // 登录信息
  46. SET_USER_INFO(state, val) {
  47. state.userInfo = val;
  48. },
  49. login(state, userInfo) {
  50. state.userInfo = userInfo || {};
  51. state.userName =
  52. userInfo.Name || userInfo.Nickname || userInfo.Username || "匿名用户";
  53. state.hasLogin = true;
  54. },
  55. logout(state) {
  56. state.userName = "";
  57. state.hasLogin = false;
  58. },
  59. },
  60. actions: {},
  61. });
  62. export default store;