index.js 3.9 KB

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