router.config.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607
  1. // eslint-disable-next-line
  2. import {
  3. UserLayout,
  4. BasicLayout,
  5. RouteView,
  6. PageView,
  7. BlankLayout
  8. } from '@/layouts'
  9. export const asyncRouterMap = [{
  10. path: '/',
  11. name: 'index',
  12. component: BasicLayout,
  13. meta: {
  14. title: '运营后台'
  15. },
  16. redirect: '/home',
  17. children: [{
  18. path: '/home',
  19. name: 'home',
  20. redirect: '/home',
  21. component: PageView,
  22. meta: {
  23. title: '首页',
  24. icon: 'home'
  25. },
  26. hideChildrenInMenu: true,
  27. children: [{
  28. path: '/home',
  29. name: 'home',
  30. component: () => import(/* webpackChunkName: "home" */ '@/views/Home'),
  31. meta: {
  32. title: '首页',
  33. icon: 'home',
  34. hiddenHeaderContent: true
  35. }
  36. }]
  37. },
  38. {
  39. path: '/changePwd',
  40. name: 'changePwd',
  41. hidden: true,
  42. component: () => import(/* webpackChunkName: "changePwd" */ '@/views/user/ChangePwd'),
  43. meta: {
  44. title: '修改密码',
  45. icon: 'home'
  46. }
  47. },
  48. {
  49. path: '/map',
  50. name: 'map',
  51. redirect: '/map',
  52. component: PageView,
  53. meta: {
  54. title: '网点地图',
  55. icon: 'global',
  56. permission: 'M_map'
  57. },
  58. hideChildrenInMenu: true,
  59. children: [{
  60. path: '/map',
  61. name: 'map',
  62. redirect: '/map/NodeMap',
  63. component: RouteView,
  64. meta: {
  65. title: '网点地图',
  66. icon: 'global',
  67. permission: 'M_map'
  68. },
  69. hideChildrenInMenu: true,
  70. children: [{
  71. path: '/map/NodeMap',
  72. name: 'NodeMap',
  73. component: () => import(/* webpackChunkName: "map" */ '@/views/map/NodeMap.vue'),
  74. meta: {
  75. title: '网点地图',
  76. icon: 'global',
  77. hidden: true
  78. }
  79. }]
  80. }]
  81. },
  82. {
  83. path: '/shop',
  84. redirect: '/shop/goods',
  85. component: PageView,
  86. meta: {
  87. title: '商品',
  88. icon: 'shop',
  89. permission: 'M_shop'
  90. },
  91. children: [{
  92. path: '/shop/goods',
  93. redirect: '/shop/goods/list',
  94. name: 'goodsList',
  95. component: RouteView,
  96. meta: {
  97. title: '商品管理',
  98. icon: 'shopping',
  99. permission: 'M_goodsManage_list'
  100. },
  101. hideChildrenInMenu: true,
  102. children: [{
  103. path: '/shop/goods/list',
  104. name: 'goodsListList',
  105. component: () => import(/* webpackChunkName: "shop" */ '@/views/shop/goodsList.vue'),
  106. meta: {
  107. title: '商品列表',
  108. icon: 'shopping',
  109. hidden: true,
  110. permission: 'M_goodsManage_list'
  111. }
  112. },
  113. {
  114. path: '/shop/goods/add',
  115. name: 'goodsListAdd',
  116. component: () => import(/* webpackChunkName: "shop" */ '@/views/shop/goodsEdit.vue'),
  117. meta: {
  118. title: '新增商品',
  119. icon: 'shopping',
  120. hidden: true,
  121. permission: 'B_goodsManage_add'
  122. }
  123. },
  124. {
  125. path: '/shop/goods/edit/:id',
  126. name: 'goodsListEdit',
  127. component: () => import(/* webpackChunkName: "shop" */ '@/views/shop/goodsEdit.vue'),
  128. meta: {
  129. title: '编辑商品',
  130. icon: 'shopping',
  131. hidden: true,
  132. permission: 'B_goodsManage_edit'
  133. }
  134. }
  135. ]
  136. },
  137. {
  138. path: '/shop/goodsShelves',
  139. name: 'goodsShelves',
  140. component: () => import(/* webpackChunkName: "shop" */ '@/views/shop/goodsShelves.vue'),
  141. meta: {
  142. title: '商品排序',
  143. icon: 'flag',
  144. permission: 'M_goodsShelves_0'
  145. }
  146. },
  147. {
  148. path: '/shopSetting/goodsClass',
  149. name: 'goodsClass',
  150. component: () => import(/* webpackChunkName: "shop" */ '@/views/shopSetting/goodsClass.vue'),
  151. meta: {
  152. title: '商品分类管理',
  153. icon: 'folder',
  154. permission: 'M_goodsClass_list'
  155. }
  156. }
  157. ]
  158. },
  159. {
  160. path: '/order',
  161. redirect: '/order/orderManage',
  162. component: PageView,
  163. meta: {
  164. title: '订单',
  165. icon: 'profile',
  166. permission: 'M_orderManage_list'
  167. },
  168. children: [{
  169. path: '/order/orderManage',
  170. redirect: '/order/orderManage/list',
  171. name: 'orderManage',
  172. component: RouteView,
  173. meta: {
  174. title: '订单管理',
  175. icon: 'profile',
  176. permission: 'M_orderManage_list'
  177. },
  178. hideChildrenInMenu: true,
  179. children: [{
  180. path: '/order/orderManage/list',
  181. name: 'orderManageList',
  182. component: () => import(/* webpackChunkName: "order" */ '@/views/shop/shopOrder.vue'),
  183. meta: {
  184. title: '订单列表',
  185. icon: 'shopping',
  186. hidden: true,
  187. permission: 'M_orderManage_list'
  188. }
  189. },
  190. {
  191. path: '/order/orderManage/detail/:id',
  192. name: 'orderManageDetail',
  193. component: () => import(/* webpackChunkName: "order" */ '@/views/shop/orderDetail.vue'),
  194. meta: {
  195. title: '订单详情',
  196. icon: 'profile',
  197. hidden: true,
  198. permission: 'B_orderManage_detail'
  199. }
  200. }
  201. ]
  202. }]
  203. },
  204. // 用户
  205. {
  206. path: '/userInfo',
  207. redirect: '/userInfo/userManage',
  208. component: PageView,
  209. meta: {
  210. title: '用户',
  211. icon: 'user',
  212. permission: 'M_user'
  213. },
  214. children: [{
  215. path: '/userInfo/userManage',
  216. redirect: '/userInfo/userManageList/list',
  217. name: 'userManageS',
  218. component: RouteView,
  219. meta: {
  220. title: '用户管理',
  221. icon: 'profile',
  222. permission: 'M_user_userManage_list'
  223. },
  224. hideChildrenInMenu: true,
  225. children: [{
  226. path: '/userInfo/userManageList/list',
  227. name: 'userManageList',
  228. component: () => import(/* webpackChunkName: "userManageList" */ '@/views/userInfo/userManageList.vue'),
  229. meta: {
  230. title: '用户列表',
  231. icon: 'team',
  232. hidden: true,
  233. permission: 'M_user_userManage_list'
  234. }
  235. },
  236. {
  237. path: '/userInfo/userManageList_user/detail/:id',
  238. name: 'userManageDetail',
  239. component: () => import(/* webpackChunkName: "userManageDetail" */ '@/views/userInfo/userDetails.vue'),
  240. meta: {
  241. title: '用户详情',
  242. icon: 'profile',
  243. hidden: true,
  244. permission: 'B_user_userManage_userDetails'
  245. }
  246. },
  247. {
  248. path: '/userInfo/userManageList_Ld/detail',
  249. name: 'ledouDetail',
  250. component: () => import(/* webpackChunkName: "LdDetails" */ '@/views/userInfo/LdDetails.vue'),
  251. meta: {
  252. title: '乐豆明细',
  253. icon: 'profile',
  254. hidden: true,
  255. permission: 'B_user_userManage_LdDetails'
  256. }
  257. }
  258. ]
  259. },
  260. {
  261. path: '/userInfo/releaseRecord/list',
  262. name: 'releaseRecordList',
  263. component: () => import(/* webpackChunkName: "releaseRecord" */ '@/views/releaseRecord/releaseRecordList.vue'),
  264. meta: {
  265. title: '投放记录',
  266. icon: 'container',
  267. permission: 'M_user_releaseRecord'
  268. }
  269. }
  270. ]
  271. },
  272. // 报表
  273. {
  274. path: '/reportForm',
  275. redirect: '/reportForm/rubbishDeliverySearchTime',
  276. component: PageView,
  277. meta: {
  278. title: '报表',
  279. icon: 'line-chart',
  280. permission: 'M_reportForm'
  281. },
  282. children: [{
  283. path: '/reportForm/rubbishDeliverySearchTime',
  284. name: 'rubbishDeliverySearchTime',
  285. component: () => import(/* webpackChunkName: "reportForm" */
  286. '@/views/reportForm/rubbishDeliverySearchTime.vue'),
  287. meta: {
  288. title: '垃圾投递分时查询表',
  289. icon: 'file-done',
  290. permission: 'M_rubbishSearchTime_list'
  291. }
  292. },
  293. {
  294. path: '/reportForm/rubbishDeliveryTotal',
  295. name: 'rubbishDeliveryTotal',
  296. component: () => import(/* webpackChunkName: "reportForm" */ '@/views/reportForm/rubbishDeliveryTotal.vue'),
  297. meta: {
  298. title: '垃圾投递汇总表',
  299. icon: 'snippets',
  300. permission: 'M_rubbishTotal_list'
  301. }
  302. }
  303. ]
  304. },
  305. {
  306. path: '/market',
  307. redirect: '/market/winingRecord',
  308. component: PageView,
  309. meta: {
  310. title: '营销',
  311. icon: 'gift',
  312. permission: 'M_market'
  313. },
  314. children: [{
  315. path: '/market/winingRecord',
  316. name: 'winingRecord',
  317. component: () => import(/* webpackChunkName: "market" */ '@/views/market/winingRecord.vue'),
  318. meta: {
  319. title: '中奖记录',
  320. icon: 'file-done',
  321. permission: 'M_winingRecord'
  322. }
  323. },
  324. {
  325. path: '/market/lotterySettings',
  326. name: 'lotterySettings',
  327. component: () => import(/* webpackChunkName: "market" */ '@/views/market/lotterySettings.vue'),
  328. meta: {
  329. title: '大转盘设置',
  330. icon: 'edit',
  331. permission: 'M_lottery_list'
  332. }
  333. }
  334. ]
  335. },
  336. {
  337. path: '/shopSetting',
  338. redirect: '/shopSetting/bannerSetting',
  339. component: PageView,
  340. meta: {
  341. title: '商城设置',
  342. icon: 'appstore',
  343. permission: 'M_AdBanner_list'
  344. },
  345. children: [{
  346. path: '/shopSetting/bannerSetting',
  347. name: 'bannerSetting',
  348. component: () => import(/* webpackChunkName: "shopSetting" */ '@/views/shop/bannerSetting.vue'),
  349. meta: {
  350. title: '推广位设置',
  351. icon: 'picture',
  352. permission: 'M_AdBanner_list'
  353. }
  354. }]
  355. },
  356. {
  357. path: '/equipmentManage',
  358. redirect: '/equipmentManage/network',
  359. component: PageView,
  360. meta: {
  361. title: '网点/设备',
  362. icon: 'apartment',
  363. permission: 'M_networkEquipment'
  364. },
  365. children: [{
  366. path: '/equipmentManage/network',
  367. name: 'network',
  368. component: () => import(/* webpackChunkName: "equipmentManage" */
  369. '@/views/equipmentManage/network/network.vue'),
  370. meta: {
  371. title: '网点管理',
  372. icon: 'cluster',
  373. permission: 'M_network_list'
  374. }
  375. },
  376. {
  377. path: '/equipmentManage/equipment',
  378. name: 'equipment',
  379. component: () => import(/* webpackChunkName: "equipmentManage" */
  380. '@/views/equipmentManage/equipment/equipment.vue'),
  381. meta: {
  382. title: '设备管理',
  383. icon: 'usb',
  384. permission: 'M_equipment_list'
  385. }
  386. },
  387. {
  388. path: '/equipmentManage/boxSetting',
  389. name: 'boxSetting',
  390. component: () => import(/* webpackChunkName: "equipmentManage" */
  391. '@/views/equipmentManage/boxSetting/boxSetting.vue'),
  392. meta: {
  393. title: '箱体类型设置',
  394. icon: 'block',
  395. permission: 'M_boxSetting_list'
  396. }
  397. },
  398. {
  399. path: '/equipmentManage/exchangeSetting',
  400. name: 'exchangeSetting',
  401. component: () => import(/* webpackChunkName: "equipmentManage" */
  402. '@/views/equipmentManage/exchangeSetting/ExchangeSetting.vue'),
  403. meta: {
  404. title: '兑换规则设置',
  405. icon: 'build',
  406. permission: 'M_exchangeSetting_list'
  407. }
  408. },
  409. {
  410. path: '/equipmentManage/openTimeSetting',
  411. name: 'openTimeSetting',
  412. component: () => import(/* webpackChunkName: "equipmentManage" */
  413. '@/views/equipmentManage/openTimeSetting/OpenTimeSetting.vue'),
  414. meta: {
  415. title: '投放时间设置',
  416. icon: 'dashboard',
  417. permission: 'M_openTimeSetting_list'
  418. }
  419. }
  420. ]
  421. },
  422. {
  423. path: '/businessManage',
  424. redirect: '/businessManage/partnerManage',
  425. component: PageView,
  426. meta: {
  427. title: '乐享亭',
  428. icon: 'bank',
  429. permission: 'M_businessManage'
  430. },
  431. children: [{
  432. path: '/businessManage/partnerManage',
  433. name: 'partnerManage',
  434. component: () => import(/* webpackChunkName: "businessManage" */
  435. '@/views/businessManage/partnerManage/partnerManage.vue'),
  436. meta: {
  437. title: '商户管理',
  438. icon: 'solution',
  439. permission: 'M_partnerManage_list'
  440. }
  441. },
  442. {
  443. path: '/businessManage/userManage',
  444. name: 'userManage',
  445. component: () => import(/* webpackChunkName: "businessManage" */
  446. '@/views/businessManage/userManage/userManage.vue'),
  447. meta: {
  448. title: '用户管理',
  449. icon: 'folder',
  450. permission: 'M_userManage_list'
  451. }
  452. },
  453. {
  454. path: '/businessManage/leduQuery',
  455. name: 'leduQuery',
  456. component: () => import(/* webpackChunkName: "businessManage" */
  457. '@/views/businessManage/leduQuery/leduQuery.vue'),
  458. meta: {
  459. title: '商户乐豆统计',
  460. icon: 'search',
  461. permission: 'M_ledouTjList'
  462. }
  463. }
  464. ]
  465. },
  466. {
  467. path: '/supplier',
  468. redirect: '/supplier/list',
  469. component: PageView,
  470. meta: {
  471. title: '供货商',
  472. icon: 'user-add',
  473. permission: 'M_supplier_list'
  474. },
  475. children: [{
  476. path: '/supplier/list',
  477. name: 'supplier',
  478. component: () => import(/* webpackChunkName: "supplier" */ '@/views/shopSetting/supplier.vue'),
  479. meta: {
  480. title: '供货商管理',
  481. icon: 'solution',
  482. permission: 'M_supplier_list'
  483. }
  484. }]
  485. },
  486. // auth
  487. {
  488. path: '/auth',
  489. redirect: '/auth/userList',
  490. component: PageView,
  491. meta: {
  492. title: '权限管理',
  493. icon: 'lock',
  494. permission: 'M_auth_0'
  495. },
  496. children: [{
  497. path: '/auth/userList',
  498. name: 'powerUserList',
  499. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/user/userList.vue'),
  500. meta: {
  501. title: '用户管理',
  502. icon: 'user',
  503. permission: 'M_power_user_list'
  504. }
  505. },
  506. {
  507. path: '/auth/roleList',
  508. name: 'powerRoleList',
  509. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/role/roleList.vue'),
  510. meta: {
  511. title: '角色管理',
  512. icon: 'solution',
  513. permission: 'M_power_role_list'
  514. }
  515. },
  516. {
  517. path: '/menusAuth/menu',
  518. name: 'powerMenu',
  519. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/menu/menu.vue'),
  520. meta: {
  521. title: '菜单管理',
  522. icon: 'profile',
  523. permission: 'M_power_menu_list'
  524. }
  525. }
  526. ]
  527. },
  528. {
  529. path: '/setting',
  530. redirect: '/setting/userList',
  531. component: PageView,
  532. meta: {
  533. title: '系统设置',
  534. icon: 'setting',
  535. permission: 'M_setting_0'
  536. },
  537. children: [{
  538. path: '/setting/dataDictionary',
  539. name: 'powerDD',
  540. component: () => import(/* webpackChunkName: "setting" */
  541. '@/views/power/dataDictionary/dataDictionary.vue'),
  542. meta: {
  543. title: '数据字典管理',
  544. icon: 'database',
  545. permission: 'M_sys_dataDictionary'
  546. }
  547. },
  548. {
  549. path: '/setting/OperateJournal',
  550. name: 'powerOperateJournal',
  551. component: () => import(/* webpackChunkName: "setting" */
  552. '@/views/power/OperateJournal/OperateJournal.vue'),
  553. meta: {
  554. title: '操作日志',
  555. icon: 'read',
  556. permission: 'M_OperateJournal'
  557. }
  558. }
  559. ]
  560. }
  561. ]
  562. },
  563. {
  564. path: '*',
  565. redirect: '/404',
  566. hidden: true
  567. }
  568. ]
  569. /**
  570. * 基础路由
  571. * @type { *[] }
  572. */
  573. export const constantRouterMap = [{
  574. path: '/user',
  575. component: UserLayout,
  576. redirect: '/user/login',
  577. hidden: true,
  578. children: [{
  579. path: 'login',
  580. name: 'login',
  581. component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login')
  582. },
  583. {
  584. path: 'register',
  585. name: 'register',
  586. component: () => import(/* webpackChunkName: "user" */ '@/views/user/Register')
  587. },
  588. {
  589. path: 'register-result',
  590. name: 'registerResult',
  591. component: () => import(/* webpackChunkName: "user" */ '@/views/user/RegisterResult')
  592. },
  593. {
  594. path: 'recover',
  595. name: 'recover',
  596. component: undefined
  597. }
  598. ]
  599. },
  600. {
  601. path: '/404',
  602. component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
  603. }
  604. ]