| | |
| | | import supplierRouter from "./supplier/index.js" |
| | | import purchaseRouter from "./purchase/index.js" |
| | | import productRouter from "./product/index.js" |
| | | import {getMenuTreeByRole} from "@/api/menus/index" |
| | | import store from '@/store/index.js'; |
| | | |
| | | Vue.use(Router) |
| | | const login = (resolve) => require(["@/views/other/login/index"], resolve) |
| | |
| | | const purchaseManage = (resolve) => require(["@/views/purchaseManage/index"], resolve) |
| | | const productManage = (resolve) => require(["@/views/productManage/index"], resolve) |
| | | const PreviewFile = (resolve) => require(["@/views/supplierManage/supplier/PreviewFile"], resolve) |
| | | const noData = (resolve) => require(["@/views/NoData/index"], resolve) |
| | | |
| | | |
| | | export const routes = [ |
| | | // 无数据页面 |
| | | { |
| | | path: "noData", |
| | | name: "noData", |
| | | meta: { |
| | | title: "", |
| | | auth: true, |
| | | }, |
| | | component: noData, |
| | | }, |
| | | { |
| | | path: "supplierManage", // 供应商管理 |
| | | name: "supplierManage", |
| | |
| | | // 导出路由 在 main.js 里使用 |
| | | const createRouter = () => |
| | | new Router({ |
| | | mode: "history", |
| | | mode: "hash", |
| | | // base: window.getServerJson.context, |
| | | scrollBehavior: () => ({ y: 0 }), |
| | | routes: 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 === 4); |
| | | if (foundObject) { |
| | | // 存储进vuex |
| | | store.commit('setMenus', 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) => { |
| | | console.log(to,from,"看看") |
| | | 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) |