index.js 3.8 KB

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