From 9e007f676d0e55c4bf0cc2a78bc7dc96be188d50 Mon Sep 17 00:00:00 2001
From: zuozhengqing <a13193816592@163.com>
Date: 星期四, 14 十二月 2023 19:45:52 +0800
Subject: [PATCH] 隐藏生成计划和服务收费管理模块

---
 src/router/index.js |  101 ++++++++++++++++++++++++++++++++++++++++++++++----
 1 files changed, 92 insertions(+), 9 deletions(-)

diff --git a/src/router/index.js b/src/router/index.js
index f634154..3115976 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,22 +2,36 @@
 import Router from "vue-router"
 // import type from "@/router/deployCode"
 
-import customRouter from "./custom/index.js"
+import clientRouter from "./client/index.js"
 import salesRouter from "./sales/index.js"
 import serviceRouter from "./service/index.js"
+import {getMenuTreeByRole} from "@/api/menus/index"
+// import backgroundConfigRouter from "./backgroundConfig/index.js"
 
 Vue.use(Router)
-const login = (resolve) => require(["@/views/login/index"], resolve)
-const custom = (resolve) => require(["@/views/custom/index"], resolve)
+const login = (resolve) => require(["@/views/other/login/index"], resolve)
+const client = (resolve) => require(["@/views/client/index"], resolve)
 const sales = (resolve) => require(["@/views/sales/index"], resolve)
 const service = (resolve) => require(["@/views/service/index"], resolve)
+const noData = (resolve) => require(["@/views/NoData/index"], resolve)
+// const background = (resolve) => require(["@/views/backgroundConfig/index"], resolve)
 
 export const routes = [
+  // 鏃犳暟鎹〉闈�
   {
-    path: "custom", // 瀹㈡埛绠$悊
-    name: "custom",
-    component: custom,
-    children: customRouter,
+    path: "noData",
+    name: "noData",
+    meta: {
+      title: "",
+      auth: true,
+    },
+    component: noData,
+  },
+  {
+    path: "client", // 瀹㈡埛绠$悊
+    name: "client",
+    component: client,
+    children: clientRouter,
     meta: {
       title: "瀹㈡埛绠$悊",
       isAllways: true
@@ -43,6 +57,16 @@
       isAllways: true
     }
   }
+  // {
+  //   path: "background", // 鍚庡彴璁剧疆
+  //   name: "background",
+  //   component: background,
+  //   children: backgroundConfigRouter,
+  //   meta: {
+  //     title: "鍚庡彴璁剧疆",
+  //     isAllways: true
+  //   }
+  // }
 ]
 export const constantRoutes = [
   {
@@ -55,7 +79,7 @@
       insIndex: true
     },
     redirect: {
-      name: "custom"
+      name: "salesLead"
     },
     children: routes
   },
@@ -69,7 +93,10 @@
   },
   {
     path: "*",
-    redirect: "/404"
+    component: () => import("@/views/other/error/404"),
+    meta: {
+      title: "404"
+    }
   }
 ]
 // 瀵煎嚭璺敱 鍦� main.js 閲屼娇鐢�
@@ -83,4 +110,60 @@
 
 const router = createRouter()
 
+let isSkip = false;
+async function hasPermission(routePath) {
+  isSkip = false;
+  try {
+    const res = await getMenuTreeByRole();
+    const newPath = {
+      path: "/noData"
+    };
+    const foundObject = res.data.list.find(obj => obj.systemType === 2);
+    if (foundObject) {
+      foundObject.menus.forEach(item => {
+        const nextPath = item.children.find(obj => obj.path === routePath);
+        if (nextPath) {
+          newPath.path = nextPath.path;
+          isSkip = true;
+        }
+      });
+    } else {
+      newPath.path = '/noData';
+    }
+    return newPath; 
+  } catch (error) {
+    return { path: "/noData" }; 
+  }
+}
+router.beforeEach(async (to, from, next) => {
+  try {
+    const result = await hasPermission(to.path);
+    console.log(result,"result")
+    next();
+    if (!isSkip) {
+      next('/noData')
+    }
+  } catch (error) {
+    console.error('Error in navigation guard:', error);
+    next(); 
+  }
+});
+
+// router.beforeEach((to, from, next) => {
+// must call `next`
+// console.log(to, from)
+// if (to.path === "/custom/salesLead") {
+//   next()
+// } else {
+// if (to.meta.requireAuth) {
+//   next({
+//     path: "/login",
+//     query: { redirect: to.fullPath }
+//   })
+// } else {
+//   next()
+// }
+// }
+// })
+
 export default router

--
Gitblit v1.8.0