42056450
 
  阿宝
 
权限修改
 | 
1
2
3
4
5 
 | 
  import Vue from "vue";
  import Vuex from "vuex";
  import Cookies from "js-cookie";
  import layoutStore from "./modules/layout/index";
  import { defaultRouter } from "@/router/index";
 
 | 
13b58a42
 
  梁保满
 
备题组卷部分前端页面基本完成
 | 
6 
 | 
  import { encryptLoginPassword } from "@/utils";
 
 | 
aeac66d4
 
  阿宝
 
飞书测试bug
 | 
7 
 | 
  import { Message } from "element-ui";
 
 | 
4c4f7640
 
  梁保满
 
路由表,路由前端文件
 | 
8 
 | 
  
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
9
10
11
12 
 | 
  import request from "@/api/index";
  import router from "@/router/index";
  import { addrouters } from "@/router/index";
  Vue.use(Vuex);
 
 | 
c1b532ad
 
  梁保满
 
权限配置,路由基础设置
 | 
13
14
15 
 | 
  
  const store = new Vuex.Store({
    state: {
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
16
17 
 | 
      token: "",
      csCode: localStorage.getItem("csCode") || "",
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
18
19
20
21
22
23
24
25
26
27 
 | 
      info: sessionStorage.getItem("info")
        ? JSON.parse(sessionStorage.getItem("info"))
        : "", // 每次刷新都要通过token请求个人信息来筛选动态路由
      routers: [], //左侧菜单
      addRouters:
        sessionStorage.getItem("addRouters") &&
        sessionStorage.getItem("addRouters") != "undefined"
          ? JSON.parse(sessionStorage.getItem("addRouters"))
          : [], //动态路由
      tokenSources: new Map(), //正在请求接口(切换取消请求)
 
 | 
c1b532ad
 
  梁保满
 
权限配置,路由基础设置
 | 
28
29 
 | 
    },
    mutations: {
 
 | 
4c4f7640
 
  梁保满
 
路由表,路由前端文件
 | 
30 
 | 
      setToken(state, token) {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
31 
 | 
        state.token = token;
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
32
33
34 
 | 
      },
      setCode(state, code) {
        state.csCode = code;
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
35 
 | 
        localStorage.setItem("csCode", code);
 
 | 
4c4f7640
 
  梁保满
 
路由表,路由前端文件
 | 
36
37 
 | 
      },
      setInfo(state, data) {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
38
39 
 | 
        state.info = { ...data };
        sessionStorage.setItem("info", JSON.stringify(state.info));
 
 | 
4c4f7640
 
  梁保满
 
路由表,路由前端文件
 | 
40
41 
 | 
      },
      setRouters: (state, routers) => {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
42
43
44
45 
 | 
        let aRouters = addrouters.filter((item) => {
          let path = item.children[0]?.path.replace("/", "");
          return routers?.includes(path);
        });
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
46 
 | 
  
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
47
48
49 
 | 
        state.addRouters = aRouters; // 保存动态路由用来addRouter
        state.routers = defaultRouter.concat(aRouters); // 所有有权限的路由表,用来生成菜单列表
        sessionStorage.setItem("addRouters", JSON.stringify(routers));
 
 | 
4c4f7640
 
  梁保满
 
路由表,路由前端文件
 | 
50 
 | 
      },
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
51
52 
 | 
      setTokenSources(state, data) {
        if (data instanceof Array) {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
53 
 | 
          state.tokenSources.set(data[0], data[1]);
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
54 
 | 
        } else {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
55 
 | 
          state.tokenSources = new Map();
 
 | 
65f592b6
 
  梁保满
 
答题卡列表页
 | 
56
57 
 | 
        }
      },
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
58 
 | 
      delTokenSources(state, data) {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
59 
 | 
        state.tokenSources.delete(data);
 
 | 
65f592b6
 
  梁保满
 
答题卡列表页
 | 
60 
 | 
      },
 
 | 
c1b532ad
 
  梁保满
 
权限配置,路由基础设置
 | 
61
62 
 | 
    },
    actions: {
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
63 
 | 
      Login({ state, commit }, params) {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
64 
 | 
        let loginForm = {};
 
 | 
13b58a42
 
  梁保满
 
备题组卷部分前端页面基本完成
 | 
65
66 
 | 
        loginForm.username = params.username;
        loginForm.password = encryptLoginPassword(params.password);
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
67
68
69
70
71
72 
 | 
        request
          .login({ ...loginForm })
          .then((res) => {
            let response = res;
            if (response.status == 0) {
              const userInfo = { ...response.data };
 
 | 
aeac66d4
 
  阿宝
 
飞书测试bug
 | 
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94 
 | 
              if (userInfo.permissions && userInfo.permissions.length) {
                userInfo.showRoleName = response.data.permissions[0]?.roleName;
                commit("setToken", "isLogin");
                commit("setInfo", { ...userInfo });
                commit("setRouters", [
                  ...userInfo.permissions[0]?.authorityRouter,
                ]);
                state.addRouters.forEach((res) => {
                  router.addRoute(res);
                });
                router.addRoute({
                  path: "*",
                  redirect: "/404",
                  hidden: true,
                  children: [],
                });
                console.log(Cookies.get("ZT_YIJIAO_TOKEN"));
                if (params.url) {
                  window.location.href = params.url;
                } else {
                  router.push({ path: "/" });
                }
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
95 
 | 
              } else {
 
 | 
aeac66d4
 
  阿宝
 
飞书测试bug
 | 
96
97
98
99
100 
 | 
                Message({
                  message: "该账号暂无权限,请联系管理员~",
                  type: "error",
                  duration: 3 * 1000,
                });
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
101 
 | 
              }
 
 | 
aeac66d4
 
  阿宝
 
飞书测试bug
 | 
102
103
104
105
106
107 
 | 
            } else {
              Message({
                message: response.info,
                type: "error",
                duration: 3 * 1000,
              });
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
108 
 | 
            }
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
109
110 
 | 
          })
          .catch(() => {});
 
 | 
29f8fb90
 
  梁保满
 
刷新浏览器重新动态添加路由
 | 
111 
 | 
      },
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
112
113
114
115
116
117 
 | 
      permissions({ state, commit }, role) {
        commit("setToken", "isLogin");
        let userInfo = state.info;
        let authorityRouterObj = userInfo.permissions.filter((item) => {
          return item.role == role;
        });
 
 | 
aeac66d4
 
  阿宝
 
飞书测试bug
 | 
118 
 | 
        userInfo.showRoleName = authorityRouterObj[0]?.roleName;
 
 | 
bb778c90
 
  阿宝
 
设备状态
 | 
119 
 | 
        commit("setInfo", userInfo);
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
120 
 | 
        commit("setRouters", [...authorityRouterObj[0]?.authorityRouter]);
 
 | 
13b58a42
 
  梁保满
 
备题组卷部分前端页面基本完成
 | 
121 
 | 
        state.addRouters.forEach((res) => {
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
122 
 | 
          router.addRoute(res);
 
 | 
29f8fb90
 
  梁保满
 
刷新浏览器重新动态添加路由
 | 
123 
 | 
        });
 
 | 
b769660c
 
  梁保满
 
备课组题细节调整,随堂问列表页面开发完成
 | 
124
125
126
127 
 | 
        router.addRoute({
          path: "*",
          redirect: "/404",
          hidden: true,
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
128
129
130
131 
 | 
          children: [],
        });
        router.push({ path: "/" });
      },
 
 | 
c1b532ad
 
  梁保满
 
权限配置,路由基础设置
 | 
132
133 
 | 
    },
    getters: {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
134
135
136
137
138
139
140
141
142
143 
 | 
      addRouters: (state) => state.addRouters,
      token: (state) => state.token,
      code: (state) => state.csCode,
      info: (state) => state.info,
      routers: (state) => state.routers,
      logoShow: (state) => state.layoutStore.logoShow,
      isCollapse: (state) => state.layoutStore.isCollapse,
      uniquerouter: (state) => state.layoutStore.uniquerouter,
      tabnavBox: (state) => state.layoutStore.tabnavBox,
      rightNav: (state) => state.layoutStore.rightNav,
 
 | 
c1b532ad
 
  梁保满
 
权限配置,路由基础设置
 | 
144
145 
 | 
    },
    modules: {
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
146
147
148 
 | 
      layoutStore,
    },
  });
 
 | 
c1b532ad
 
  梁保满
 
权限配置,路由基础设置
 | 
149 
 | 
  
 
 | 
42056450
 
  阿宝
 
权限修改
 | 
150 
 | 
  export default store;
 
 |