From a4ad4789a091367fc2d63e0a6250a816335ea501 Mon Sep 17 00:00:00 2001 From: zuozhengqing <a13193816592@163.com> Date: 星期三, 20 十二月 2023 16:07:43 +0800 Subject: [PATCH] 销售明细单日期选择添加限制,菜单栏数据存储vuex --- src/router/index.js | 101 ++++++++++++++++++++++++++++++++++++++++++++++---- 1 files changed, 93 insertions(+), 8 deletions(-) diff --git a/src/router/index.js b/src/router/index.js index 6effbfa..61b22ca 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,10 @@ }, { path: "*", - redirect: "/404" + component: () => import("@/views/other/error/404"), + meta: { + title: "404" + } } ] // 瀵煎嚭璺敱 鍦� main.js 閲屼娇鐢� @@ -83,4 +111,61 @@ 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) +// 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