router.config.js 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715
  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: 'user',
  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/allLdDetail',
  262. name: 'allLdDetail',
  263. component: () => import(/* webpackChunkName: "releaseRecord" */ '@/views/userInfo/allLdDetail.vue'),
  264. meta: {
  265. title: '乐豆明细',
  266. icon: 'profile',
  267. permission: 'M_allLdDetail'
  268. }
  269. },
  270. {
  271. path: '/userInfo/releaseRecord/list',
  272. name: 'releaseRecordList',
  273. component: () => import(/* webpackChunkName: "releaseRecord" */ '@/views/releaseRecord/releaseRecordList.vue'),
  274. meta: {
  275. title: '投放记录',
  276. icon: 'container',
  277. permission: 'M_user_releaseRecord'
  278. }
  279. }
  280. ]
  281. },
  282. // 清运管理
  283. {
  284. path: '/cleanManage',
  285. redirect: '/cleanManage/statisticalReport',
  286. component: PageView,
  287. meta: {
  288. title: '清运管理',
  289. icon: 'car',
  290. permission: 'M_driverManage'
  291. },
  292. children: [{
  293. path: '/cleanManage/statisticalReport',
  294. name: 'statisticalReport',
  295. component: () => import(/* webpackChunkName: "equipmentManage" */
  296. '@/views/cleanManage/statisticalReport.vue'),
  297. meta: {
  298. title: '统计报表',
  299. icon: 'bar-chart',
  300. permission: 'M_statisticalReport'
  301. }
  302. },
  303. {
  304. path: '/cleanManage/driverManage',
  305. name: 'driverManage',
  306. component: () => import(/* webpackChunkName: "equipmentManage" */
  307. '@/views/cleanManage/driverManage.vue'),
  308. meta: {
  309. title: '司机管理',
  310. icon: 'contacts',
  311. permission: 'M_driverManage_list'
  312. }
  313. },
  314. {
  315. path: '/cleanManage/cleanDetail',
  316. name: 'cleanDetail',
  317. component: () => import(/* webpackChunkName: "equipmentManage" */
  318. '@/views/cleanManage/cleanDetail.vue'),
  319. meta: {
  320. title: '清运明细',
  321. icon: 'unordered-list',
  322. permission: 'M_cleanDetail_list'
  323. }
  324. },
  325. {
  326. path: '/cleanManage/netWorkCleanRecord',
  327. name: 'netWorkCleanRecord',
  328. component: () => import(/* webpackChunkName: "equipmentManage" */
  329. '@/views/cleanManage/netWorkCleanRecord.vue'),
  330. meta: {
  331. title: '网点清运记录',
  332. icon: 'line-chart',
  333. permission: 'M_netWorkCleanRecord_list'
  334. }
  335. },
  336. {
  337. path: '/cleanManage/notCleanNetwork',
  338. name: 'notCleanNetwork',
  339. component: () => import(/* webpackChunkName: "equipmentManage" */
  340. '@/views/cleanManage/notCleanNetwork.vue'),
  341. meta: {
  342. title: '待清运网点',
  343. icon: 'cluster',
  344. permission: 'M_notCleanNetwork_list'
  345. }
  346. }
  347. ]
  348. },
  349. // 报表
  350. {
  351. path: '/reportForm',
  352. redirect: '/reportForm/rubbishDeliverySearchTime',
  353. component: PageView,
  354. meta: {
  355. title: '报表',
  356. icon: 'line-chart',
  357. permission: 'M_reportForm'
  358. },
  359. children: [{
  360. path: '/reportForm/rubbishDeliverySearchTime',
  361. name: 'rubbishDeliverySearchTime',
  362. component: () => import(/* webpackChunkName: "reportForm" */
  363. '@/views/reportForm/rubbishDeliverySearchTime.vue'),
  364. meta: {
  365. title: '垃圾投递分时查询表',
  366. icon: 'file-done',
  367. permission: 'M_rubbishSearchTime_list'
  368. }
  369. },
  370. {
  371. path: '/reportForm/rubbishDeliveryTotal',
  372. name: 'rubbishDeliveryTotal',
  373. component: () => import(/* webpackChunkName: "reportForm" */ '@/views/reportForm/rubbishDeliveryTotal.vue'),
  374. meta: {
  375. title: '垃圾投递汇总表',
  376. icon: 'snippets',
  377. permission: 'M_rubbishTotal_list'
  378. }
  379. }
  380. ]
  381. },
  382. {
  383. path: '/market',
  384. redirect: '/market/winingRecord',
  385. component: PageView,
  386. meta: {
  387. title: '营销',
  388. icon: 'gift',
  389. permission: 'M_market'
  390. },
  391. children: [{
  392. path: '/market/winingRecord',
  393. name: 'winingRecord',
  394. component: () => import(/* webpackChunkName: "market" */ '@/views/market/winingRecord.vue'),
  395. meta: {
  396. title: '中奖记录',
  397. icon: 'file-done',
  398. permission: 'M_winingRecord'
  399. }
  400. },
  401. {
  402. path: '/market/lotterySettings',
  403. name: 'lotterySettings',
  404. component: () => import(/* webpackChunkName: "market" */ '@/views/market/lotterySettings.vue'),
  405. meta: {
  406. title: '大转盘设置',
  407. icon: 'edit',
  408. permission: 'M_lottery_list'
  409. }
  410. },
  411. // {
  412. // path: '/market/luckDrawRecord',
  413. // name: 'luckDrawRecord',
  414. // component: () => import(/* webpackChunkName: "market" */ '@/views/market/luckDrawRecord.vue'),
  415. // meta: {
  416. // title: '抽奖记录',
  417. // icon: 'profile'
  418. // // permission: 'M_lottery_list'
  419. // }
  420. // },
  421. {
  422. path: '/market/giftCard',
  423. name: 'giftCardManage',
  424. component: () => import(/* webpackChunkName: "market" */ '@/views/market/giftCard/giftCard.vue'),
  425. meta: {
  426. title: '礼品卡管理',
  427. icon: 'credit-card',
  428. permission: 'M_giftCard_list'
  429. }
  430. }
  431. ]
  432. },
  433. {
  434. path: '/shopSetting',
  435. redirect: '/shopSetting/bannerSetting',
  436. component: PageView,
  437. meta: {
  438. title: '商城设置',
  439. icon: 'appstore',
  440. permission: 'M_AdBanner_list'
  441. },
  442. children: [{
  443. path: '/shopSetting/bannerSetting',
  444. name: 'bannerSetting',
  445. component: () => import(/* webpackChunkName: "shopSetting" */ '@/views/shop/bannerSetting.vue'),
  446. meta: {
  447. title: '推广位设置',
  448. icon: 'picture',
  449. permission: 'M_AdBanner_list'
  450. }
  451. }]
  452. },
  453. {
  454. path: '/equipmentManage',
  455. redirect: '/equipmentManage/network',
  456. component: PageView,
  457. meta: {
  458. title: '网点/设备',
  459. icon: 'apartment',
  460. permission: 'M_networkEquipment'
  461. },
  462. children: [{
  463. path: '/equipmentManage/network',
  464. name: 'network',
  465. component: () => import(/* webpackChunkName: "equipmentManage" */
  466. '@/views/equipmentManage/network/network.vue'),
  467. meta: {
  468. title: '网点管理',
  469. icon: 'cluster',
  470. permission: 'M_network_list'
  471. }
  472. },
  473. {
  474. path: '/equipmentManage/equipment',
  475. name: 'equipment',
  476. component: () => import(/* webpackChunkName: "equipmentManage" */
  477. '@/views/equipmentManage/equipment/equipment.vue'),
  478. meta: {
  479. title: '回收箱体管理',
  480. icon: 'usb',
  481. permission: 'M_equipment_list'
  482. }
  483. },
  484. {
  485. path: '/equipmentManage/electronicScale',
  486. name: 'electronicScale',
  487. component: () => import(/* webpackChunkName: "equipmentManage" */
  488. '@/views/equipmentManage/electronicScale/electronicScale.vue'),
  489. meta: {
  490. title: '电子秤管理',
  491. icon: 'dashboard',
  492. permission: 'M_electronicScale_list'
  493. }
  494. },
  495. {
  496. path: '/equipmentManage/boxSetting',
  497. name: 'boxSetting',
  498. component: () => import(/* webpackChunkName: "equipmentManage" */
  499. '@/views/equipmentManage/boxSetting/boxSetting.vue'),
  500. meta: {
  501. title: '箱体类型设置',
  502. icon: 'block',
  503. permission: 'M_boxSetting_list'
  504. }
  505. },
  506. {
  507. path: '/equipmentManage/exchangeSetting',
  508. name: 'exchangeSetting',
  509. component: () => import(/* webpackChunkName: "equipmentManage" */
  510. '@/views/equipmentManage/exchangeSetting/ExchangeSetting.vue'),
  511. meta: {
  512. title: '兑换规则设置',
  513. icon: 'build',
  514. permission: 'M_exchangeSetting_list'
  515. }
  516. },
  517. {
  518. path: '/equipmentManage/openTimeSetting',
  519. name: 'openTimeSetting',
  520. component: () => import(/* webpackChunkName: "equipmentManage" */
  521. '@/views/equipmentManage/openTimeSetting/OpenTimeSetting.vue'),
  522. meta: {
  523. title: '投放时间设置',
  524. icon: 'dashboard',
  525. permission: 'M_openTimeSetting_list'
  526. }
  527. }
  528. ]
  529. },
  530. {
  531. path: '/businessManage',
  532. redirect: '/businessManage/partnerManage',
  533. component: PageView,
  534. meta: {
  535. title: '乐享亭',
  536. icon: 'bank',
  537. permission: 'M_businessManage'
  538. },
  539. children: [{
  540. path: '/businessManage/partnerManage',
  541. name: 'partnerManage',
  542. component: () => import(/* webpackChunkName: "businessManage" */
  543. '@/views/businessManage/partnerManage/partnerManage.vue'),
  544. meta: {
  545. title: '商户管理',
  546. icon: 'solution',
  547. permission: 'M_partnerManage_list'
  548. }
  549. },
  550. {
  551. path: '/businessManage/userManage',
  552. name: 'userManage',
  553. component: () => import(/* webpackChunkName: "businessManage" */
  554. '@/views/businessManage/userManage/userManage.vue'),
  555. meta: {
  556. title: '用户管理',
  557. icon: 'folder',
  558. permission: 'M_userManage_list'
  559. }
  560. },
  561. {
  562. path: '/businessManage/leduQuery',
  563. name: 'leduQuery',
  564. component: () => import(/* webpackChunkName: "businessManage" */
  565. '@/views/businessManage/leduQuery/leduQuery.vue'),
  566. meta: {
  567. title: '商户乐豆统计',
  568. icon: 'search',
  569. permission: 'M_ledouTjList'
  570. }
  571. }
  572. ]
  573. },
  574. {
  575. path: '/supplier',
  576. redirect: '/supplier/list',
  577. component: PageView,
  578. meta: {
  579. title: '供货商',
  580. icon: 'user-add',
  581. permission: 'M_supplier_list'
  582. },
  583. children: [{
  584. path: '/supplier/list',
  585. name: 'supplier',
  586. component: () => import(/* webpackChunkName: "supplier" */ '@/views/shopSetting/supplier.vue'),
  587. meta: {
  588. title: '供货商管理',
  589. icon: 'solution',
  590. permission: 'M_supplier_list'
  591. }
  592. }]
  593. },
  594. // auth
  595. {
  596. path: '/auth',
  597. redirect: '/auth/userList',
  598. component: PageView,
  599. meta: {
  600. title: '权限管理',
  601. icon: 'lock',
  602. permission: 'M_auth_0'
  603. },
  604. children: [{
  605. path: '/auth/userList',
  606. name: 'powerUserList',
  607. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/user/userList.vue'),
  608. meta: {
  609. title: '用户管理',
  610. icon: 'user',
  611. permission: 'M_power_user_list'
  612. }
  613. },
  614. {
  615. path: '/auth/roleList',
  616. name: 'powerRoleList',
  617. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/role/roleList.vue'),
  618. meta: {
  619. title: '角色管理',
  620. icon: 'solution',
  621. permission: 'M_power_role_list'
  622. }
  623. },
  624. {
  625. path: '/menusAuth/menu',
  626. name: 'powerMenu',
  627. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/menu/menu.vue'),
  628. meta: {
  629. title: '菜单管理',
  630. icon: 'profile',
  631. permission: 'M_power_menu_list'
  632. }
  633. }
  634. ]
  635. },
  636. {
  637. path: '/setting',
  638. redirect: '/setting/userList',
  639. component: PageView,
  640. meta: {
  641. title: '系统设置',
  642. icon: 'setting',
  643. permission: 'M_setting_0'
  644. },
  645. children: [{
  646. path: '/setting/dataDictionary',
  647. name: 'powerDD',
  648. component: () => import(/* webpackChunkName: "setting" */
  649. '@/views/power/dataDictionary/dataDictionary.vue'),
  650. meta: {
  651. title: '数据字典管理',
  652. icon: 'database',
  653. permission: 'M_sys_dataDictionary'
  654. }
  655. },
  656. {
  657. path: '/setting/OperateJournal',
  658. name: 'powerOperateJournal',
  659. component: () => import(/* webpackChunkName: "setting" */
  660. '@/views/power/OperateJournal/OperateJournal.vue'),
  661. meta: {
  662. title: '操作日志',
  663. icon: 'read',
  664. permission: 'M_OperateJournal'
  665. }
  666. }
  667. ]
  668. }
  669. ]
  670. },
  671. {
  672. path: '*',
  673. redirect: '/404',
  674. hidden: true
  675. }
  676. ]
  677. /**
  678. * 基础路由
  679. * @type { *[] }
  680. */
  681. export const constantRouterMap = [{
  682. path: '/user',
  683. component: UserLayout,
  684. redirect: '/user/login',
  685. hidden: true,
  686. children: [{
  687. path: 'login',
  688. name: 'login',
  689. component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login')
  690. },
  691. {
  692. path: 'register',
  693. name: 'register',
  694. component: () => import(/* webpackChunkName: "user" */ '@/views/user/Register')
  695. },
  696. {
  697. path: 'register-result',
  698. name: 'registerResult',
  699. component: () => import(/* webpackChunkName: "user" */ '@/views/user/RegisterResult')
  700. },
  701. {
  702. path: 'recover',
  703. name: 'recover',
  704. component: undefined
  705. }
  706. ]
  707. },
  708. {
  709. path: '/404',
  710. component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
  711. }
  712. ]