From 6cc81f9de0c87c40a9f1181ab35e8dff792a1884 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期一, 28 八月 2023 09:17:21 +0800 Subject: [PATCH] 动态路由 --- src/router/index.js | 1017 +++++++++++++++++++++++++++++++++-------------------------- 1 files changed, 570 insertions(+), 447 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index cc9b8b5..285386b 100644 --- a/src/router/index.js +++ b/src/router/index.js @@ -30,465 +30,588 @@ * 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: '/addCommision', - component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), - 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: '/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: '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' } - }, - { - 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' } - }, +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', + // 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: '/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: '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' } + }, + { + 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: 'Viewdetails', name: 'Viewdetails', - hidden: true , + 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: '/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: '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-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/toDo', - name: 'Message', - meta: { title: '娑堟伅寰呭姙', icon: 'el-icon-s-help' }, - children: [ + { + 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: '/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: '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-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/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' } }, - { - path: 'message', - name: 'Message', - // hidden: true, - component: () => import('@/views/message/message/index'), - // meta: { title: '鎴戠殑娑堟伅', icon: 'table' } - }, - ] - }, - { - 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 } - } - ] - }, - { - path: '/baseData', - component: Layout, - redirect: '/baseData/basicDataMessage', - meta: { title: '鍩虹鏁版嵁', icon: 'el-icon-s-tools' }, - children: [ - { - path: '/basicDataMessage', - name: 'BasicDataMessage', - component: () => import('@/views/basicData/index'), - meta: { title: '鍩虹鏁版嵁', icon: 'el-icon-s-tools' } - } - ] - }, - // 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 + { + path: 'message', + name: 'Message', + // hidden: true, + component: () => import('@/views/message/message/index'), + // meta: { title: '鎴戠殑娑堟伅', icon: 'table' } + }, + ] + }, + { + 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 } + } + ] + }, + { + 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: '/addCommision', + component: () => import('@/views/inspectionManagement/commissionInspection/addCommision'), + 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: '/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(localStorage.getItem("user")) != undefined && JSON.parse(localStorage.getItem("user")) != null) { + let role = JSON.parse(localStorage.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) => { + 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(async (to, from, next) => { + // 1. 鍒ゆ柇鏄笉鏄櫥褰曢〉闈� + // 鏄櫥褰曢〉闈� + if (to.path === '/login') { + next() + } else { + // 涓嶆槸鐧诲綍椤甸潰 + // 2. 鍒ゆ柇 鏄惁鐧诲綍杩� + let token = localStorage.getItem('user') + if(token!=null&&token!=undefined){ + await resetRouter() + } + token ? next() : next('/login') + } +}) export default router -- Gitblit v1.9.3