index.js 2.0 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  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. },
  13. mutations: {
  14. globalData(state, payload) {
  15. state.isAuth = payload.IsAuth;
  16. state.isBind = payload.IsBind;
  17. },
  18. },
  19. actions: {
  20. checkHandle(context, navigateUrl = "") {
  21. return new Promise((resolve, reject) => {
  22. checkToken()
  23. .then((res) => {
  24. if (res.Ret === 200) {
  25. context.commit("globalData", res.Data);
  26. if (navigateUrl != "noGO") {
  27. if (!res.Data.IsAuth && !res.Data.IsBind) {
  28. //已授权已绑定
  29. if (navigateUrl) {
  30. uni.navigateTo({
  31. url: navigateUrl,
  32. });
  33. }
  34. } else if (res.Data.IsAuth) {
  35. //未授权
  36. uni.navigateTo({
  37. url: "/pageMy/authGuide/authGuide",
  38. });
  39. } else if (res.Data.IsBind && !res.Data.IsAuth) {
  40. //已授权未绑定
  41. uni.navigateTo({
  42. url: "/pageMy/login/login",
  43. });
  44. }
  45. }
  46. resolve();
  47. }
  48. })
  49. .catch((err) => {
  50. reject(err);
  51. });
  52. });
  53. },
  54. //获取用户的pv/uv
  55. statistics(type, payload) {
  56. return new Promise((resolve, reject) => {
  57. User.pageHistory(payload)
  58. .then((res) => {
  59. if (res.Ret === 200) {
  60. resolve(res.Data);
  61. }
  62. })
  63. .catch((err) => {
  64. reject(err);
  65. });
  66. });
  67. },
  68. },
  69. getters: {},
  70. modules: { audioBg,videoPlay },
  71. });
  72. export default store;