From e07e6af94e8df05f4f5331c631e18e265d7174ca Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期二, 05 九月 2023 16:52:27 +0800 Subject: [PATCH] modified: src/router/index.js --- src/router/index.js | 320 +++++++++++++---------------------------------------- 1 files changed, 79 insertions(+), 241 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index e932803..c6c68a8 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -3,33 +3,8 @@ Vue.use(Router) -/* Layout */ import Layout from '@/layout' -/** - * Note: sub-menu only appear when route children.length >= 1 - * Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html - * - * hidden: true if set true, item will not show in the sidebar(default is false) - * alwaysShow: true if set true, will always show the root menu - * if not set alwaysShow, when item has more than one children route, - * it will becomes nested mode, otherwise not show the root menu - * redirect: noRedirect if set noRedirect will no redirect in the breadcrumb - * name:'router-name' the name is used by <keep-alive> (must set!!!) - * meta : { - roles: ['admin','editor'] control the page roles (you can set multiple roles) - title: 'title' the name show in sidebar and breadcrumb (recommend set) - icon: 'svg-name'/'el-icon-x' the icon show in the sidebar - breadcrumb: false if set false, the item will hidden in breadcrumb(default is true) - activeMenu: '/example/list' if set path, the sidebar will highlight the path you set - } - */ - -/** - * constantRoutes - * a base page that does not have permission requirements - * all roles can be accessed - */ function getRoutes() { let constantRoutes = [ { @@ -51,7 +26,6 @@ path: '/', component: Layout, redirect: '/home', - // meta: { title: '涓婚〉', icon: 'el-icon-s-home' }, children: [{ path: 'home', name: 'Home', @@ -85,85 +59,6 @@ } ] }, - // { - // path: '/rawMaterials', - // component: Layout, - // redirect: '/rawMaterials/reportForInspection', - // name: 'rawMaterials', - // meta: { title: '妫�楠�', icon: 'el-icon-s-help' }, - // children: [ - // { - // path: 'reportForInspection', - // name: 'ReportForInspection', - // component: () => import('@/views/rawMaterials/reportForInspection/index'), - // meta: { title: '鍘熸潗鏂欐姤妫�', icon: 'table' }, - // children: [ - // // { - // // path: 'index', - // // name: 'ReportForInspectionIndex', - // // // hidden: true, - // // component: () => import('@/views/rawMaterials/reportForInspection/index'), - // // meta: { title: '鍘熸潗鏂欐姤妫�', icon: 'table' } - // // }, - // { - // path: 'forInspectionDetail', - // name: 'ForInspectionDetail', - // hidden: true, - // component: () => import('@/views/rawMaterials/reportForInspection/forInspectionDetail'), - // meta: { title: '鏂板妫�楠屽崟璇︽儏', icon: 'table' } - // } - // ] - // }, - // { - // path: 'print', - // name: 'Print', - // component: () => import('@/views/rawMaterials/print/index'), - // meta: { title: '鏉$爜鎵撳嵃', icon: 'tree' } - // }, - // { - // path: 'planAssignments', - // name: 'PlanAssignments', - // component: () => import('@/views/rawMaterials/planAssignments/index'), - // meta: { title: '妫�楠岃鍒掑垎閰�', icon: 'tree' } - // }, - // { - // path: 'rawMaterialInspection', - // name: 'RawMaterialInspection', - // component: () => import('@/views/rawMaterials/rawMaterialInspection/index'), - // meta: { title: '鍘熸潗鏂欐楠�', icon: 'tree' } - // }, - // { - // path: 'checkTheReport', - // name: 'CheckTheReport', - // component: () => import('@/views/rawMaterials/checkTheReport/index'), - // meta: { title: '妫�楠屾姤鍛�', icon: 'tree' } - // }, - // { - // path: 'reportAuditing', - // name: 'ReportAuditing', - // component: () => import('@/views/rawMaterials/reportAuditing/index'), - // meta: { title: '鎶ュ憡瀹℃牳', icon: 'tree' } - // }, - // { - // path: 'nonConformanceReview', - // name: 'NonConformanceReview', - // component: () => import('@/views/rawMaterials/nonConformanceReview/index'), - // meta: { title: '涓嶅悎鏍煎弽棣�', icon: 'tree' } - // }, - // { - // path: 'nonConformingFeedback', - // name: 'NonConformingFeedback', - // component: () => import('@/views/rawMaterials/nonConformingFeedback/index'), - // meta: { title: '涓嶅悎鏍艰瘎瀹�', icon: 'tree' } - // }, - // { - // path: 'passRateStatistics', - // name: 'PassRateStatistics', - // component: () => import('@/views/rawMaterials/passRateStatistics/index'), - // meta: { title: '鍚堟牸鐜囩粺璁�', icon: 'tree' } - // } - // ] - // }, { path: '/inspectionManagement', component: Layout, @@ -199,7 +94,7 @@ meta: { title: '鏂板妫�楠�', icon: 'tree' } }, { - path: 'Viewdetails', + path: 'Viewdetails/:id', name: 'Viewdetails', hidden: true, component: () => import('@/views/experiment/inspectionApplication/Viewdetails/index'), @@ -223,12 +118,12 @@ component: () => import('@/views/experiment/reportAuditing/index'), meta: { title: '鎶ュ憡瀹℃牳', icon: 'tree' } }, - { - path: 'nonConformanceReview', - name: 'NonConformanceReview', - component: () => import('@/views/experiment/nonConformanceReview/index'), - meta: { title: '涓嶅悎鏍煎搧鍙嶉', icon: 'tree' } - }, + // { + // path: 'nonConformanceReview', + // name: 'NonConformanceReview', + // component: () => import('@/views/experiment/nonConformanceReview/index'), + // meta: { title: '涓嶅悎鏍煎搧鍙嶉', icon: 'tree' } + // }, { path: 'nonConformingFeedback', name: 'NonConformingFeedback', @@ -243,69 +138,6 @@ } ] }, - // { - // path: '/finishedProduct', - // component: Layout, - // redirect: '/finishedProduct/reportForInspection', - // name: 'FinishedProduct', - // meta: { title: '鎴愬搧妫�楠�', icon: 'el-icon-s-help' }, - // children: [ - // { - // path: 'reportForInspection', - // name: 'ReportForInspection', - // component: () => import('@/views/rawMaterials/reportForInspection/index'), - // meta: { title: '鎴愬搧閫佹鐧昏', icon: 'table' } - // }, - // { - // path: 'print', - // name: 'Print', - // component: () => import('@/views/rawMaterials/print/index'), - // meta: { title: '鏉$爜鎵撳嵃', icon: 'tree' } - // }, - // { - // path: 'planAssignments', - // name: 'PlanAssignments', - // component: () => import('@/views/rawMaterials/planAssignments/index'), - // meta: { title: '妫�楠岃鍒掑垎閰�', icon: 'tree' } - // }, - // { - // path: 'rawMaterialInspection', - // name: 'RawMaterialInspection', - // component: () => import('@/views/rawMaterials/rawMaterialInspection/index'), - // meta: { title: '鎴愬搧妫�楠�', icon: 'tree' } - // }, - // { - // path: 'checkTheReport', - // name: 'CheckTheReport', - // component: () => import('@/views/rawMaterials/checkTheReport/index'), - // meta: { title: '妫�楠屾姤鍛�', icon: 'tree' } - // }, - // { - // path: 'reportAuditing', - // name: 'ReportAuditing', - // component: () => import('@/views/rawMaterials/reportAuditing/index'), - // meta: { title: '鎶ュ憡瀹℃牳', icon: 'tree' } - // }, - // { - // path: 'nonConformanceReview', - // name: 'NonConformanceReview', - // component: () => import('@/views/rawMaterials/nonConformanceReview/index'), - // meta: { title: '涓嶅悎鏍煎弽棣�', icon: 'tree' } - // }, - // { - // path: 'nonConformingFeedback', - // name: 'NonConformingFeedback', - // component: () => import('@/views/rawMaterials/nonConformingFeedback/index'), - // meta: { title: '涓嶅悎鏍艰瘎瀹�', icon: 'tree' } - // }, - // { - // path: 'passRateStatistics', - // name: 'PassRateStatistics', - // component: () => import('@/views/rawMaterials/passRateStatistics/index'), - // meta: { title: '鍚堟牸鐜囩粺璁�', icon: 'tree' } - // } - // ] - // }, { path: '/laboratory', component: Layout, @@ -433,9 +265,7 @@ { path: 'message', name: 'Message', - // hidden: true, component: () => import('@/views/message/message/index'), - // meta: { title: '鎴戠殑娑堟伅', icon: 'table' } }, ] }, @@ -499,7 +329,6 @@ path: '/', component: Layout, redirect: '/home', - // meta: { title: '涓婚〉', icon: 'el-icon-s-home' }, children: [{ path: 'home', name: 'Home', @@ -516,10 +345,10 @@ let result = []; let obj = {}; for (let i = 0; i < tempArr.length; i++) { - if (!obj[tempArr[i].path]) { - result.push(tempArr[i]); - obj[tempArr[i].path] = true; - }; + if (!obj[tempArr[i].path]) { + result.push(tempArr[i]); + obj[tempArr[i].path] = true; + }; }; return result; }; @@ -527,82 +356,91 @@ function createRouter(Routees) { if (JSON.parse(sessionStorage.getItem("user")) != undefined && JSON.parse(sessionStorage.getItem("user")) != null) { - let sessionLayerId=JSON.parse(sessionStorage.getItem("user")).sessionLayerId - if(sessionLayerId!='c3284d0f94606de1fd2af172aba15bf3'){ - let role = JSON.parse(sessionStorage.getItem("user")).role - let menuFather = baseRouter - const dataMenuFather = fn3(menuFather) - role.roleMenuList.forEach((r) => { - dataMenuFather.push(Routees.filter(item => { - return item.path === r.menuUrl - })[0]) - }) - let eqChildren = []; - role.roleMenuList.forEach((r) => { + let sessionLayerId = JSON.parse(sessionStorage.getItem("user")).sessionLayerId + if (sessionLayerId != 'f5c8bcb7d5a0fd27e2323280f7e98cad') { + let role = JSON.parse(sessionStorage.getItem("user")).role + let menuFather = baseRouter + const dataMenuFather = fn3(menuFather) + role.roleMenuList.forEach((r) => { + if(r.menuName!='棣栭〉'){ + dataMenuFather.push(Routees.filter(item => { + return item.path === r.menuUrl + })[0]) + } + }) + let eqChildren = []; + role.roleMenuList.forEach((r) => { + dataMenuFather.forEach(m => { + if (r.menuUrl === m.path) { + r.children.forEach(rc => { + m.children.forEach(mc => { + if (mc.meta != undefined) { + eqChildren.push({ "path": mc.path, "meta": JSON.parse(JSON.stringify(mc.meta)) }) + delete mc["meta"] + } + }) + }) + } + }) + }) + let once = [] + role.roleMenuList.forEach((r) => { + r.children.forEach(rc => { + eqChildren.forEach(eq => { + if (eq != undefined) { + if (eq.path == rc.menuUrl.split("/")[1]) { + once.push(eq) + } + } + }) + }) + }) dataMenuFather.forEach(m => { - if (r.menuUrl === m.path) { - r.children.forEach(rc => { - m.children.forEach(mc => { - if (mc.meta != undefined) { - eqChildren.push({ "path": mc.path, "meta": JSON.parse(JSON.stringify(mc.meta)) }) - delete mc["meta"] + let i = 0 + if (m.children != undefined) { + m.children.forEach(mc => { + once.forEach(eq => { + if (eq != undefined) { + if (mc.path == eq.path) { + if (i === 0) { + m.redirect = m.path + "/" + eq.path + } + i++; + mc.meta = eq.meta + } } }) }) } }) - }) - let once = [] - role.roleMenuList.forEach((r) => { - r.children.forEach(rc => { - eqChildren.forEach(eq => { - if (eq != undefined) { - if (eq.path == rc.menuUrl.split("/")[1]) { - once.push(eq) - } - } - }) - }) - }) - dataMenuFather.forEach(m => { - let i = 0 - if (m.children != undefined) { - m.children.forEach(mc => { - once.forEach(eq => { - if (eq != undefined) { - if (mc.path == eq.path) { - if (i === 0) { - m.redirect = m.path + "/" + eq.path - } - i++; - mc.meta = eq.meta - } - } - }) - }) - } - }) - dataMenuFather.push({path: '*', redirect: '/404', hidden: true}) - dataMenuFather.push() - Routees = dataMenuFather - } + dataMenuFather.push({ path: '*', redirect: '/404', hidden: true }) + dataMenuFather.push() + Routees = dataMenuFather + } } else { Routees = baseRouter } return new Router({ - // mode: 'history', // require service support + mode: 'history', // require service support scrollBehavior: () => ({ y: 0 }), routes: Routees }) } -let router = createRouter(getRoutes()) +let router = createRouter(getRoutes()) // Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 export async function resetRouter() { let newRouter = createRouter(getRoutes()) - router.matcher = newRouter.matcher + router.matcher = newRouter.matcher } -router.beforeEach(async (to, from, next) => { +router.beforeEach((to, from, next) => { + /** + * 濮旀墭鏂板 鏀捐 + */ + if (to.path.indexOf("/addCommision/") === 0) { + next() + return + } // 1. 鍒ゆ柇鏄笉鏄櫥褰曢〉闈� // 鏄櫥褰曢〉闈� if (to.path === '/login') { @@ -611,8 +449,8 @@ // 涓嶆槸鐧诲綍椤甸潰 // 2. 鍒ゆ柇 鏄惁鐧诲綍杩� let token = sessionStorage.getItem('user') - if(token!=null&&token!=undefined){ - await resetRouter() + if (token != null && token != undefined) { + resetRouter() } token ? next() : next('/login') } -- Gitblit v1.9.3