From b580f0402ff66d0c5b74460edcb920a516b1ce6e Mon Sep 17 00:00:00 2001 From: zouyu <2723363702@qq.com> Date: 星期四, 07 九月 2023 18:00:54 +0800 Subject: [PATCH] Merge branch 'master' of http://192.168.218.113:9001/r/lims-before --- src/router/index.js | 894 +++++++++++++++++++++++++++++----------------------------- 1 files changed, 445 insertions(+), 449 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index e1261b7..da62bb5 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -3,457 +3,453 @@ 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 - */ -export const constantRoutes = [ - { - path: '/login', - component: () => import('@/views/login/index'), - hidden: true - }, - { - path: '/404', - component: () => import('@/views/404'), - hidden: true - }, - { - path: '/', - component: Layout, - redirect: '/home', - // meta: { title: '涓婚〉', icon: 'el-icon-s-home' }, - children: [{ - path: 'home', - name: 'Home', - component: () => import('@/views/home/index'), - meta: { title: '涓婚〉', icon: 'el-icon-s-home' } - }] - }, - { - path: '/standardLibrary', - component: Layout, - redirect: '/standardLibrary/index', - meta: { title: '鏍囧噯搴�', icon: 'el-icon-s-help' }, - children: [ - { - path: 'index', - name: 'StandardLibrary', - component: () => import('@/views/standardLibrary/index'), - meta: { title: '鏍囧噯搴�', icon: 'form' } - }, - { - path: 'specificationDetails/:id', - name: 'SpecificationDetails', - // hidden: true, - component: () => import('@/views/standardLibrary/SpecificationDetails'), - meta: { title: '浜у搧瑙勬牸璇︽儏', icon: 'form', show: false } - } - ] - }, - // { - // 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, - redirect: '/inspectionManagement/commissionInspection', - name: 'InspectionManagement', - meta: { title: '鎶ユ绠$悊', icon: 'el-icon-s-help' }, - children: [ - { - path: 'commissionInspection', - name: 'CommissionInspection', - component: () => import('@/views/inspectionManagement/commissionInspection/index'), - meta: { title: '濮旀墭妫�楠�', icon: 'table' }, - children: [ - { - path: 'addCommision', - name: 'AddCommision', - hidden: true, - component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), - meta: { title: '妫�娴嬩俊鎭�', icon: 'table' } - } - ] - }, - { - path: 'reportForInspection', - name: 'ReportForInspection', - component: () => import('@/views/inspectionManagement/reportForInspection/index'), - meta: { title: '鍘熸潗鏂欐姤妫�', icon: 'tree' } - } - ] - }, - { - path: '/experiment', - component: Layout, - redirect: '/experiment/inspectionApplication', - name: 'Experiment', - meta: { title: '璇曢獙绠$悊', icon: 'el-icon-s-help' }, - children: [ - { - path: 'inspectionApplication', - name: 'InspectionApplication', - component: () => import('@/views/experiment/inspectionApplication/index'), - meta: { title: '鏂板妫�楠�', icon: 'tree' } - }, - { - path: 'planAssignments', - name: 'PlanAssignments', - component: () => import('@/views/experiment/planAssignments/index'), - meta: { title: '妫�楠岃鍒�', icon: 'tree' } - }, - { - path: 'checkTheReport', - name: 'CheckTheReport', - component: () => import('@/views/experiment/checkTheReport/index'), - meta: { title: '妫�楠屾姤鍛�', icon: 'tree' } - }, - { - path: 'reportAuditing', - name: 'ReportAuditing', - 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: 'nonConformingFeedback', - name: 'NonConformingFeedback', - component: () => import('@/views/experiment/nonConformingFeedback/index'), - meta: { title: '涓嶅悎鏍煎搧璇勫', icon: 'tree' } - }, - { - path: 'passRateStatistics', - name: 'PassRateStatistics', - component: () => import('@/views/experiment/passRateStatistics/index'), - meta: { title: '鍚堟牸鐜囩粺璁�', icon: 'tree' } - } - ] - }, - // { - // 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, - redirect: '/laboratory/ledger', - name: 'Laboratory', - meta: { title: '瀹為獙瀹ょ鐞�', icon: 'el-icon-s-help' }, - children: [ - { - path: 'ledger', - name: 'Ledger', - component: () => import('@/views/laboratory/ledger/index'), - meta: { title: '璁惧鍙拌处', icon: 'table' } - }, - { - path: 'measure', - name: 'Measure', - component: () => import('@/views/laboratory/measure/index'), - meta: { title: '璁¢噺绠$悊', icon: 'tree' } - }, - { - path: 'gather', - name: 'Gather', - component: () => import('@/views/laboratory/gather/index'), - meta: { title: '璁惧閲囬泦', icon: 'tree' } - }, - { - path: 'personnel', - name: 'Personnel', - component: () => import('@/views/laboratory/personnel/index'), - meta: { title: '浜哄憳绠$悊', icon: 'tree' } - } - ] - }, - { - path: '/CNAS', - component: Layout, - redirect: '/CNAS/reviewAnnualPlan', - name: 'CNAS', - meta: { title: 'CNAS绠$悊', icon: 'el-icon-s-help' }, - children: [ - { - path: 'reviewAnnualPlan', - name: 'ReviewAnnualPlan', - component: () => import('@/views/CNAS/reviewAnnualPlan/index'), - meta: { title: '瀹℃牳骞村害璁″垝', icon: 'table' } - }, - { - path: 'nonConformanceManage', - name: 'NonConformanceManage', - component: () => import('@/views/CNAS/nonConformanceManage/index'), - meta: { title: '涓嶇鍚堥」绠$悊', icon: 'tree' } - }, - { - path: 'nonConformanceStatistics', - name: 'NonConformanceStatistics', - component: () => import('@/views/CNAS/nonConformanceStatistics/index'), - meta: { title: '涓嶇鍚堥」缁熻', icon: 'tree' } - }, - { - path: 'satisfactionSurveys', - name: 'SatisfactionSurveys', - component: () => import('@/views/CNAS/satisfactionSurveys/index'), - meta: { title: '婊℃剰搴﹁皟鏌�', icon: 'tree' } - } - ] - }, - { - path: '/chart', - component: Layout, - redirect: '/chart/center', - name: 'Chart', - meta: { title: '鏅鸿兘鍥捐〃', icon: 'el-icon-s-help' }, - children: [ - { - path: 'center', - name: 'center', - component: () => import('@/views/chart/center/index'), - meta: { title: '瀹為獙涓績', icon: 'table' } - }, - { - path: 'spc', - name: 'Spc', - component: () => import('@/views/chart/spc/index'), - meta: { title: 'SPC鎺у埗鍥�', icon: 'tree' } - }, - { - path: 'shota', - name: 'Shota', - component: () => import('@/views/chart/shota/index'), - meta: { title: '姝eお鍒嗗竷鍥�', icon: 'tree' } - }, - { - path: 'work', - name: 'Work', - component: () => import('@/views/chart/work/index'), - meta: { title: '宸ヤ綔缁熻', icon: 'tree' } - } - ] - }, - { - path: '/message', - component: Layout, - redirect: '/message/message', - name: 'Message', - meta: { title: '娑堟伅寰呭姙', icon: 'el-icon-s-help' }, - children: [ - { - path: 'message', - name: 'Message', - component: () => import('@/views/message/message/index'), - meta: { title: '鎴戠殑娑堟伅', icon: 'table' } - }, - { - path: 'toDo', - name: 'ToDo', - component: () => import('@/views/message/toDo/index'), - meta: { title: '鎴戠殑寰呭姙', icon: 'tree' } - } - ] - }, - { - path: '/personal', - component: Layout, - redirect: '/personal/myInformation', - name: 'Personal', - meta: { title: '涓汉绠$悊', icon: 'el-icon-s-help' }, - children: [ - { - path: 'myInformation', - name: 'MyInformation', - component: () => import('@/views/personal/myInformation/index'), - meta: { title: '鎴戠殑淇℃伅', icon: 'table' } - }, - { - path: 'myBusiness', - name: 'MyBusiness', - component: () => import('@/views/personal/myBusiness/index'), - meta: { title: '鎴戠殑浼佷笟', icon: 'tree', show: false } - } - ] - }, - // 404 page must be placed at the end !!! - { path: '*', redirect: '/404', hidden: true } -] - -const createRouter = () => new Router({ - // mode: 'history', // require service support - scrollBehavior: () => ({ y: 0 }), - routes: constantRoutes -}) - -const router = createRouter() - -// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465 -export function resetRouter() { - const newRouter = createRouter() - router.matcher = newRouter.matcher // reset router +function getRoutes() { + let constantRoutes = [ + { + path: '/login', + component: () => import('@/views/login/index'), + hidden: true + }, + { + path: '/404', + component: () => import('@/views/404'), + hidden: true + }, + { + path: '/addCommision', + component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), + hidden: true + }, + { + path: '/', + component: Layout, + redirect: '/home', + children: [{ + path: 'home', + name: 'Home', + component: () => import('@/views/home/index'), + meta: { title: '涓婚〉', icon: 'el-icon-s-home' } + }] + }, + { + path: '/addCommision/:viewId', + hidden: true, + component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), + }, + { + path: '/standardLibrary', + component: Layout, + redirect: '/standardLibrary/index', + // meta: { title: '鏍囧噯搴�', icon: 'el-icon-s-help' }, + children: [ + { + path: 'index', + name: 'StandardLibrary', + component: () => import('@/views/standardLibrary/index'), + meta: { title: '鏍囧噯搴�', icon: 'el-icon-s-management' } + }, + // { + // path: 'specificationDetails/:id', + // name: 'SpecificationDetails', + // // hidden: true, + // component: () => import('@/views/standardLibrary/SpecificationDetails'), + // meta: { title: '浜у搧瑙勬牸璇︽儏', icon: 'form', show: false } + // } + ] + }, + { + path: '/inspectionManagement', + component: Layout, + redirect: '/inspectionManagement/commissionInspection', + name: 'InspectionManagement', + meta: { title: '鎶ユ绠$悊', icon: 'el-icon-s-order' }, + children: [ + { + path: 'commissionInspection', + name: 'CommissionInspection', + component: () => import('@/views/inspectionManagement/commissionInspection/index'), + meta: { title: '濮旀墭妫�楠�', icon: 'table' } + }, + { + path: 'reportForInspection', + name: 'ReportForInspection', + component: () => import('@/views/inspectionManagement/reportForInspection/index'), + meta: { title: '鍘熸潗鏂欐姤妫�', icon: 'tree' } + } + ] + }, + { + path: '/experiment', + component: Layout, + redirect: '/experiment/inspectionApplication', + name: 'Experiment', + meta: { title: '璇曢獙绠$悊', icon: 'el-icon-s-marketing' }, + children: [ + { + path: 'inspectionApplication', + name: 'inspectionApplication', + component: () => import('@/views/experiment/inspectionApplication/index'), + meta: { title: '鏂板妫�楠�', icon: 'tree' } + }, + { + path: 'Viewdetails/:id', + name: 'Viewdetails', + hidden: true, + component: () => import('@/views/experiment/inspectionApplication/Viewdetails/index'), + meta: { title: '璇︽儏椤�', icon: 'tree' } + }, + { + path: 'planAssignments', + name: 'PlanAssignments', + component: () => import('@/views/experiment/planAssignments/plan'), + meta: { title: '妫�楠岃鍒�', icon: 'tree' } + }, + { + path: 'checkTheReport', + name: 'CheckTheReport', + component: () => import('@/views/experiment/checkTheReport/index'), + meta: { title: '妫�楠屾姤鍛�', icon: 'tree' } + }, + { + path: 'reportAuditing', + name: 'ReportAuditing', + 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: 'nonConformingFeedback', + name: 'NonConformingFeedback', + component: () => import('@/views/experiment/nonConformingFeedback/index'), + meta: { title: '涓嶅悎鏍煎搧璇勫', icon: 'tree' } + }, + { + path: 'passRateStatistics', + name: 'PassRateStatistics', + component: () => import('@/views/experiment/passRateStatistics/index'), + meta: { title: '鍚堟牸鐜囩粺璁�', icon: 'tree' } + } + ] + }, + { + path: '/laboratory', + component: Layout, + redirect: '/laboratory/ledger', + name: 'Laboratory', + meta: { title: '瀹為獙瀹ょ鐞�', icon: 'el-icon-cpu' }, + children: [ + { + path: 'ledger', + name: 'Ledger', + component: () => import('@/views/laboratory/ledger/index'), + meta: { title: '璁惧鍙拌处', icon: 'table' } + }, + { + path: 'measure', + name: 'Measure', + component: () => import('@/views/laboratory/measure/index'), + meta: { title: '璁¢噺绠$悊', icon: 'tree' } + }, + { + path: 'gather', + name: 'Gather', + component: () => import('@/views/laboratory/gather/index'), + meta: { title: '璁惧閲囬泦', icon: 'tree' } + }, + { + path: 'personnel', + name: 'Personnel', + component: () => import('@/views/laboratory/personnel/index'), + meta: { title: '浜哄憳绠$悊', icon: 'tree' } + }, + { + path: 'org', + name: 'Organizational', + component: () => import('@/views/laboratory/organizational/index.vue'), + meta: { title: '缁勭粐鏋舵瀯', icon: 'tree' } + }, + { + path: 'role', + name: 'Role', + component: () => import('@/views/laboratory/role/index'), + meta: { title: '瑙掕壊绠$悊', icon: 'tree' } + } + ] + }, + { + path: '/CNAS', + component: Layout, + redirect: '/CNAS/reviewAnnualPlan', + name: 'CNAS', + meta: { title: 'CNAS绠$悊', icon: 'el-icon-s-help' }, + children: [ + { + path: 'reviewAnnualPlan', + name: 'ReviewAnnualPlan', + component: () => import('@/views/CNAS/reviewAnnualPlan/index'), + meta: { title: '瀹℃牳骞村害璁″垝', icon: 'table' } + }, + { + path: 'nonConformanceManage', + name: 'NonConformanceManage', + component: () => import('@/views/CNAS/nonConformanceManage/index'), + meta: { title: '涓嶇鍚堥」绠$悊', icon: 'tree' } + }, + { + path: 'nonConformanceStatistics', + name: 'NonConformanceStatistics', + component: () => import('@/views/CNAS/nonConformanceStatistics/index'), + meta: { title: '涓嶇鍚堥」缁熻', icon: 'tree' } + }, + { + path: 'satisfactionSurveys', + name: 'SatisfactionSurveys', + component: () => import('@/views/CNAS/satisfactionSurveys/index'), + meta: { title: '婊℃剰搴﹁皟鏌�', icon: 'tree' } + } + ] + }, + { + path: '/chart', + component: Layout, + redirect: '/chart/center', + name: 'Chart', + meta: { title: '鏅鸿兘鍥捐〃', icon: 'el-icon-s-data' }, + children: [ + { + path: 'center', + name: 'center', + component: () => import('@/views/chart/center/index'), + meta: { title: '瀹為獙涓績', icon: 'table' } + }, + { + path: 'spc', + name: 'Spc', + component: () => import('@/views/chart/spc/index'), + meta: { title: 'SPC鎺у埗鍥�', icon: 'tree' } + }, + { + path: 'shota', + name: 'Shota', + component: () => import('@/views/chart/shota/index'), + meta: { title: '姝eお鍒嗗竷鍥�', icon: 'tree' } + }, + { + path: 'work', + name: 'Work', + component: () => import('@/views/chart/work/index'), + meta: { title: '宸ヤ綔缁熻', icon: 'tree' } + } + ] + }, + { + path: '/message', + component: Layout, + redirect: '/message/toDo', + name: 'Message', + // meta: { title: '娑堟伅寰呭姙', icon: 'el-icon-s-help' }, + children: [ + { + path: 'toDo', + name: 'ToDo', + component: () => import('@/views/message/toDo/index'), + // meta: { title: '娑堟伅寰呭姙', icon: 'tree' } + meta: { title: '鎴戠殑寰呭姙', icon: 'el-icon-s-promotion' }, + }, + // { + // path: 'message', + // name: 'Message', + // component: () => import('@/views/message/message/index'), + // }, + ] + }, + { + path: '/personal', + component: Layout, + redirect: '/personal/myInformation', + name: 'Personal', + // meta: { title: '涓汉绠$悊', icon: 'el-icon-s-help' }, + children: [ + { + path: 'myInformation', + name: 'MyInformation', + component: () => import('@/views/personal/myInformation/index'), + // meta: { title: '涓汉绠$悊', icon: 'el-icon-s-help' } + meta: { title: '鎴戠殑淇℃伅', icon: 'el-icon-user-solid' } + }, + // { + // path: 'myBusiness', + // name: 'MyBusiness', + // component: () => import('@/views/personal/myBusiness/index'), + // meta: { title: '鎴戠殑浼佷笟', icon: 'tree', show: false } + // } + ] + }, + { + path: '/baseData', + component: Layout, + redirect: '/baseData/basicDataMessage', + name: 'BaseData', + meta: { title: '鍩虹鏁版嵁', icon: 'el-icon-s-tools' }, + children: [ + { + path: 'basicDataMessage', + name: 'BasicDataMessage', + component: () => import('@/views/basicData/index'), + meta: { title: '鍩虹鏁版嵁', icon: 'el-icon-s-tools' } + } + ] + }, + { path: '*', redirect: '/404', hidden: true } + ] + return constantRoutes } +const baseRouter = [{ + path: '/login', + component: () => import('@/views/login/index'), + hidden: true +}, +{ + path: '/404', + component: () => import('@/views/404'), + hidden: true +}, +{ + path: '/', + component: Layout, + redirect: '/home', + children: [{ + path: 'home', + name: 'Home', + component: () => import('@/views/home/index'), + meta: { title: '涓婚〉', icon: 'el-icon-s-home' } + }] +}, { + path: '/addCommision/:viewId', + hidden: true, + component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), +}] + +function fn3(tempArr) { + 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; + }; + }; + return result; +}; + + +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) => { + 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 => { + 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 + } + } else { + Routees = baseRouter + } + return new Router({ + // mode: 'history', // require service support + scrollBehavior: () => ({ y: 0 }), + routes: Routees + }) +} +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.beforeEach((to, from, next) => { + /** + * 濮旀墭鏂板 鏀捐 + */ + if (to.path.indexOf("/addCommision/") === 0) { + next() + return + } + // 1. 鍒ゆ柇鏄笉鏄櫥褰曢〉闈� + // 鏄櫥褰曢〉闈� + if (to.path === '/login') { + next() + } else { + // 涓嶆槸鐧诲綍椤甸潰 + // 2. 鍒ゆ柇 鏄惁鐧诲綍杩� + let token = sessionStorage.getItem('user') + if (token != null && token != undefined) { + resetRouter() + } + token ? next() : next('/login') + } +}) export default router -- Gitblit v1.9.3