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";
|
4c4f7640
梁保满
路由表,路由前端文件
|
7
|
|
42056450
阿宝
权限修改
|
8
9
10
11
|
import request from "@/api/index";
import router from "@/router/index";
import { addrouters } from "@/router/index";
Vue.use(Vuex);
|
c1b532ad
梁保满
权限配置,路由基础设置
|
12
13
14
|
const store = new Vuex.Store({
state: {
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
15
16
|
token: "",
csCode: localStorage.getItem("csCode") || "",
|
42056450
阿宝
权限修改
|
17
18
19
20
21
22
23
24
25
26
|
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
梁保满
权限配置,路由基础设置
|
27
28
|
},
mutations: {
|
4c4f7640
梁保满
路由表,路由前端文件
|
29
|
setToken(state, token) {
|
42056450
阿宝
权限修改
|
30
|
state.token = token;
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
31
32
33
|
},
setCode(state, code) {
state.csCode = code;
|
42056450
阿宝
权限修改
|
34
|
localStorage.setItem("csCode", code);
|
4c4f7640
梁保满
路由表,路由前端文件
|
35
36
|
},
setInfo(state, data) {
|
42056450
阿宝
权限修改
|
37
38
|
state.info = { ...data };
sessionStorage.setItem("info", JSON.stringify(state.info));
|
4c4f7640
梁保满
路由表,路由前端文件
|
39
40
|
},
setRouters: (state, routers) => {
|
42056450
阿宝
权限修改
|
41
42
43
44
|
let aRouters = addrouters.filter((item) => {
let path = item.children[0]?.path.replace("/", "");
return routers?.includes(path);
});
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
45
|
|
42056450
阿宝
权限修改
|
46
47
48
|
state.addRouters = aRouters; // 保存动态路由用来addRouter
state.routers = defaultRouter.concat(aRouters); // 所有有权限的路由表,用来生成菜单列表
sessionStorage.setItem("addRouters", JSON.stringify(routers));
|
4c4f7640
梁保满
路由表,路由前端文件
|
49
|
},
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
50
51
|
setTokenSources(state, data) {
if (data instanceof Array) {
|
42056450
阿宝
权限修改
|
52
|
state.tokenSources.set(data[0], data[1]);
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
53
|
} else {
|
42056450
阿宝
权限修改
|
54
|
state.tokenSources = new Map();
|
65f592b6
梁保满
答题卡列表页
|
55
56
|
}
},
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
57
|
delTokenSources(state, data) {
|
42056450
阿宝
权限修改
|
58
|
state.tokenSources.delete(data);
|
65f592b6
梁保满
答题卡列表页
|
59
|
},
|
c1b532ad
梁保满
权限配置,路由基础设置
|
60
61
|
},
actions: {
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
62
|
Login({ state, commit }, params) {
|
42056450
阿宝
权限修改
|
63
|
let loginForm = {};
|
13b58a42
梁保满
备题组卷部分前端页面基本完成
|
64
65
|
loginForm.username = params.username;
loginForm.password = encryptLoginPassword(params.password);
|
42056450
阿宝
权限修改
|
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
request
.login({ ...loginForm })
.then((res) => {
let response = res;
if (response.status == 0) {
const userInfo = { ...response.data };
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: "/" });
}
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
91
|
}
|
42056450
阿宝
权限修改
|
92
93
|
})
.catch(() => {});
|
29f8fb90
梁保满
刷新浏览器重新动态添加路由
|
94
|
},
|
42056450
阿宝
权限修改
|
95
96
97
98
99
100
101
|
permissions({ state, commit }, role) {
commit("setToken", "isLogin");
let userInfo = state.info;
let authorityRouterObj = userInfo.permissions.filter((item) => {
return item.role == role;
});
userInfo.showRoleName = authorityRouterObj[0]?.roleName
|
bb778c90
阿宝
设备状态
|
102
|
commit("setInfo", userInfo);
|
42056450
阿宝
权限修改
|
103
|
commit("setRouters", [...authorityRouterObj[0]?.authorityRouter]);
|
13b58a42
梁保满
备题组卷部分前端页面基本完成
|
104
|
state.addRouters.forEach((res) => {
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
105
|
router.addRoute(res);
|
29f8fb90
梁保满
刷新浏览器重新动态添加路由
|
106
|
});
|
b769660c
梁保满
备课组题细节调整,随堂问列表页面开发完成
|
107
108
109
110
|
router.addRoute({
path: "*",
redirect: "/404",
hidden: true,
|
42056450
阿宝
权限修改
|
111
112
113
114
|
children: [],
});
router.push({ path: "/" });
},
|
c1b532ad
梁保满
权限配置,路由基础设置
|
115
116
|
},
getters: {
|
42056450
阿宝
权限修改
|
117
118
119
120
121
122
123
124
125
126
|
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
梁保满
权限配置,路由基础设置
|
127
128
|
},
modules: {
|
42056450
阿宝
权限修改
|
129
130
131
|
layoutStore,
},
});
|
c1b532ad
梁保满
权限配置,路由基础设置
|
132
|
|
42056450
阿宝
权限修改
|
133
|
export default store;
|