From 50f52beb0ed100105166f62027cd0b15e6b596dc Mon Sep 17 00:00:00 2001
From: Surpriseplus <845948745@qq.com>
Date: 星期六, 12 十一月 2022 15:02:01 +0800
Subject: [PATCH] 重新

---
 src/router/index.js |  164 +++++++++++++++++++++++++++++++++++++++++++-----------
 1 files changed, 130 insertions(+), 34 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index 91d2d47..74467bf 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -1,21 +1,23 @@
-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 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 ExportMap from '../views/exportMap/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 宸ュ叿
 
 //鏁版嵁绠$悊妯″潡
@@ -29,25 +31,39 @@
 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 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',
@@ -55,6 +71,15 @@
         component: Synthesis,
         meta: {
           title: '缁煎悎灞曠ず',
+          requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
+        },
+      },
+      {
+        path: '/ExportMap',
+        name: 'ExportMap',
+        component: ExportMap,
+        meta: {
+          title: '鍦ㄧ嚎鍒跺浘',
           requireAuth: true, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
@@ -206,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, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
@@ -306,12 +331,67 @@
           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, // 鏍囪瘑璇ヨ矾鐢辨槸鍚﹂渶瑕佺櫥褰�
         },
       },
@@ -322,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