index.js 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120
  1. import Vue from "vue";
  2. import Vuex from "vuex";
  3. import { checkToken, User } from "@/config/api.js";
  4. import { set } from "@/config/db.js"; //缓存操作
  5. import audioBg from "./modules/audioBg";
  6. import videoPlay from "./modules/videoPlay";
  7. Vue.use(Vuex);
  8. const store = new Vuex.Store({
  9. state: {
  10. isAuth: "", // 默认为
  11. isBind: "",
  12. pageRouterReport: "", //报告详情的路径
  13. pageRouterActivity: "", //活动详情的路径
  14. },
  15. mutations: {
  16. globalData(state, payload) {
  17. state.isAuth = payload.IsAuth;
  18. state.isBind = payload.IsBind;
  19. },
  20. setRouterReport(state, payload) {
  21. state.pageRouterReport = payload;
  22. },
  23. setRouterActivity(state, payload) {
  24. state.pageRouterActivity = payload;
  25. },
  26. },
  27. actions: {
  28. checkHandle(context, navigateUrl = "") {
  29. return new Promise((resolve, reject) => {
  30. checkToken()
  31. .then((res) => {
  32. if (res.Ret === 200) {
  33. context.commit("globalData", res.Data);
  34. if (navigateUrl != "noGO") {
  35. if (!res.Data.IsAuth && !res.Data.IsBind) {
  36. //已授权已绑定
  37. if (navigateUrl) {
  38. uni.navigateTo({
  39. url: navigateUrl,
  40. });
  41. }
  42. } else if (res.Data.IsAuth) {
  43. //未授权
  44. uni.navigateTo({
  45. url: "/pageMy/authGuide/authGuide",
  46. });
  47. } else if (res.Data.IsBind && !res.Data.IsAuth) {
  48. uni.showModal({
  49. title: "即将前往登录页面,请确认是否继续",
  50. content: "为了给您提供更好的使用体验,请登录后再进行查看或操作",
  51. confirmColor: "#3385FF",
  52. cancelColor: "#606266",
  53. success: function (res) {
  54. if (res.confirm) {
  55. //已授权未绑定
  56. uni.navigateTo({
  57. url: "/pageMy/login/login",
  58. });
  59. } else if (res.cancel) {
  60. console.log("用户点击取消");
  61. }
  62. },
  63. });
  64. }
  65. }
  66. resolve();
  67. }
  68. })
  69. .catch((err) => {
  70. reject(err);
  71. });
  72. });
  73. },
  74. //获取用户的pv/uv
  75. statistics(type, payload) {
  76. return new Promise((resolve, reject) => {
  77. User.pageHistory(payload)
  78. .then((res) => {
  79. if (res.Ret === 200) {
  80. resolve(res.Data);
  81. }
  82. })
  83. .catch((err) => {
  84. reject(err);
  85. });
  86. });
  87. },
  88. // 绑定手机号的弹框
  89. showLoginModal() {
  90. return new Promise((resolve, reject) => {
  91. if (!store.state.isAuth && store.state.isBind) {
  92. uni.showModal({
  93. title: "即将前往登录页面,请确认是否继续",
  94. content: "为了给您提供更好的使用体验,请登录后再进行查看或操作",
  95. confirmColor: "#3385FF",
  96. cancelColor: "#606266",
  97. success: function (res) {
  98. if (res.confirm) {
  99. //已授权未绑定
  100. uni.navigateTo({
  101. url: "/pageMy/login/login",
  102. });
  103. } else if (res.cancel) {
  104. console.log("用户点击取消");
  105. }
  106. },
  107. });
  108. reject();
  109. } else {
  110. resolve(true);
  111. }
  112. });
  113. },
  114. },
  115. getters: {},
  116. modules: { audioBg, videoPlay },
  117. });
  118. export default store;