// 模拟后端动态生成路由 import { defineFakeRoute } from "vite-plugin-fake-server/client"; import { bills, frame, monitor, permission, system, tabs } from "@/router/enums"; /** * roles:页面级别权限,这里模拟二种 "admin"、"common" * admin:管理员角色 * common:普通角色 */ const systemManagementRouter = { path: "/system", meta: { icon: "ri:settings-3-line", title: "menus.pureSysManagement", rank: system }, children: [ { path: "/system/user/index", name: "SystemUser", meta: { icon: "ri:admin-line", title: "menus.pureUser", roles: ["admin"] } }, { path: "/system/role/index", name: "SystemRole", meta: { icon: "ri:admin-fill", title: "menus.pureRole", roles: ["admin"] } }, { path: "/system/menu/index", name: "SystemMenu", meta: { icon: "ep:menu", title: "menus.pureSystemMenu", roles: ["admin"] } }, { path: "/system/dept/index", name: "SystemDept", meta: { icon: "ri:git-branch-line", title: "menus.pureDept", roles: ["admin"] } } ] }; const systemMonitorRouter = { path: "/monitor", meta: { icon: "ep:monitor", title: "menus.pureSysMonitor", rank: monitor }, children: [ { path: "/monitor/online-user", component: "monitor/online/index", name: "OnlineUser", meta: { icon: "ri:user-voice-line", title: "menus.pureOnlineUser", roles: ["admin"] } }, { path: "/monitor/login-logs", component: "monitor/logs/login/index", name: "LoginLog", meta: { icon: "ri:window-line", title: "menus.pureLoginLog", roles: ["admin"] } }, { path: "/monitor/operation-logs", component: "monitor/logs/operation/index", name: "OperationLog", meta: { icon: "ri:history-fill", title: "menus.pureOperationLog", roles: ["admin"] } }, { path: "/monitor/system-logs", component: "monitor/logs/system/index", name: "SystemLog", meta: { icon: "ri:file-search-line", title: "menus.pureSystemLog", roles: ["admin"] } } ] }; const permissionRouter = { path: "/permission", meta: { title: "menus.purePermission", icon: "ep:lollipop", rank: permission }, children: [ { path: "/permission/page/index", name: "PermissionPage", meta: { title: "menus.purePermissionPage", roles: ["admin", "common"] } }, { path: "/permission/button/index", name: "PermissionButton", meta: { title: "menus.purePermissionButton", roles: ["admin", "common"], auths: ["permission:btn:add", "permission:btn:edit", "permission:btn:delete"] } } ] }; const frameRouter = { path: "/iframe", meta: { icon: "ri:links-fill", title: "menus.pureExternalPage", rank: frame }, children: [ { path: "/iframe/embedded", meta: { title: "menus.pureEmbeddedDoc" }, children: [ { path: "/iframe/colorhunt", name: "FrameColorHunt", meta: { title: "menus.pureColorHuntDoc", frameSrc: "https://colorhunt.co/", keepAlive: true, roles: ["admin", "common"] } }, { path: "/iframe/uigradients", name: "FrameUiGradients", meta: { title: "menus.pureUiGradients", frameSrc: "https://uigradients.com/", keepAlive: true, roles: ["admin", "common"] } }, { path: "/iframe/ep", name: "FrameEp", meta: { title: "menus.pureEpDoc", frameSrc: "https://element-plus.org/zh-CN/", keepAlive: true, roles: ["admin", "common"] } }, { path: "/iframe/tailwindcss", name: "FrameTailwindcss", meta: { title: "menus.pureTailwindcssDoc", frameSrc: "https://tailwindcss.com/docs/installation", keepAlive: true, roles: ["admin", "common"] } }, { path: "/iframe/vue3", name: "FrameVue", meta: { title: "menus.pureVueDoc", frameSrc: "https://cn.vuejs.org/", keepAlive: true, roles: ["admin", "common"] } }, { path: "/iframe/vite", name: "FrameVite", meta: { title: "menus.pureViteDoc", frameSrc: "https://cn.vitejs.dev/", keepAlive: true, roles: ["admin", "common"] } }, { path: "/iframe/pinia", name: "FramePinia", meta: { title: "menus.purePiniaDoc", frameSrc: "https://pinia.vuejs.org/zh/index.html", keepAlive: true, roles: ["admin", "common"] } }, { path: "/iframe/vue-router", name: "FrameRouter", meta: { title: "menus.pureRouterDoc", frameSrc: "https://router.vuejs.org/zh/", keepAlive: true, roles: ["admin", "common"] } } ] }, { path: "/iframe/external", meta: { title: "menus.pureExternalDoc" }, children: [ { path: "/external", name: "https://pure-admin.github.io/pure-admin-doc", meta: { title: "menus.pureExternalLink", roles: ["admin", "common"] } }, { path: "/pureUtilsLink", name: "https://pure-admin-utils.netlify.app/", meta: { title: "menus.pureUtilsLink", roles: ["admin", "common"] } } ] } ] }; const tabsRouter = { path: "/tabs", meta: { icon: "ri:bookmark-2-line", title: "menus.pureTabs", rank: tabs }, children: [ { path: "/tabs/index", name: "Tabs", meta: { title: "menus.pureTabs", roles: ["admin", "common"] } }, // query 传参模式 { path: "/tabs/query-detail", name: "TabQueryDetail", meta: { // 不在menu菜单中显示 showLink: false, activePath: "/tabs/index", roles: ["admin", "common"] } }, // params 传参模式 { path: "/tabs/params-detail/:id", component: "params-detail", name: "TabParamsDetail", meta: { // 不在menu菜单中显示 showLink: false, activePath: "/tabs/index", roles: ["admin", "common"] } } ] }; const about = { path: "/about", meta: { icon: "ri:bookmark-2-line", title: "menus.pureAbout" }, children: [ { path: "/about/index", name: "About", meta: { icon: "ri:bookmark-2-line", title: "menus.pureAbout" } } ] }; export default defineFakeRoute([ { url: "/get-async-routes", method: "get", response: () => { return { success: true, data: [systemManagementRouter, systemMonitorRouter, permissionRouter, frameRouter, about, /*tabsRouter*/] }; } } ]);