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