From eed27d3000e127c433fd45609d0d5e5d06b7868c Mon Sep 17 00:00:00 2001
From: haoxuan <haoxuan>
Date: 星期二, 26 十二月 2023 11:14:28 +0800
Subject: [PATCH] Merge branch 'dev' of http://192.168.5.5:10010/r/web/crm-web into dev
---
src/router/index.js | 81 ++++++++++++++++++++++++++++++++++++----
1 files changed, 73 insertions(+), 8 deletions(-)
diff --git a/src/router/index.js b/src/router/index.js
index bf575a7..87e40de 100644
--- a/src/router/index.js
+++ b/src/router/index.js
@@ -2,22 +2,37 @@
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 store from '@/store/index.js';
+// 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 +58,16 @@
isAllways: true
}
}
+ // {
+ // path: "background", // 鍚庡彴璁剧疆
+ // name: "background",
+ // component: background,
+ // children: backgroundConfigRouter,
+ // meta: {
+ // title: "鍚庡彴璁剧疆",
+ // isAllways: true
+ // }
+ // }
]
export const constantRoutes = [
{
@@ -69,7 +94,7 @@
},
{
path: "*",
- component: () => import("@/views/error/404"),
+ component: () => import("@/views/other/error/404"),
meta: {
title: "404"
}
@@ -86,6 +111,46 @@
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) {
+ store.commit('setMenus', foundObject.menus);
+ 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)
--
Gitblit v1.8.0