routes.ts 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220
  1. import type { Route } from "#/global";
  2. import type { RouteRecordRaw } from "vue-router";
  3. import useSettingsStore from "@/store/modules/settings";
  4. import generatedRoutes from "virtual:generated-pages";
  5. import { setupLayouts } from "virtual:meta-layouts";
  6. import representative from "./modules/representative";
  7. import operationManagement from "./modules/operation";
  8. import personnel from "./modules/personnel";
  9. import content from "./modules/content"
  10. import marketingManagement from "./modules/marketing";
  11. import quoteConfig from "./modules/quoteConfig";//报价配置
  12. import externalAgreement from "./modules/externalAgreement";//外部协议
  13. import additionalOrder from './modules/additionalOrder.ts'
  14. import insurancePolicy from './modules/insurancePolicy.ts'
  15. import finance from './modules/finance.ts'
  16. import payCredit from './modules/payCredit.ts'
  17. import receivable from './modules/receivable.ts'
  18. import platform from './modules/platform'
  19. import capital from './modules/capital.ts'
  20. import basics from './modules/basics.ts'
  21. import systemManage from './modules/system.ts'
  22. import consoleManage from './modules/console.ts' //数据报表
  23. import sale from './modules/sale.ts'//分销管理
  24. import partner from './modules/partner.ts'//合伙人管理
  25. // import { } from "@/store/modules/user";
  26. // 固定路由(默认路由
  27. // console.log(useUserStore)
  28. // const userStore = useUserStore()
  29. const constantRoutes: RouteRecordRaw[] = [
  30. {
  31. path: "/login",
  32. name: "login",
  33. component: () => import("@/views/login.vue"),
  34. meta: {
  35. title: "登录",
  36. },
  37. },
  38. {
  39. path: "/:all(.*)*",
  40. name: "notFound",
  41. component: () => import("@/views/[...all].vue"),
  42. meta: {
  43. title: "找不到页面",
  44. },
  45. },
  46. ];
  47. // 系统路由
  48. const systemRoutes: RouteRecordRaw[] = [
  49. {
  50. path: "/",
  51. component: () => import("@/layouts/index.vue"),
  52. meta: {
  53. title: () => useSettingsStore().settings.home.title,
  54. breadcrumb: false,
  55. },
  56. children: [
  57. {
  58. path: "",
  59. component: () => import("@/views/index.vue"),
  60. meta: {
  61. title: () => useSettingsStore().settings.home.title,
  62. icon: "i-ant-design:home-twotone",
  63. breadcrumb: false,
  64. },
  65. },
  66. {
  67. path: "reload",
  68. name: "reload",
  69. component: () => import("@/views/reload.vue"),
  70. meta: {
  71. title: "重新加载",
  72. breadcrumb: false,
  73. },
  74. },
  75. ],
  76. },
  77. ];
  78. // console.log(userStore,666)
  79. // 动态路由(异步路由、导航栏路由)
  80. const asyncRoutes: Route.recordMainRaw[] = [
  81. {
  82. meta: {
  83. title: "组织架构",
  84. icon: "i-uim:box",
  85. },
  86. children: [personnel],
  87. },
  88. // {
  89. // meta: {
  90. // title: "租户管理",
  91. // icon: "i-uim:box",
  92. // },
  93. // children: [],
  94. // },
  95. {
  96. meta: {
  97. title: "业务管理",
  98. icon: "i-uim:box",
  99. },
  100. children: [operationManagement,sale,partner],
  101. },
  102. {
  103. meta: {
  104. title: '营销管理',
  105. icon: "i-uim:box",
  106. },
  107. children: [marketingManagement],
  108. },
  109. {
  110. meta: {
  111. title: "代办事项",
  112. icon: "i-uim:box",
  113. },
  114. children: [representative],
  115. },
  116. {
  117. meta: {
  118. title: "内容管理",
  119. icon: "i-uim:box",
  120. },
  121. children: [content],
  122. },
  123. {
  124. meta: {
  125. title: "报价配置",
  126. icon: "i-uim:box",
  127. },
  128. children: [quoteConfig,externalAgreement],
  129. },
  130. {
  131. meta: {
  132. title: '补录订单',
  133. icon: "i-uim:box",
  134. },
  135. children: [additionalOrder],
  136. },
  137. {
  138. meta: {
  139. title: '车险出单',
  140. icon: "i-uim:box",
  141. },
  142. children: [insurancePolicy],
  143. },
  144. {
  145. meta: {
  146. title: '财务中心',
  147. icon: "i-uim:box",
  148. },
  149. children: [finance, payCredit, receivable, platform, capital, basics],
  150. },
  151. {
  152. meta: {
  153. title: '系统管理',
  154. icon: "i-uim:box",
  155. },
  156. children: [systemManage],
  157. },
  158. /* 数据报表 */
  159. {
  160. meta: {
  161. title: "数据报表",
  162. icon: "i-uim:box",
  163. },
  164. children: [consoleManage],
  165. },
  166. // {
  167. // meta: {
  168. // title: "租户运营",
  169. // icon: "i-uim:box",
  170. // },
  171. // children: [],
  172. // },
  173. // {
  174. // meta: {
  175. // title: "数据中心",
  176. // icon: "i-uim:box",
  177. // },
  178. // children: [],
  179. // },
  180. // {
  181. // meta: {
  182. // title: "增值服务",
  183. // icon: "i-uim:box",
  184. // },
  185. // children: [],
  186. // },
  187. // {
  188. // meta: {
  189. // title: "基础设置",
  190. // icon: "i-uim:box",
  191. // },
  192. // children: [],
  193. // },
  194. ];
  195. const constantRoutesByFilesystem = generatedRoutes.filter((item) => {
  196. return item.meta?.enabled !== false && item.meta?.constant === true;
  197. });
  198. const asyncRoutesByFilesystem = setupLayouts(
  199. generatedRoutes.filter((item) => {
  200. return (
  201. item.meta?.enabled !== false &&
  202. item.meta?.constant !== true &&
  203. item.meta?.layout !== false
  204. );
  205. })
  206. );
  207. export {
  208. asyncRoutes,
  209. asyncRoutesByFilesystem,
  210. constantRoutes,
  211. constantRoutesByFilesystem,
  212. systemRoutes,
  213. };