| ¶Ô±ÈÐÂÎļþ |
| | |
| | | import { createWebHistory, createRouter } from "vue-router"; |
| | | /* Layout */ |
| | | import Layout from "@/layout"; |
| | | |
| | | /** |
| | | * Note: è·¯ç±é
置项 |
| | | * |
| | | * hidden: true // å½è®¾ç½® true çæ¶å该路ç±ä¸ä¼åä¾§è¾¹æ åºç° å¦401ï¼loginç页é¢ï¼æè
å¦ä¸äºç¼è¾é¡µé¢/edit/1 |
| | | * alwaysShow: true // å½ä½ ä¸ä¸ªè·¯ç±ä¸é¢ç children 声æçè·¯ç±å¤§äº1个æ¶ï¼èªå¨ä¼åæåµå¥ç模å¼--å¦ç»ä»¶é¡µé¢ |
| | | * // åªæä¸ä¸ªæ¶ï¼ä¼å°é£ä¸ªåè·¯ç±å½åæ ¹è·¯ç±æ¾ç¤ºå¨ä¾§è¾¹æ --å¦å¼å¯¼é¡µé¢ |
| | | * // è¥ä½ æ³ä¸ç®¡è·¯ç±ä¸é¢ç children 声æç个æ°é½æ¾ç¤ºä½ çæ ¹è·¯ç± |
| | | * // ä½ å¯ä»¥è®¾ç½® alwaysShow: trueï¼è¿æ ·å®å°±ä¼å¿½ç¥ä¹åå®ä¹çè§åï¼ä¸ç´æ¾ç¤ºæ ¹è·¯ç± |
| | | * redirect: noRedirect // å½è®¾ç½® noRedirect çæ¶å该路ç±å¨é¢å
å±å¯¼èªä¸ä¸å¯è¢«ç¹å» |
| | | * name:'router-name' // 设å®è·¯ç±çååï¼ä¸å®è¦å¡«åä¸ç¶ä½¿ç¨<keep-alive>æ¶ä¼åºç°åç§é®é¢ |
| | | * query: '{"id": 1, "name": "ry"}' // 访é®è·¯ç±çé»è®¤ä¼ éåæ° |
| | | * roles: ['admin', 'common'] // 访é®è·¯ç±çè§è²æé |
| | | * permissions: ['a:a:a', 'b:b:b'] // 访é®è·¯ç±çèåæé |
| | | * meta : { |
| | | noCache: true // å¦æè®¾ç½®ä¸ºtrueï¼åä¸ä¼è¢« <keep-alive> ç¼å(é»è®¤ false) |
| | | title: 'title' // 设置该路ç±å¨ä¾§è¾¹æ åé¢å
å±ä¸å±ç¤ºçåå |
| | | icon: 'svg-name' // 设置该路ç±ç徿 ï¼å¯¹åºè·¯å¾src/assets/icons/svg |
| | | breadcrumb: false // å¦æè®¾ç½®ä¸ºfalseï¼åä¸ä¼å¨breadcrumbé¢å
å±ä¸æ¾ç¤º |
| | | activeMenu: '/system/user' // å½è·¯ç±è®¾ç½®äºè¯¥å±æ§ï¼åä¼é«äº®ç¸å¯¹åºçä¾§è¾¹æ ã |
| | | } |
| | | */ |
| | | |
| | | // å
Œ
±è·¯ç± |
| | | export const constantRoutes = [ |
| | | { |
| | | path: "/redirect", |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: "/redirect/:path(.*)", |
| | | component: () => import("@/views/redirect/index.vue"), |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: "/login", |
| | | component: () => import("@/views/login"), |
| | | hidden: true, |
| | | }, |
| | | { |
| | | path: "/register", |
| | | component: () => import("@/views/register"), |
| | | hidden: true, |
| | | }, |
| | | { |
| | | path: "/:pathMatch(.*)*", |
| | | component: () => import("@/views/error/404"), |
| | | hidden: true, |
| | | }, |
| | | { |
| | | path: "/401", |
| | | component: () => import("@/views/error/401"), |
| | | hidden: true, |
| | | }, |
| | | |
| | | { |
| | | path: "", |
| | | component: Layout, |
| | | redirect: "/index", |
| | | children: [ |
| | | { |
| | | path: "/index", |
| | | component: () => import("@/views/index"), |
| | | name: "Index", |
| | | meta: { title: "é¦é¡µ", icon: "dashboard", affix: true }, |
| | | }, |
| | | ], |
| | | }, |
| | | // ç³»ç»æ¶æå¾ |
| | | { |
| | | path: "/system-architecture", |
| | | component: Layout, |
| | | redirect: "/system-architecture/index", |
| | | children: [ |
| | | { |
| | | path: "index", |
| | | component: () => import("@/views/systemArchitecture/index.vue"), |
| | | name: "SystemArchitecture", |
| | | meta: { title: "ç³»ç»æ¶æå¾", icon: "tree" }, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: "/ai-industrial-brain", |
| | | component: Layout, |
| | | children: [ |
| | | { |
| | | path: "index", |
| | | component: () => import("@/views/aiIndustrialBrain/index.vue"), |
| | | name: "AiIndustrialBrain", |
| | | meta: { title: "AIå·¥ä¸å¤§è", icon: "skill" }, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: "/user", |
| | | component: Layout, |
| | | hidden: true, |
| | | redirect: "noredirect", |
| | | children: [ |
| | | { |
| | | path: "profile", |
| | | component: () => import("@/views/system/user/profile/index"), |
| | | name: "Profile", |
| | | meta: { title: "个人ä¸å¿", icon: "user" }, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: "/device-info", |
| | | component: () => import("@/views/equipmentManagement/deviceInfo/index.vue"), |
| | | hidden: true, |
| | | name: "DeviceInfo", |
| | | meta: { title: "设å¤ä¿¡æ¯", icon: "monitor" }, |
| | | }, |
| | | { |
| | | path: "/projectManagement/Management/detail", |
| | | component: Layout, |
| | | hidden: true, |
| | | children: [ |
| | | { |
| | | path: ":id", |
| | | component: () => import("@/views/projectManagement/Management/projectDetail.vue"), |
| | | name: "ProjectManagementDetail", |
| | | meta: { title: "项ç®è¯¦æ
", activeMenu: "/projectManagement/Management" }, |
| | | }, |
| | | ], |
| | | }, |
| | | // è´¢å¡ç®¡ç模åè·¯ç± |
| | | // { |
| | | // path: "/financial", |
| | | // component: Layout, |
| | | // hidden: false, |
| | | // redirect: "/financial/general-ledger", |
| | | // alwaysShow: true, |
| | | // meta: { title: "è´¢å¡ç®¡ç", icon: "money" }, |
| | | // children: [ |
| | | // { |
| | | // path: "sales-out", |
| | | // component: () => import("@/views/financialManagement/receivable/salesOut.vue"), |
| | | // name: "SalesOut", |
| | | // meta: { title: "éå®åºåº" }, |
| | | // }, |
| | | // { |
| | | // path: "sales-return", |
| | | // component: () => import("@/views/financialManagement/receivable/salesReturn.vue"), |
| | | // name: "SalesReturn", |
| | | // meta: { title: "éå®éè´§" }, |
| | | // }, |
| | | // |
| | | // { |
| | | // path: "invoice-apply", |
| | | // component: () => import("@/views/financialManagement/receivable/invoiceApply.vue"), |
| | | // name: "InvoiceApply", |
| | | // meta: { title: "å¼ç¥¨ç³è¯·" }, |
| | | // }, |
| | | // { |
| | | // path: "output-invoice", |
| | | // component: () => import("@/views/financialManagement/receivable/outputInvoice.vue"), |
| | | // name: "OutputInvoice", |
| | | // meta: { title: "é项å票" }, |
| | | // }, |
| | | // { |
| | | // path: "receipt", |
| | | // component: () => import("@/views/financialManagement/receivable/receipt.vue"), |
| | | // name: "Receipt", |
| | | // meta: { title: "æ¶æ¬¾å" }, |
| | | // }, |
| | | // { |
| | | // path: "receivable-reconciliation", |
| | | // component: () => import("@/views/financialManagement/receivable/reconciliation.vue"), |
| | | // name: "ReceivableReconciliation", |
| | | // meta: { title: "åºæ¶å¯¹è´¦" }, |
| | | // }, |
| | | // { |
| | | // path: "purchase-in", |
| | | // component: () => import("@/views/financialManagement/payable/purchaseIn.vue"), |
| | | // name: "PurchaseIn", |
| | | // meta: { title: "éè´å
¥åº" }, |
| | | // }, |
| | | // { |
| | | // path: "purchase-return", |
| | | // component: () => import("@/views/financialManagement/payable/purchaseReturn.vue"), |
| | | // name: "PurchaseReturn", |
| | | // meta: { title: "éè´éè´§" }, |
| | | // }, |
| | | // { |
| | | // path: "input-invoice", |
| | | // component: () => import("@/views/financialManagement/payable/input-invoice.vue"), |
| | | // name: "InputInvoice", |
| | | // meta: { title: "è¿é¡¹å票" }, |
| | | // }, |
| | | // { |
| | | // path: "payment-apply", |
| | | // component: () => import("@/views/financialManagement/payable/paymentApply.vue"), |
| | | // name: "PaymentApply", |
| | | // meta: { title: "仿¬¾ç³è¯·" }, |
| | | // }, |
| | | // |
| | | // { |
| | | // path: "payment", |
| | | // component: () => import("@/views/financialManagement/payable/payment.vue"), |
| | | // name: "Payment", |
| | | // meta: { title: "仿¬¾å" }, |
| | | // }, |
| | | // { |
| | | // path: "payable-reconciliation", |
| | | // component: () => import("@/views/financialManagement/payable/reconciliation.vue"), |
| | | // name: "PayableReconciliation", |
| | | // meta: { title: "åºä»å¯¹è´¦" }, |
| | | // }, |
| | | // { |
| | | // path: "fixed-assets", |
| | | // component: () => import("@/views/financialManagement/assets/fixedAssets.vue"), |
| | | // name: "FixedAssets", |
| | | // meta: { title: "åºå®èµäº§" }, |
| | | // }, |
| | | // { |
| | | // path: "intangible-assets", |
| | | // component: () => import("@/views/financialManagement/assets/intangibleAssets.vue"), |
| | | // name: "IntangibleAssets", |
| | | // meta: { title: "æ å½¢èµäº§" }, |
| | | // }, |
| | | // { |
| | | // path: "general-ledger", |
| | | // component: () => import("@/views/financialManagement/generalLedger/index.vue"), |
| | | // name: "GeneralLedger", |
| | | // meta: { title: "æ»å¸ç§ç®" }, |
| | | // }, |
| | | // { |
| | | // path: "voucher", |
| | | // component: () => import("@/views/financialManagement/voucher/index.vue"), |
| | | // name: "Voucher", |
| | | // meta: { title: "åè¯" }, |
| | | // }, |
| | | // { |
| | | // path: "voucher-general-ledger", |
| | | // component: () => import("@/views/financialManagement/voucher/generalLedger.vue"), |
| | | // name: "VoucherGeneralLedger", |
| | | // meta: { title: "ç§ç®æ»å¸" }, |
| | | // }, |
| | | // { |
| | | // path: "voucher-detail-ledger", |
| | | // component: () => import("@/views/financialManagement/voucher/detailLedger.vue"), |
| | | // name: "VoucherDetailLedger", |
| | | // meta: { title: "ç§ç®æç»å¸" }, |
| | | // }, |
| | | // ], |
| | | // }, |
| | | ]; |
| | | |
| | | // å¨æè·¯ç±ï¼åºäºç¨æ·æé卿å»å è½½ |
| | | export const dynamicRoutes = [ |
| | | { |
| | | path: "/system/user-auth", |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ["system:user:edit"], |
| | | children: [ |
| | | { |
| | | path: "role/:userId(\\d+)", |
| | | component: () => import("@/views/system/user/authRole"), |
| | | name: "AuthRole", |
| | | meta: { title: "åé
è§è²", activeMenu: "/system/user" }, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: "/system/role-auth", |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ["system:role:edit"], |
| | | children: [ |
| | | { |
| | | path: "user/:roleId(\\d+)", |
| | | component: () => import("@/views/system/role/authUser"), |
| | | name: "AuthUser", |
| | | meta: { title: "åé
ç¨æ·", activeMenu: "/system/role" }, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: "/system/dict-data", |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ["system:dict:list"], |
| | | children: [ |
| | | { |
| | | path: "index/:dictId(\\d+)", |
| | | component: () => import("@/views/system/dict/data"), |
| | | name: "Data", |
| | | meta: { title: "åå
¸æ°æ®", activeMenu: "/system/dict" }, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: "/monitor/job-log", |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ["monitor:job:list"], |
| | | children: [ |
| | | { |
| | | path: "index/:jobId(\\d+)", |
| | | component: () => import("@/views/monitor/job/log"), |
| | | name: "JobLog", |
| | | meta: { title: "è°åº¦æ¥å¿", activeMenu: "/monitor/job" }, |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | path: "/tool/gen-edit", |
| | | component: Layout, |
| | | hidden: true, |
| | | permissions: ["tool:gen:edit"], |
| | | children: [ |
| | | { |
| | | path: "index/:tableId(\\d+)", |
| | | component: () => import("@/views/tool/gen/editTable"), |
| | | name: "GenEdit", |
| | | meta: { title: "ä¿®æ¹çæé
ç½®", activeMenu: "/tool/gen" }, |
| | | }, |
| | | ], |
| | | }, |
| | | ]; |
| | | |
| | | const router = createRouter({ |
| | | history: createWebHistory(), |
| | | routes: constantRoutes, |
| | | scrollBehavior(to, from, savedPosition) { |
| | | if (savedPosition) { |
| | | return savedPosition; |
| | | } |
| | | return { top: 0 }; |
| | | }, |
| | | }); |
| | | |
| | | export default router; |