routers.js 5.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218
  1. // +----------------------------------------------------------------------
  2. // | CRMEB [ CRMEB赋能开发者,助力企业发展 ]
  3. // +----------------------------------------------------------------------
  4. // | Copyright (c) 2016~2023 https://www.crmeb.com All rights reserved.
  5. // +----------------------------------------------------------------------
  6. // | Licensed CRMEB并不是自由软件,未经许可不能去掉CRMEB相关版权
  7. // +----------------------------------------------------------------------
  8. // | Author: CRMEB Team <admin@crmeb.com>
  9. // +----------------------------------------------------------------------
  10. import index from './modules/index';
  11. import product from './modules/product';
  12. import order from './modules/order';
  13. import user from './modules/user';
  14. // import echarts from './modules/echarts'
  15. import setting from './modules/setting';
  16. import agent from './modules/agent';
  17. import finance from './modules/finance';
  18. import cms from './modules/cms';
  19. import marketing from './modules/marketing';
  20. import app from './modules/app';
  21. import system from './modules/system';
  22. import LayoutMain from '@/layout';
  23. import statistic from './modules/statistic';
  24. import frameOut from './modules/frameOut';
  25. import division from './modules/division';
  26. import settings from '@/setting';
  27. import crud from './modules/crud';
  28. const modulesFiles = require.context('./modules/crud', true, /\.js$/);
  29. const routers = [];
  30. // 将扫描到的路由信息加入路由数组中
  31. modulesFiles.keys().forEach((modulePath) => {
  32. const value = modulesFiles(modulePath);
  33. routers.push(value.default);
  34. });
  35. let routePre = settings.routePre;
  36. /**
  37. * 在主框架内显示
  38. */
  39. const frameIn = [
  40. {
  41. path: '/',
  42. meta: {
  43. title: 'CRMEB',
  44. },
  45. redirect: {
  46. name: 'home_index',
  47. },
  48. component: LayoutMain,
  49. children: [
  50. // {
  51. // path: '/admin/system/log',
  52. // name: 'log',
  53. // meta: {
  54. // title: '前端日志',
  55. // auth: true
  56. // },
  57. // component: () => import('@/pages/system/log')
  58. // },
  59. {
  60. path: routePre + '/system/user',
  61. name: `systemUser`,
  62. meta: {
  63. auth: true,
  64. title: '个人中心',
  65. },
  66. component: () => import('@/pages/setting/user/index'),
  67. },
  68. {
  69. path: routePre + '/system/files',
  70. name: `systemFiles`,
  71. meta: {
  72. auth: ['admin-setting-files'],
  73. title: '文件管理',
  74. },
  75. component: () => import('@/pages/setting/userFile/index'),
  76. },
  77. // 刷新页面 必须保留
  78. {
  79. path: 'refresh',
  80. name: 'refresh',
  81. hidden: true,
  82. component: {
  83. beforeRouteEnter(to, from, next) {
  84. next((instance) => instance.$router.replace(from.fullPath));
  85. },
  86. render: (h) => h(),
  87. },
  88. },
  89. // 页面重定向 必须保留
  90. {
  91. path: 'redirect/:route*',
  92. name: 'redirect',
  93. hidden: true,
  94. component: {
  95. beforeRouteEnter(to, from, next) {
  96. next((instance) => instance.$router.replace(JSON.parse(from.params.route)));
  97. },
  98. render: (h) => h(),
  99. },
  100. },
  101. ],
  102. },
  103. {
  104. path: routePre,
  105. meta: {
  106. title: 'CRMEB',
  107. },
  108. redirect: {
  109. name: 'home_index',
  110. },
  111. component: LayoutMain,
  112. },
  113. {
  114. path: routePre + '/widget.images/index.html',
  115. name: `images`,
  116. meta: {
  117. auth: ['admin-user-user-index'],
  118. title: '上传图片',
  119. },
  120. component: () => import('@/components/uploadPictures/widgetImg'),
  121. },
  122. {
  123. path: routePre + '/widget.widgets/icon.html',
  124. name: `imagesIcon`,
  125. meta: {
  126. auth: ['admin-user-user-index'],
  127. title: '上传图标',
  128. },
  129. component: () => import('@/components/iconFrom/index'),
  130. },
  131. {
  132. path: routePre + '/store.StoreProduct/index.html',
  133. name: `storeProduct`,
  134. meta: {
  135. title: '选择商品',
  136. },
  137. component: () => import('@/components/goodsList/index'),
  138. },
  139. {
  140. path: routePre + '/system.User/list.html',
  141. name: `changeUser`,
  142. meta: {
  143. title: '选择用户',
  144. },
  145. component: () => import('@/components/customerInfo/index'),
  146. },
  147. {
  148. path: routePre + '/widget.video/index.html',
  149. name: `video`,
  150. meta: {
  151. title: '上传视频',
  152. },
  153. component: () => import('@/components/uploadVideo/index'),
  154. },
  155. index,
  156. agent,
  157. cms,
  158. product,
  159. marketing,
  160. order,
  161. user,
  162. finance,
  163. setting,
  164. system,
  165. app,
  166. statistic,
  167. division,
  168. ...routers,
  169. crud,
  170. ];
  171. /**
  172. * 在主框架之外显示
  173. */
  174. const frameOuts = frameOut;
  175. /**
  176. * 错误页面
  177. */
  178. const errorPage = [
  179. {
  180. path: routePre + '/403',
  181. name: '403',
  182. meta: {
  183. title: '403',
  184. },
  185. component: () => import('@/pages/system/error/403'),
  186. },
  187. {
  188. path: routePre + '/500',
  189. name: '500',
  190. meta: {
  191. title: '500',
  192. },
  193. component: () => import('@/pages/system/error/500'),
  194. },
  195. {
  196. path: routePre + '/*',
  197. name: '404',
  198. meta: {
  199. title: '404',
  200. },
  201. component: () => import('@/pages/system/error/404'),
  202. },
  203. ];
  204. // 导出需要显示菜单的
  205. export const frameInRoutes = frameIn;
  206. // 重新组织后导出
  207. export default [...frameIn, ...frameOuts, ...errorPage];