index.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. Vue.use(Router)
  4. /* Layout */
  5. import Layout from '@/layout'
  6. /**
  7. * Note: 路由配置项
  8. *
  9. * hidden: true // 当设置 true 的时候该路由不会再侧边栏出现 如401,login等页面,或者如一些编辑页面/edit/1
  10. * alwaysShow: true // 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式--如组件页面
  11. * // 只有一个时,会将那个子路由当做根路由显示在侧边栏--如引导页面
  12. * // 若你想不管路由下面的 children 声明的个数都显示你的根路由
  13. * // 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,一直显示根路由
  14. * redirect: noRedirect // 当设置 noRedirect 的时候该路由在面包屑导航中不可被点击
  15. * name:'router-name' // 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
  16. * meta : {
  17. noCache: true // 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
  18. title: 'title' // 设置该路由在侧边栏和面包屑中展示的名字
  19. icon: 'svg-name' // 设置该路由的图标,对应路径src/assets/icons/svg
  20. breadcrumb: false // 如果设置为false,则不会在breadcrumb面包屑中显示
  21. activeMenu: '/system/user' // 当路由设置了该属性,则会高亮相对应的侧边栏。
  22. }
  23. */
  24. // 公共路由
  25. export const constantRoutes = [
  26. {
  27. path: '/redirect',
  28. component: Layout,
  29. hidden: true,
  30. children: [
  31. {
  32. path: '/redirect/:path(.*)',
  33. component: (resolve) => require(['@/views/redirect'], resolve)
  34. }
  35. ]
  36. },
  37. {
  38. path: '/homePage',
  39. component: (resolve) => require(['@/views/homePage'], resolve),
  40. hidden: true
  41. },
  42. {
  43. path: '/login',
  44. component: (resolve) => require(['@/views/login'], resolve),
  45. hidden: true
  46. },
  47. {
  48. path: '/register',
  49. component: (resolve) => require(['@/views/register'], resolve),
  50. hidden: true
  51. },
  52. {
  53. path: '/404',
  54. component: (resolve) => require(['@/views/error/404'], resolve),
  55. hidden: true
  56. },
  57. {
  58. path: '/401',
  59. component: (resolve) => require(['@/views/error/401'], resolve),
  60. hidden: true
  61. },
  62. {
  63. path: '/skip',
  64. component: (resolve) => require(['@/views/skip'], resolve),
  65. hidden: true
  66. },
  67. {
  68. path: '',
  69. component: Layout,
  70. redirect: 'index',
  71. children: [
  72. {
  73. path: 'index',
  74. component: (resolve) => require(['@/views/index'], resolve),
  75. name: 'Index',
  76. meta: { title: '首页', icon: 'dashboard', affix: true }
  77. }
  78. ]
  79. },
  80. {
  81. path: '/user',
  82. component: Layout,
  83. hidden: true,
  84. redirect: 'noredirect',
  85. children: [
  86. {
  87. path: 'profile',
  88. component: (resolve) => require(['@/views/system/user/profile/index'], resolve),
  89. name: 'Profile',
  90. meta: { title: '个人中心', icon: 'user' }
  91. }
  92. ]
  93. },
  94. {
  95. path: '/system/user-auth',
  96. component: Layout,
  97. hidden: true,
  98. children: [
  99. {
  100. path: 'role/:userId(\\d+)',
  101. component: (resolve) => require(['@/views/system/user/authRole'], resolve),
  102. name: 'AuthRole',
  103. meta: { title: '分配角色', activeMenu: '/system/user'}
  104. }
  105. ]
  106. },
  107. {
  108. path: '/system/role-auth',
  109. component: Layout,
  110. hidden: true,
  111. children: [
  112. {
  113. path: 'user/:roleId(\\d+)',
  114. component: (resolve) => require(['@/views/system/role/authUser'], resolve),
  115. name: 'AuthUser',
  116. meta: { title: '分配用户', activeMenu: '/system/role'}
  117. }
  118. ]
  119. },
  120. {
  121. path: '/system/dict-data',
  122. component: Layout,
  123. hidden: true,
  124. children: [
  125. {
  126. path: 'index/:dictId(\\d+)',
  127. component: (resolve) => require(['@/views/system/dict/data'], resolve),
  128. name: 'Data',
  129. meta: { title: '字典数据', activeMenu: '/system/dict'}
  130. }
  131. ]
  132. },
  133. {
  134. path: '/monitor/job-log',
  135. component: Layout,
  136. hidden: true,
  137. children: [
  138. {
  139. path: 'index',
  140. component: (resolve) => require(['@/views/monitor/job/log'], resolve),
  141. name: 'JobLog',
  142. meta: { title: '调度日志', activeMenu: '/monitor/job'}
  143. }
  144. ]
  145. },
  146. {
  147. path: '/tool/gen-edit',
  148. component: Layout,
  149. hidden: true,
  150. children: [
  151. {
  152. path: 'index/:tableId(\\d+)',
  153. component: (resolve) => require(['@/views/tool/gen/editTable'], resolve),
  154. name: 'GenEdit',
  155. meta: { title: '修改生成配置', activeMenu: '/tool/gen'}
  156. }
  157. ]
  158. },
  159. {
  160. path: '/channel',
  161. component: Layout,
  162. hidden: true,
  163. children: [
  164. {
  165. path: 'channel/childs',
  166. component: (resolve) => require(['@/views/business/channel/childs'], resolve),
  167. name: 'ChannelChilds',
  168. meta: { title: '子渠道管理', activeMenu: '/channel/channel'}
  169. }
  170. ],
  171. },
  172. {
  173. path: '/goods',
  174. component: Layout,
  175. hidden: true,
  176. children: [
  177. {
  178. path: 'add',
  179. component: (resolve) => require(['@/views/business/goods/add'], resolve),
  180. name: 'GoodsAdd',
  181. meta: { title: '添加商品', activeMenu: '/goods/list' }
  182. },
  183. {
  184. path: 'edit',
  185. component: (resolve) => require(['@/views/business/goods/add'], resolve),
  186. name: 'GoodsEdit',
  187. meta: { title: '修改商品', activeMenu: '/goods/list', noCache: true }
  188. }
  189. ],
  190. },
  191. {
  192. path: '/inventory',
  193. component: Layout,
  194. hidden: true,
  195. children: [
  196. {
  197. path: 'detail',
  198. component: (resolve) => require(['@/views/business/inventory/detail'], resolve),
  199. name: 'InventoryDetail',
  200. meta: { title: '库存订单查看', activeMenu: '/goods/inventory', noCache: true }
  201. }
  202. ],
  203. },
  204. {
  205. path: '/exchange',
  206. component: Layout,
  207. hidden: true,
  208. children: [
  209. {
  210. path: 'addCode',
  211. component: (resolve) => require(['@/views/business/exchange/addCode'], resolve),
  212. name: 'ExchangeAdd',
  213. meta: { title: '添加兑换码', activeMenu: '/goods/exchange' }
  214. },
  215. {
  216. path: 'detailCode',
  217. component: (resolve) => require(['@/views/business/exchange/addCode'], resolve),
  218. name: 'ExchangeDetail',
  219. meta: { title: '查看兑换码', activeMenu: '/goods/exchange', noCache: true }
  220. }
  221. ],
  222. },
  223. {
  224. path: '/coupon',
  225. component: Layout,
  226. hidden: true,
  227. children: [
  228. {
  229. path: 'add',
  230. component: (resolve) => require(['@/views/business/coupon/add'], resolve),
  231. name: 'CouponAdd',
  232. meta: { title: '生成优惠券', activeMenu: '/coupon/list' }
  233. },
  234. {
  235. path: 'query',
  236. component: (resolve) => require(['@/views/business/coupon/add'], resolve),
  237. name: 'CouponQuery',
  238. meta: { title: '查看优惠券', activeMenu: '/coupon/list', noCache: true }
  239. },
  240. {
  241. path: 'edit',
  242. component: (resolve) => require(['@/views/business/coupon/add'], resolve),
  243. name: 'CouponEdit',
  244. meta: { title: '修改优惠券', activeMenu: '/coupon/list', noCache: true }
  245. },
  246. {
  247. path: 'pkg/add',
  248. component: (resolve) => require(['@/views/business/couponPkg/create'], resolve),
  249. name: 'CouponPkgAdd',
  250. meta: { title: '生成券包', activeMenu: '/coupon/listCouponPkg' }
  251. },
  252. {
  253. path: 'pkg/query',
  254. component: (resolve) => require(['@/views/business/couponPkg/create'], resolve),
  255. name: 'CouponPkgQuery',
  256. meta: { title: '查看券包', activeMenu: '/coupon/listCouponPkg', noCache: true }
  257. },
  258. {
  259. path: 'pkg/edit',
  260. component: (resolve) => require(['@/views/business/couponPkg/create'], resolve),
  261. name: 'CouponPkgEdit',
  262. meta: { title: '修改券包', activeMenu: '/coupon/listCouponPkg', noCache: true }
  263. }
  264. ],
  265. },
  266. {
  267. path: '/ticket',
  268. component: Layout,
  269. hidden: true,
  270. children: [
  271. {
  272. path: 'create',
  273. component: (resolve) => require(['@/views/business/ticket/create'], resolve),
  274. name: 'TicketCreate',
  275. meta: { title: '添加盲票组' , activeMenu: '/ticket/ticket' }
  276. },
  277. {
  278. path: 'edit',
  279. component: (resolve) => require(['@/views/business/ticket/create'], resolve),
  280. name: 'TicketEdit',
  281. meta: { title: '修改盲票组' , activeMenu: '/ticket/ticket', noCache: true }
  282. },
  283. {
  284. path: 'detail',
  285. component: (resolve) => require(['@/views/business/ticket/detail'], resolve),
  286. name: 'TicketDetail',
  287. meta: { title: '盲票组详情' , activeMenu: '/ticket/ticket', noCache: true }
  288. }
  289. ]
  290. },
  291. {
  292. path: '/marketing',
  293. component: Layout,
  294. hidden: true,
  295. children: [
  296. {
  297. path: 'add',
  298. component: (resolve) => require(['@/views/business/marketing/add'], resolve),
  299. name: 'MarketingAdd',
  300. meta: { title: '创建抽奖活动' , activeMenu: '/marketing/marketing' }
  301. },
  302. {
  303. path: 'edit',
  304. component: (resolve) => require(['@/views/business/marketing/add'], resolve),
  305. name: 'MarketingEdit',
  306. meta: { title: '修改抽奖活动' , activeMenu: '/marketing/marketing', noCache: true }
  307. },
  308. {
  309. path: 'query',
  310. component: (resolve) => require(['@/views/business/marketing/detail'], resolve),
  311. name: 'MarketingQuery',
  312. meta: { title: '抽奖活动详情' , activeMenu: '/marketing/marketing', noCache: true }
  313. },
  314. {
  315. path: 'groupLottery',
  316. component: (resolve) => require(['@/views/business/groupLottery'], resolve),
  317. name: 'LotteryList',
  318. meta: { title: '拼团活动设置' , activeMenu: '/marketing/groupLottery' }
  319. },
  320. {
  321. path: 'LotteryAdd',
  322. component: (resolve) => require(['@/views/business/groupLottery/add'], resolve),
  323. name: 'LotteryAdd',
  324. meta: { title: '创建拼团活动' , activeMenu: '/marketing/groupLottery' }
  325. },
  326. {
  327. path: 'LotteryDetails',
  328. component: (resolve) => require(['@/views/business/groupLottery/detailList'], resolve),
  329. name: 'LotteryDetails',
  330. meta: { title: '拼团详情列表' , activeMenu: '/marketing/groupLottery' }
  331. },
  332. {
  333. path: 'groupLotteryMsg',
  334. component: (resolve) => require(['@/views/business/groupLottery/detailListMsg'], resolve),
  335. name: 'groupLotteryMsg',
  336. meta: { title: '拼团详情信息' , activeMenu: '/marketing/groupLottery' }
  337. },
  338. {
  339. path: 'lottery/edit',
  340. component: (resolve) => require(['@/views/business/groupLottery/add'], resolve),
  341. name: 'LotteryEdit',
  342. meta: { title: '修改拼团活动' , activeMenu: '/marketing/groupLottery', noCache: true }
  343. },
  344. {
  345. path: 'lottery/query',
  346. component: (resolve) => require(['@/views/business/groupLottery/detail'], resolve),
  347. name: 'Lottery/Query',
  348. meta: { title: '拼团活动详情' , activeMenu: '/marketing/groupLottery', noCache: true }
  349. }
  350. ]
  351. },
  352. {
  353. path: '/order',
  354. component: Layout,
  355. hidden: true,
  356. children: [
  357. {
  358. path: 'channel/query',
  359. component: (resolve) => require(['@/views/order/channel/detail'], resolve),
  360. name: 'ChannelDetail',
  361. meta: { title: '经销商订单查看' , activeMenu: '/order/channel', noCache: true }
  362. },
  363. {
  364. path: 'groupLotteryOrder',
  365. component: (resolve) => require(['@/views/order/groupLotteryOrder'], resolve),
  366. name: 'groupLotteryOrder',
  367. meta: { title: '拼团抽奖订单' , activeMenu: '/order/groupLotteryOrder', noCache: true }
  368. },
  369. {
  370. path: 'groupLotteryOrder/query',
  371. component: (resolve) => require(['@/views/order/groupLotteryOrder/detail'], resolve),
  372. name: 'groupLotteryOrderDetail',
  373. meta: { title: '拼团抽奖订单查看' , activeMenu: '/order/groupLotteryOrder', noCache: true }
  374. },
  375. {
  376. path: 'deliver/query',
  377. component: (resolve) => require(['@/views/order/deliver/detail'], resolve),
  378. name: 'DeliverDetail',
  379. meta: { title: '提货订单查看' , activeMenu: '/order/deliver', noCache: true }
  380. },
  381. {
  382. path: 'userTicket/query',
  383. component: (resolve) => require(['@/views/order/userTicket/detail'], resolve),
  384. name: 'UserTicketDetail',
  385. meta: { title: '盲票销售订单查看' , activeMenu: '/order/userTicket', noCache: true }
  386. },
  387. {
  388. path: 'store/query',
  389. component: (resolve) => require(['@/views/order/store/detail'], resolve),
  390. name: 'StoreDetail',
  391. meta: { title: '采购订单查看' , activeMenu: '/order/store', noCache: true }
  392. }
  393. ]
  394. },
  395. {
  396. path: '/setting',
  397. component: Layout,
  398. hidden: true,
  399. children: [
  400. {
  401. path: 'template/create',
  402. component: (resolve) => require(['@/views/setting/template/create'], resolve),
  403. name: 'TemplateCreate',
  404. meta: { title: '添加运费模板' , activeMenu: '/setting/template' }
  405. },
  406. {
  407. path: 'template/edit',
  408. component: (resolve) => require(['@/views/setting/template/create'], resolve),
  409. name: 'TemplateEdit',
  410. meta: { title: '修改运费模板' , activeMenu: '/setting/template', noCache: true }
  411. }
  412. ]
  413. }
  414. ]
  415. export default new Router({
  416. mode: 'history', // 去掉url中的#
  417. scrollBehavior: () => ({ y: 0 }),
  418. routes: constantRoutes
  419. })