| | |
| | | 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 backgroundConfigRouter from "./backgroundConfig/index.js" |
| | | import {getMenuTreeByRole} from "@/api/menus/index" |
| | | // import backgroundConfigRouter from "./backgroundConfig/index.js" |
| | | |
| | | Vue.use(Router) |
| | | const login = (resolve) => require(["@/views/other/login/index"], resolve) |
| | | const custom = (resolve) => require(["@/views/custom/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 background = (resolve) => require(["@/views/backgroundConfig/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 |
| | |
| | | title: "服务管理", |
| | | isAllways: true |
| | | } |
| | | }, |
| | | { |
| | | path: "background", // 后台设置 |
| | | name: "background", |
| | | component: background, |
| | | children: backgroundConfigRouter, |
| | | meta: { |
| | | title: "后台设置", |
| | | isAllways: true |
| | | } |
| | | } |
| | | // { |
| | | // path: "background", // 后台设置 |
| | | // name: "background", |
| | | // component: background, |
| | | // children: backgroundConfigRouter, |
| | | // meta: { |
| | | // title: "后台设置", |
| | | // isAllways: true |
| | | // } |
| | | // } |
| | | ] |
| | | export const constantRoutes = [ |
| | | { |
| | |
| | | |
| | | 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) |