From 42056450a8c48e5af8bbc853146d147ee0419c01 Mon Sep 17 00:00:00 2001 From: 阿宝 Date: Mon, 19 Dec 2022 16:11:19 +0800 Subject: [PATCH] 权限修改 --- E/system-commandline-sentinel-files/dotnet-suggest-registration-git-credential-manager-core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null | 6 ++++++ src/api/apis/apis.js | 4 ++-- src/api/urls/apis.js | 2 +- src/router/permission.js | 116 ++++++++++++++++++++++++++++++++++++++++---------------------------------------------------------------------------- src/store/index.js | 194 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++----------------------------------------------------------------------------------------------------------- src/views/index/mainIndex.vue | 2 +- src/views/layout/header/header.vue | 4 ++-- src/views/login/index.vue | 6 ++++-- src/views/setUp/account.vue | 320 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++---- src/views/setUp/index.vue | 0 10 files changed, 459 insertions(+), 195 deletions(-) create mode 100644 E/system-commandline-sentinel-files/dotnet-suggest-registration-git-credential-manager-core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null delete mode 100644 src/views/setUp/index.vue diff --git a/E/system-commandline-sentinel-files/dotnet-suggest-registration-git-credential-manager-core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null b/E/system-commandline-sentinel-files/dotnet-suggest-registration-git-credential-manager-core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null new file mode 100644 index 0000000..821db7c --- /dev/null +++ b/E/system-commandline-sentinel-files/dotnet-suggest-registration-git-credential-manager-core, Version=2.0.0.0, Culture=neutral, PublicKeyToken=null @@ -0,0 +1,6 @@ +Exception during registration: +System.ComponentModel.Win32Exception (0x80004005): 系统找不到指定的文件。 + 在 System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) + 在 System.Diagnostics.Process.Start() + 在 System.CommandLine.Invocation.Process.StartProcess(String command, String args, String workingDir, Action`1 stdOut, Action`1 stdErr, ValueTuple`2[] environmentVariables) + 在 System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<b__10_1>d.MoveNext() \ No newline at end of file diff --git a/src/api/apis/apis.js b/src/api/apis/apis.js index 12936b3..f561bb4 100644 --- a/src/api/apis/apis.js +++ b/src/api/apis/apis.js @@ -28,9 +28,9 @@ export default { }) }, // 分页查询账号 - deviceList(data) { + userPage(data) { return service({ - url: setUpUrls.deviceList, + url: setUpUrls.userPage, method: 'POST', data }) diff --git a/src/api/urls/apis.js b/src/api/urls/apis.js index 12a3ebf..75d57d8 100644 --- a/src/api/urls/apis.js +++ b/src/api/urls/apis.js @@ -7,7 +7,7 @@ export default { // 查询角色列表 roleList: "/api_html/school/manager/roleList", // 分页查询账号 - deviceList: "/api_html/school/manager/userPage", + userPage: "/api_html/school/manager/userPage", // 修改账号 禁用账号、修改账号密码等 updateUser: "/api_html/school/manager/updateUser", // 查询学校详情 diff --git a/src/router/permission.js b/src/router/permission.js index 2d5feeb..a3d6618 100644 --- a/src/router/permission.js +++ b/src/router/permission.js @@ -1,94 +1,58 @@ -import NProgress from "nprogress" -import router from "./index" -import store from "../store" +import NProgress from "nprogress"; +import router from "./index"; +import store from "../store"; // 获取角色信息,根据用户权限动态加载路由 router.beforeEach((to, from, next) => { - NProgress.start() - if (store.getters.token) { - // if (to.path === "/login") { - next() - // } else { - // if (!store.getters.info.permissions) { - // (async function getAddRouters() { - // // 省略 axios 请求代码 通过 token 向后台请求用户权限等信息,这里用假数据赋值 - // const userInfo = { - // permissions: [ - // { - // role: "superAdmin", - // roleName: "超级管理员" - // } - // ], - // name: "李老师", - // // avatar: data.avatar ? data.avatar : "", - // // uid: data.id, - // authorityRouter: ["examinationPaper", - // "examinationPaperAdd", - // "examinationPaperEdit", - // "examinationPaperRecycle", "ask", - // "askAnalysis", - // "test", - // "testAnalysis", "portrait"], - - // } - // await store.commit("setInfo", { ...userInfo }) - // await store.commit("setRouters", userInfo.authorityRouter) - // let newAddRouters = store.getters.addRouters - // newAddRouters.forEach(res => { - // router.addRoute(res) - // }) - // router.addRoute({ - // path: "*", - // redirect: "/404", - // hidden: true, - // children: [] - // }) - // next({ path: to.fullPath }) - // }()) - // } else { - // next() - // } - // } + NProgress.start(); + if (to.path === "/login") { + next(); } else { - if (store.getters.info && store.getters.addRouters) { - console.log(store.getters.addRouters) - store.commit("setToken", "isLogin"); - store.commit( - "setRouters", - store.getters.info.authorityRouter - ); - - let newAddRouters = store.getters.addRouters; - newAddRouters.forEach((res) => { - router.addRoute(res); - }); - router.addRoute({ - path: "*", - redirect: "/404", - hidden: true, - children: [], - }); - next({ path: to.fullPath }) + if (store.getters.token) { + next(); } else { - if (store.getters.code) { - next() + if (store.getters.info && store.getters.addRouters) { + store.commit("setToken", "isLogin"); + let userInfo = store.getters.info; + let authorityRouterObj = userInfo.permissions.filter((item) => { + return item.roleName == userInfo.showRoleName; + }); + console.log([...authorityRouterObj[0]?.authorityRouter]) + store.commit("setRouters", [...authorityRouterObj[0]?.authorityRouter]); + store.commit("setInfo", { ...userInfo }); + store.getters.addRouters.forEach((res) => { + router.addRoute(res); + }); + router.addRoute({ + path: "*", + redirect: "/404", + hidden: true, + children: [], + }); + next({ path: to.fullPath }); } else { - if (to.path === "/login") { - next() + if (store.getters.code) { + next(); } else { - next({ path: "/login" }) + if (to.path === "/login") { + next(); + } else { + next({ path: "/login" }); + } } } } } -}) +}); router.afterEach(() => { - NProgress.done() -}) + NProgress.done(); +}); router.onError((error) => { const pattern = /Loading chunk (\d)+ failed/g; const isChunkLoadFailed = error.message.match(pattern); const targetPath = router.history.pending.fullPath; - if (isChunkLoadFailed) { router.replace(targetPath); } + if (isChunkLoadFailed) { + router.replace(targetPath); + } }); diff --git a/src/store/index.js b/src/store/index.js index f7cfc91..bd601ba 100644 --- a/src/store/index.js +++ b/src/store/index.js @@ -1,125 +1,106 @@ -import Vue from "vue" -import Vuex from "vuex" -import Cookies from "js-cookie" -import layoutStore from "./modules/layout/index" -import { defaultRouter } from "@/router/index" +import Vue from "vue"; +import Vuex from "vuex"; +import Cookies from "js-cookie"; +import layoutStore from "./modules/layout/index"; +import { defaultRouter } from "@/router/index"; import { encryptLoginPassword } from "@/utils"; -import request from "@/api/index" -import router from "@/router/index" -import { addrouters } from "@/router/index" -Vue.use(Vuex) +import request from "@/api/index"; +import router from "@/router/index"; +import { addrouters } from "@/router/index"; +Vue.use(Vuex); const store = new Vuex.Store({ state: { token: "", csCode: localStorage.getItem("csCode") || "", - info: sessionStorage.getItem("info") ? JSON.parse(sessionStorage.getItem("info")) : "", // 每次刷新都要通过token请求个人信息来筛选动态路由 - routers: [],//左侧菜单 - addRouters: sessionStorage.getItem("addRouters") ? JSON.parse(sessionStorage.getItem("addRouters")) : [],//动态路由 - tokenSources: new Map(),//正在请求接口(切换取消请求) + 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(), //正在请求接口(切换取消请求) }, mutations: { setToken(state, token) { - state.token = token + state.token = token; }, setCode(state, code) { state.csCode = code; - localStorage.setItem("csCode", code) + localStorage.setItem("csCode", code); }, setInfo(state, data) { - state.info = { - role: data.role, - permissions: data.permissions, - name: data.name, - authorityRouter: data.authorityRouter, - avatar: data.avatar ? data.avatar : "", - uid: data.uid - } - sessionStorage.setItem("info", JSON.stringify(state.info)) + state.info = { ...data }; + sessionStorage.setItem("info", JSON.stringify(state.info)); }, setRouters: (state, routers) => { - let aRouters = addrouters.filter(item => { - let path = item.children[0]?.path.replace("/", "") - return routers?.includes(path) - }) + let aRouters = addrouters.filter((item) => { + let path = item.children[0]?.path.replace("/", ""); + return routers?.includes(path); + }); - state.addRouters = aRouters // 保存动态路由用来addRouter - state.routers = defaultRouter.concat(aRouters) // 所有有权限的路由表,用来生成菜单列表 - sessionStorage.setItem("addRouters", JSON.stringify(routers)) + state.addRouters = aRouters; // 保存动态路由用来addRouter + state.routers = defaultRouter.concat(aRouters); // 所有有权限的路由表,用来生成菜单列表 + sessionStorage.setItem("addRouters", JSON.stringify(routers)); }, setTokenSources(state, data) { if (data instanceof Array) { - state.tokenSources.set(data[0], data[1]) + state.tokenSources.set(data[0], data[1]); } else { - state.tokenSources = new Map() + state.tokenSources = new Map(); } }, delTokenSources(state, data) { - state.tokenSources.delete(data) + state.tokenSources.delete(data); }, }, actions: { Login({ state, commit }, params) { - let loginForm = {} + let loginForm = {}; loginForm.username = params.username; loginForm.password = encryptLoginPassword(params.password); - request.login({ ...loginForm }).then(res => { - let response = res - if (response.status == 0) { - const userInfo = { ...response.data } - commit("setToken", Cookies.get("ZT_YIJIAO_TOKEN")); - commit("setInfo", { ...userInfo }); - - commit("setRouters", [...userInfo.authorityRouter]) - state.addRouters.forEach((res) => { - router.addRoute(res); - }); - router.addRoute({ - path: "*", - redirect: "/404", - hidden: true, - children: [] - }) - console.log() - if (params.url) { - window.location.href = params.url; - } else { - router.push({ path: "/" }) + 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: "/" }); + } } - } - }).catch(() => { - }) + }) + .catch(() => {}); }, - permissions({ state, commit }, that) { - let userInfo = { - permissions: [ - { - role: "ROLE_XUEXIAO", - roleName: "学校管理员", - }, - { - role: "ROLE_LAOSHI", - roleName: "老师", - }, - ], - name: "李老师", - authorityRouter:[ - "setUpAccount", - "setUpSchool", - "setUpTeacher", - "setUpStudent", - "card", - "device", - "analysis", - "down", - "downClient", - "dataSync" - ], - } - commit("setToken", "xxxx") + 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 commit("setInfo", userInfo); - commit("setRouters", [...userInfo.authorityRouter]) + commit("setRouters", [...authorityRouterObj[0]?.authorityRouter]); state.addRouters.forEach((res) => { router.addRoute(res); }); @@ -127,27 +108,26 @@ const store = new Vuex.Store({ path: "*", redirect: "/404", hidden: true, - children: [] - }) - // } - // }) - } + children: [], + }); + router.push({ path: "/" }); + }, }, getters: { - 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 + 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, }, modules: { - layoutStore - } -}) + layoutStore, + }, +}); -export default store +export default store; diff --git a/src/views/index/mainIndex.vue b/src/views/index/mainIndex.vue index 79e6d38..2516758 100644 --- a/src/views/index/mainIndex.vue +++ b/src/views/index/mainIndex.vue @@ -102,7 +102,7 @@ export default { }; }, watch:{ - "$store.getters.routers":function(val){ + "$store.getters.info.showRoleName":function(val){ window.location.reload() } }, diff --git a/src/views/layout/header/header.vue b/src/views/layout/header/header.vue index a23ba97..53ec8b4 100644 --- a/src/views/layout/header/header.vue +++ b/src/views/layout/header/header.vue @@ -14,7 +14,7 @@

{{ `${this.$store.getters.info.name}` }}

-

{{ `${permissions[0].roleName}` }}

+

{{ `${this.$store.getters.info.showRoleName}` }}

@@ -125,7 +125,7 @@ export default { }, handleCommand(command) { //刷新权限跳转首页 - this.$store.dispatch("permissions", this); + this.$store.dispatch("permissions", command); }, async logOut() { const { data,status } = await this.$request.logout(); diff --git a/src/views/login/index.vue b/src/views/login/index.vue index 7bb4a2e..2288288 100644 --- a/src/views/login/index.vue +++ b/src/views/login/index.vue @@ -92,8 +92,10 @@ export default { loginForm: { // username: "13610050254", // password: "Pw050254#", - username: "18946034886", - password: "Pw034886#", + // username: "18946034886", + // password: "Pw034886#", + username: "18332123505", + password: "Pw123505#", }, loginRules: { username: [ diff --git a/src/views/setUp/account.vue b/src/views/setUp/account.vue index 258fce6..29e2617 100644 --- a/src/views/setUp/account.vue +++ b/src/views/setUp/account.vue @@ -1,13 +1,325 @@ - \ No newline at end of file diff --git a/src/views/setUp/index.vue b/src/views/setUp/index.vue deleted file mode 100644 index e69de29..0000000 --- a/src/views/setUp/index.vue +++ /dev/null -- libgit2 0.21.4