| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212 | // 模拟后端动态生成路由import { MockMethod } from "vite-plugin-mock";import { system, permission, frame, tabs } from "@/router/enums";/** * roles:页面级别权限,这里模拟二种 "admin"、"common" * admin:管理员角色 * common:普通角色 */const systemRouter = {  path: "/system",  meta: {    icon: "setting",    title: "menus.hssysManagement",    rank: system  },  children: [    {      path: "/system/user/index",      name: "User",      meta: {        icon: "flUser",        title: "menus.hsUser",        roles: ["admin"]      }    },    {      path: "/system/role/index",      name: "Role",      meta: {        icon: "role",        title: "menus.hsRole",        roles: ["admin"]      }    },    {      path: "/system/dept/index",      name: "Dept",      meta: {        icon: "dept",        title: "menus.hsDept",        roles: ["admin"]      }    }  ]};const permissionRouter = {  path: "/permission",  meta: {    title: "menus.permission",    icon: "lollipop",    rank: permission  },  children: [    {      path: "/permission/page/index",      name: "PermissionPage",      meta: {        title: "menus.permissionPage",        roles: ["admin", "common"]      }    },    {      path: "/permission/button/index",      name: "PermissionButton",      meta: {        title: "menus.permissionButton",        roles: ["admin", "common"],        auths: ["btn_add", "btn_edit", "btn_delete"]      }    }  ]};const frameRouter = {  path: "/iframe",  meta: {    icon: "monitor",    title: "menus.hsExternalPage",    rank: frame  },  children: [    {      path: "/iframe/pure",      name: "FramePure",      meta: {        title: "menus.hsPureDocument",        frameSrc: "https://yiming_chang.gitee.io/pure-admin-doc",        roles: ["admin", "common"]      }    },    {      path: "/external",      name: "https://yiming_chang.gitee.io/pure-admin-doc",      meta: {        title: "menus.externalLink",        roles: ["admin", "common"]      }    },    {      path: "/iframe/ep",      name: "FrameEp",      meta: {        title: "menus.hsEpDocument",        frameSrc: "https://element-plus.org/zh-CN/",        roles: ["admin", "common"]      }    },    {      path: "/iframe/vue3",      name: "FrameVue",      meta: {        title: "menus.hsVueDocument",        frameSrc: "https://cn.vuejs.org/",        roles: ["admin", "common"]      }    },    {      path: "/iframe/vite",      name: "FrameVite",      meta: {        title: "menus.hsViteDocument",        frameSrc: "https://cn.vitejs.dev/",        roles: ["admin", "common"]      }    },    {      path: "/iframe/pinia",      name: "FramePinia",      meta: {        title: "menus.hsPiniaDocument",        frameSrc: "https://pinia.vuejs.org/zh/index.html",        roles: ["admin", "common"]      }    },    {      path: "/iframe/vue-router",      name: "FrameRouter",      meta: {        title: "menus.hsRouterDocument",        frameSrc: "https://router.vuejs.org/zh/",        roles: ["admin", "common"]      }    },    {      path: "/iframe/tailwindcss",      name: "FrameTailwindcss",      meta: {        title: "menus.hsTailwindcssDocument",        frameSrc: "https://tailwindcss.com/docs/installation",        roles: ["admin", "common"]      }    }  ]};const tabsRouter = {  path: "/tabs",  meta: {    icon: "IF-pure-iconfont-tabs",    title: "menus.hstabs",    rank: tabs  },  children: [    {      path: "/tabs/index",      name: "Tabs",      meta: {        title: "menus.hstabs",        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"]      }    }  ]};export default [  {    url: "/getAsyncRoutes",    method: "get",    response: () => {      return {        success: true,        data: [systemRouter, permissionRouter, frameRouter, tabsRouter]      };    }  }] as MockMethod[];
 |