From c6a9b11ff0783bcd81a043a179fbc27f685eee70 Mon Sep 17 00:00:00 2001
From: lxl <lixuliang_hd@126.com>
Date: 星期一, 07 十一月 2022 16:19:43 +0800
Subject: [PATCH] 菜单

---
 src/router/index.js |  218 ++++++++++++++++++++++++++++++++++++++++++++----------
 1 files changed, 178 insertions(+), 40 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 29d9e48..f07342e 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,48 +1,69 @@
-import Vue from "vue";
-import VueRouter from "vue-router";
-import Home from "../views/Home.vue";
-import login from "../components/login";
-import Synthesis from "../views/Synthesis/index.vue"; //缁煎悎灞曠ず
-import Thematic from "../views/Thematic/index.vue"; //涓撻鍦板浘
-import Archive from "../views/Archive/index.vue"; //璧勬枡棣�
-import userManagement from "@/views/maintenance/userManagement.vue"; //鐢ㄦ埛绠$悊
-import menuSettings from "@/views/maintenance/menuSettings.vue"; //鑿滃崟璁剧疆
-import rests from "@/views/maintenance/rests.vue"; //鍏朵粬
-import authorityManagement from "@/views/maintenance/authorityManagement.vue"; //鏉冮檺绠$悊
-import safetyManagement from "@/views/maintenance/safetyManagement.vue"; //瀹夊叏绠$悊
-import operationLog from "@/views/maintenance/operationLog.vue"; //鎿嶄綔鏃ュ織
-import eventlogManage from "@/views/maintenance/eventlogManage.vue"; //浜嬩欢鏃ュ織绠$悊
-import blackwhiteList from "@/views/maintenance/blackwhiteList.vue"; //鐧诲綍鏃ュ織
-import logLog from "@/views/maintenance/logLog.vue"; //鐧诲綍鏃ュ織
-import systemMonitoring from "@/views/maintenance/systemMonitoring.vue"; //绯荤粺鐩戞帶
-import databaseMonitoring from "@/views/maintenance/databaseMonitoring.vue"; //鏁版嵁搴撶洃鎺�
-import parameterConfiguration from "@/views/maintenance/parameterConfiguration.vue"; //鍙傛暟閰嶇疆
+import Vue from 'vue';
+import VueRouter from 'vue-router';
+import { getToken } from '@/utils/auth'; // get token from cookie
+import Home from '../views/Home.vue';
+import login from '../components/login';
+import Synthesis from '../views/Synthesis/index.vue'; //缁煎悎灞曠ず
+import Thematic from '../views/Thematic/index.vue'; //涓撻鍦板浘
+import Archive from '../views/Archive/index.vue'; //璧勬枡棣�
+import menuSettings from '@/views/maintenance/menuSettings.vue'; //鑿滃崟璁剧疆
+import rests from '@/views/maintenance/rests.vue'; //鍏朵粬
+import authorityManagement from '@/views/maintenance/authorityManagement.vue'; //鏉冮檺绠$悊
+import safetyManagement from '@/views/maintenance/safetyManagement.vue'; //瀹夊叏绠$悊
+import operationLog from '@/views/maintenance/operationLog.vue'; //鎿嶄綔鏃ュ織
+import eventlogManage from '@/views/maintenance/eventlogManage.vue'; //浜嬩欢鏃ュ織绠$悊
+import blackwhiteList from '@/views/maintenance/blackwhiteList.vue'; //鐧诲綍鏃ュ織
+import logLog from '@/views/maintenance/logLog.vue'; //鐧诲綍鏃ュ織
+import systemMonitoring from '@/views/maintenance/systemMonitoring.vue'; //绯荤粺鐩戞帶
+import databaseMonitoring from '@/views/maintenance/databaseMonitoring.vue'; //鏁版嵁搴撶洃鎺�
+import parameterConfiguration from '@/views/maintenance/parameterConfiguration.vue'; //鍙傛暟閰嶇疆
 import tokentool from '@/views/maintenance/tokentool.vue'; //token 宸ュ叿
 
 //鏁版嵁绠$悊妯″潡
 import catalogueManage from '../views/datamanage/catalogueManage.vue'; //鏁版嵁绠$悊-鐩綍绠$悊
-
 import dataUpdata from '../views/datamanage/dataUpdata.vue'; //鏁版嵁绠$悊-鏁版嵁涓婁紶
 import dataLoading from '../views/datamanage/dataLoading.vue'; //鏁版嵁绠$悊-鏁版嵁鍏ュ簱
 import metadataManage from '../views/datamanage/metadataManage.vue'; //鏁版嵁绠$悊-鍏冩暟鎹鐞�
 import SpatialData from '../views/datamanage/SpatialData.vue'; //鏁版嵁绠$悊-绌洪棿鏁版嵁
 import versionManage from '../views/datamanage/versionManage.vue'; //鏁版嵁绠$悊-鐗堟湰绠$悊
 import dictionaryManage from '../views/datamanage/dictionaryManage.vue'; //鏁版嵁绠$悊-瀛楀吀绠$悊
+import domainManage from '../views/datamanage/domainManage.vue'; //鏁版嵁绠$悊-鍊煎煙绠$悊
 import styleManage from '../views/datamanage/styleManage.vue'; //鏁版嵁绠$悊-鏍峰紡绠$悊
 import addStyle from '../views/datamanage/addStyle.vue'; //鏁版嵁绠$悊-鏍峰紡绠$悊-娣诲姞鏍峰紡
 
+import userInfoManage from '../views/userManage/userInfoManage.vue'; // 鐢ㄦ埛绠$悊妯″潡
+import orgManage from '../views/userManage/orgManage.vue'; // 鐢ㄦ埛绠$悊妯″潡
+import userAuditing from '../views/userManage/userAuditing.vue'; // 鐢ㄦ埛绠$悊妯″潡
+import roleManage from '../views/userManage/roleManage.vue'; // 鐢ㄦ埛绠$悊妯″潡
+import groupManage from '../views/userManage/groupManage.vue'; // 鐢ㄦ埛绠$悊妯″潡
+import authorityManage from '@/views/userManage/authorityManage.vue'; //鐢ㄦ埛绠$悊-鏉冮檺绠$悊
+import resourceManage from '@/views/userManage/resourceManage.vue'; //鐢ㄦ埛绠$悊-璧勬簮绠$悊
+import userRoleAuthorization from '@/views/AuthorizationManagement/userRoleAuthorization.vue'; //绯荤粺绠$悊-鐢ㄦ埛瑙掕壊鎺堟潈
+
+import menuRoleAuthorization from '@/views/AuthorizationManagement/menuRoleAuthorization.vue'; //绯荤粺绠$悊-鑿滃崟鏉冮檺鎺堟潈
+import roleResAuthorization from '@/views/AuthorizationManagement/roleResAuthorization.vue'; //绯荤粺绠$悊-瑙掕壊璧勬簮鎺堟潈
+import roleMenuAuthorization from '@/views/AuthorizationManagement/roleMenuAuthorization.vue'; //绯荤粺绠$悊-瑙掕壊鑿滃崟鎺堟潈
+
+const originalPush = VueRouter.prototype.push;
+
+VueRouter.prototype.push = function push(location) {
+  return originalPush.call(this, location).catch((err) => err);
+};
+
+// 缇ょ粍绠$悊
 Vue.use(VueRouter);
 
 const routes = [
   {
-    path: '/',
+    path: '/login',
     name: 'login',
     component: login,
   },
   {
-    path: '/Home',
+    path: '/',
     name: 'Home',
     component: Home,
+    redirect: '/Synthesis',
     children: [
       {
         path: '/Synthesis',
@@ -137,6 +158,15 @@
         },
       },
       {
+        path: '/domainManage',
+        component: domainManage,
+        name: 'domainManage',
+        meta: {
+          title: '鍊煎煙绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
         path: '/styleManage',
         component: styleManage,
         name: 'styleManage',
@@ -154,15 +184,7 @@
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
-      {
-        path: '/userManagement',
-        component: userManagement,
-        name: 'userManagement',
-        meta: {
-          title: '鐢ㄦ埛绠$悊',
-          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
-        },
-      },
+
       {
         path: '/menuSettings',
         component: menuSettings,
@@ -209,30 +231,30 @@
         },
       },
       {
-        path: "/eventlogManage",
+        path: '/eventlogManage',
         component: eventlogManage,
-        name: "eventlogManage",
+        name: 'eventlogManage',
         meta: {
-          title: "浜嬩欢鏃ュ織绠$悊",
+          title: '浜嬩欢鏃ュ織绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/logLog",
+        path: '/logLog',
         path: '/logLog',
         component: logLog,
         name: 'logLog',
         meta: {
-          title: "浜嬩欢鏃ュ織绠$悊",
+          title: '浜嬩欢鏃ュ織绠$悊',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
       {
-        path: "/blackwhiteList",
+        path: '/blackwhiteList',
         component: blackwhiteList,
-        name: "blackwhiteList",
+        name: 'blackwhiteList',
         meta: {
-          title: "榛�/鐧藉悕鍗�",
+          title: '榛�/鐧藉悕鍗�',
           title: '鐧诲綍鏃ュ織',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
@@ -273,6 +295,106 @@
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
+      {
+        path: '/userInfoManage',
+        component: userInfoManage,
+        name: 'userInfoManage',
+        meta: {
+          title: '鐢ㄦ埛淇℃伅绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/orgManage',
+        component: orgManage,
+        name: 'orgManage',
+        meta: {
+          title: '缁勭粐鏈烘瀯绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/userAuditing',
+        component: userAuditing,
+        name: 'userAuditing',
+        meta: {
+          title: '鐢ㄦ埛瀹℃牳',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/roleManage',
+        component: roleManage,
+        name: 'roleManage',
+        meta: {
+          title: '瑙掕壊绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+
+      {
+        path: '/groupManage',
+        component: groupManage,
+        name: 'groupManage',
+        meta: {
+          title: '缇ょ粍绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/authorityManage',
+        component: authorityManage,
+        name: 'authorityManage',
+        meta: {
+          title: '鏉冮檺绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/resourceManage',
+        component: resourceManage,
+        name: 'resourceManage',
+        meta: {
+          title: '璧勬簮绠$悊',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/userRoleAuthorization',
+        component: userRoleAuthorization,
+        name: 'userRoleAuthorization',
+        meta: {
+          title: '鐢ㄦ埛瑙掕壊鎺堟潈',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/menuRoleAuthorization',
+        component: menuRoleAuthorization,
+        name: 'menuRoleAuthorization',
+        meta: {
+          title: '鑿滃崟鏉冮檺鎺堟潈',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/roleResAuthorization',
+        component: roleResAuthorization,
+        name: 'roleResAuthorization',
+        meta: {
+          title: '鑿滃崟鏉冮檺鎺堟潈',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/roleMenuAuthorization',
+        component: roleMenuAuthorization,
+        name: 'roleMenuAuthorization',
+        meta: {
+          title: '鑿滃崟鏉冮檺鎺堟潈',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
     ],
   },
 ];
@@ -280,5 +402,21 @@
 const router = new VueRouter({
   routes,
 });
-
+//璺敱瀹堝崼
+router.beforeEach((to, from, next) => {
+  next();
+  if (to.matched.some((auth) => auth.meta.requireAuth)) {
+    // 鑾峰彇token
+    let token = getToken();
+    if (token) {
+      next();
+    } else {
+      next({
+        path: '/login',
+      });
+    }
+  } else {
+    next();
+  }
+});
 export default router;

--
Gitblit v1.9.3