router.config.js 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513
  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: '/shop',
  50. redirect: '/shop/goods',
  51. component: PageView,
  52. meta: {
  53. title: '商品',
  54. icon: 'shop',
  55. permission: 'M_shop'
  56. },
  57. children: [
  58. {
  59. path: '/shop/goods',
  60. redirect: '/shop/goods/list',
  61. name: 'goodsList',
  62. component: RouteView,
  63. meta: {
  64. title: '商品管理',
  65. icon: 'shopping',
  66. permission: 'M_goodsManage_list'
  67. },
  68. hideChildrenInMenu: true,
  69. children: [{
  70. path: '/shop/goods/list',
  71. name: 'goodsListList',
  72. component: () => import(/* webpackChunkName: "shop" */ '@/views/shop/goodsList.vue'),
  73. meta: {
  74. title: '商品列表',
  75. icon: 'shopping',
  76. hidden: true,
  77. permission: 'M_goodsManage_list'
  78. }
  79. },
  80. {
  81. path: '/shop/goods/add',
  82. name: 'goodsListAdd',
  83. component: () => import(/* webpackChunkName: "shop" */ '@/views/shop/goodsEdit.vue'),
  84. meta: {
  85. title: '新增商品',
  86. icon: 'shopping',
  87. hidden: true,
  88. permission: 'B_goodsManage_add'
  89. }
  90. },
  91. {
  92. path: '/shop/goods/edit/:id',
  93. name: 'goodsListEdit',
  94. component: () => import(/* webpackChunkName: "shop" */ '@/views/shop/goodsEdit.vue'),
  95. meta: {
  96. title: '编辑商品',
  97. icon: 'shopping',
  98. hidden: true,
  99. permission: 'B_goodsManage_edit'
  100. }
  101. }
  102. ]
  103. },
  104. {
  105. path: '/shop/goodsShelves',
  106. name: 'goodsShelves',
  107. component: () => import(/* webpackChunkName: "shop" */ '@/views/shop/goodsShelves.vue'),
  108. meta: {
  109. title: '商品排序',
  110. icon: 'flag',
  111. permission: 'M_goodsShelves_0'
  112. }
  113. },
  114. {
  115. path: '/shopSetting/goodsClass',
  116. name: 'goodsClass',
  117. component: () => import(/* webpackChunkName: "shop" */ '@/views/shopSetting/goodsClass.vue'),
  118. meta: {
  119. title: '商品分类管理',
  120. icon: 'folder',
  121. permission: 'M_goodsClass_list'
  122. }
  123. }
  124. ]
  125. },
  126. {
  127. path: '/order',
  128. redirect: '/order/orderManage',
  129. component: PageView,
  130. meta: {
  131. title: '订单',
  132. icon: 'profile',
  133. permission: 'M_orderManage_list'
  134. },
  135. children: [
  136. {
  137. path: '/order/orderManage',
  138. redirect: '/order/orderManage/list',
  139. name: 'orderManage',
  140. component: RouteView,
  141. meta: {
  142. title: '订单管理',
  143. icon: 'profile',
  144. permission: 'M_orderManage_list'
  145. },
  146. hideChildrenInMenu: true,
  147. children: [
  148. {
  149. path: '/order/orderManage/list',
  150. name: 'orderManageList',
  151. component: () => import(/* webpackChunkName: "order" */ '@/views/shop/shopOrder.vue'),
  152. meta: {
  153. title: '订单列表',
  154. icon: 'shopping',
  155. hidden: true,
  156. permission: 'M_orderManage_list'
  157. }
  158. },
  159. {
  160. path: '/order/orderManage/detail/:id',
  161. name: 'orderManageDetail',
  162. component: () => import(/* webpackChunkName: "order" */ '@/views/shop/orderDetail.vue'),
  163. meta: {
  164. title: '订单详情',
  165. icon: 'profile',
  166. hidden: true,
  167. permission: 'B_orderManage_detail'
  168. }
  169. }
  170. ]
  171. }
  172. ]
  173. },
  174. // 用户
  175. {
  176. path: '/userInfo',
  177. redirect: '/userInfo/userManage',
  178. component: PageView,
  179. meta: {
  180. title: '用户',
  181. icon: 'user',
  182. permission: 'M_user'
  183. },
  184. children: [
  185. {
  186. path: '/userInfo/userManage',
  187. redirect: '/userInfo/userManageList/list',
  188. name: 'userManageS',
  189. component: RouteView,
  190. meta: {
  191. title: '用户管理',
  192. icon: 'profile',
  193. permission: 'M_user_userManage_list'
  194. },
  195. hideChildrenInMenu: true,
  196. children: [{
  197. path: '/userInfo/userManageList/list',
  198. name: 'userManageList',
  199. component: () => import(/* webpackChunkName: "userManageList" */ '@/views/userInfo/userManageList.vue'),
  200. meta: {
  201. title: '用户列表',
  202. icon: 'team',
  203. hidden: true,
  204. permission: 'M_user_userManage_list'
  205. }
  206. },
  207. {
  208. path: '/userInfo/userManageList_user/detail/:id',
  209. name: 'userManageDetail',
  210. component: () => import(/* webpackChunkName: "userManageDetail" */ '@/views/userInfo/userDetails.vue'),
  211. meta: {
  212. title: '用户详情',
  213. icon: 'profile',
  214. hidden: true,
  215. permission: 'B_user_userManage_userDetails'
  216. }
  217. },
  218. {
  219. path: '/userInfo/userManageList_Ld/detail',
  220. name: 'ledouDetail',
  221. component: () => import(/* webpackChunkName: "LdDetails" */ '@/views/userInfo/LdDetails.vue'),
  222. meta: {
  223. title: '乐豆明细',
  224. icon: 'profile',
  225. hidden: true,
  226. permission: 'B_user_userManage_LdDetails'
  227. }
  228. }
  229. ]
  230. },
  231. {
  232. path: '/userInfo/releaseRecord/list',
  233. name: 'releaseRecordList',
  234. component: () => import(/* webpackChunkName: "releaseRecord" */ '@/views/releaseRecord/releaseRecordList.vue'),
  235. meta: {
  236. title: '投放记录',
  237. icon: 'container',
  238. permission: 'M_user_releaseRecord'
  239. }
  240. }
  241. ]
  242. },
  243. {
  244. path: '/shopSetting',
  245. redirect: '/shopSetting/bannerSetting',
  246. component: PageView,
  247. meta: {
  248. title: '商城设置',
  249. icon: 'appstore',
  250. permission: 'M_AdBanner_list'
  251. },
  252. children: [
  253. {
  254. path: '/shopSetting/bannerSetting',
  255. name: 'bannerSetting',
  256. component: () => import(/* webpackChunkName: "shopSetting" */ '@/views/shop/bannerSetting.vue'),
  257. meta: {
  258. title: '推广位设置',
  259. icon: 'picture',
  260. permission: 'M_AdBanner_list'
  261. }
  262. }
  263. ]
  264. },
  265. {
  266. path: '/equipmentManage',
  267. redirect: '/equipmentManage/network',
  268. component: PageView,
  269. meta: {
  270. title: '网点/设备',
  271. icon: 'apartment',
  272. permission: 'M_networkEquipment'
  273. },
  274. children: [{
  275. path: '/equipmentManage/network',
  276. name: 'network',
  277. component: () => import(/* webpackChunkName: "equipmentManage" */ '@/views/equipmentManage/network/network.vue'),
  278. meta: {
  279. title: '网点管理',
  280. icon: 'cluster',
  281. permission: 'M_network_list'
  282. }
  283. },
  284. {
  285. path: '/equipmentManage/equipment',
  286. name: 'equipment',
  287. component: () => import(/* webpackChunkName: "equipmentManage" */ '@/views/equipmentManage/equipment/equipment.vue'),
  288. meta: {
  289. title: '设备管理',
  290. icon: 'usb',
  291. permission: 'M_equipment_list'
  292. }
  293. },
  294. {
  295. path: '/equipmentManage/boxSetting',
  296. name: 'boxSetting',
  297. component: () => import(/* webpackChunkName: "equipmentManage" */ '@/views/equipmentManage/boxSetting/boxSetting.vue'),
  298. meta: {
  299. title: '箱体类型设置',
  300. icon: 'block',
  301. permission: 'M_boxSetting_list'
  302. }
  303. },
  304. {
  305. path: '/equipmentManage/exchangeSetting',
  306. name: 'exchangeSetting',
  307. component: () => import(/* webpackChunkName: "equipmentManage" */
  308. '@/views/equipmentManage/exchangeSetting/ExchangeSetting.vue'),
  309. meta: {
  310. title: '兑换规则设置',
  311. icon: 'build',
  312. permission: 'M_exchangeSetting_list'
  313. }
  314. },
  315. {
  316. path: '/equipmentManage/openTimeSetting',
  317. name: 'openTimeSetting',
  318. component: () => import(/* webpackChunkName: "equipmentManage" */ '@/views/equipmentManage/openTimeSetting/OpenTimeSetting.vue'),
  319. meta: {
  320. title: '投放时间设置',
  321. icon: 'dashboard',
  322. permission: 'M_openTimeSetting_list'
  323. }
  324. }
  325. ]
  326. },
  327. {
  328. path: '/businessManage',
  329. redirect: '/businessManage/partnerManage',
  330. component: PageView,
  331. meta: {
  332. title: '乐享亭',
  333. icon: 'bank',
  334. permission: 'M_businessManage'
  335. },
  336. children: [
  337. {
  338. path: '/businessManage/partnerManage',
  339. name: 'partnerManage',
  340. component: () => import(/* webpackChunkName: "businessManage" */ '@/views/businessManage/partnerManage/partnerManage.vue'),
  341. meta: {
  342. title: '商户管理',
  343. icon: 'solution',
  344. permission: 'M_partnerManage_list'
  345. }
  346. },
  347. {
  348. path: '/businessManage/userManage',
  349. name: 'userManage',
  350. component: () => import(/* webpackChunkName: "businessManage" */ '@/views/businessManage/userManage/userManage.vue'),
  351. meta: {
  352. title: '用户管理',
  353. icon: 'folder',
  354. permission: 'M_userManage_list'
  355. }
  356. },
  357. {
  358. path: '/businessManage/leduQuery',
  359. name: 'leduQuery',
  360. component: () => import(/* webpackChunkName: "businessManage" */ '@/views/businessManage/leduQuery/leduQuery.vue'),
  361. meta: {
  362. title: '商户乐豆统计',
  363. icon: 'search',
  364. permission: 'M_ledouTjList'
  365. }
  366. }
  367. ]
  368. },
  369. {
  370. path: '/supplier',
  371. redirect: '/supplier/list',
  372. component: PageView,
  373. meta: {
  374. title: '供货商',
  375. icon: 'user-add',
  376. permission: 'M_supplier_list'
  377. },
  378. children: [
  379. {
  380. path: '/supplier/list',
  381. name: 'supplier',
  382. component: () => import(/* webpackChunkName: "supplier" */ '@/views/shopSetting/supplier.vue'),
  383. meta: {
  384. title: '供货商管理',
  385. icon: 'solution',
  386. permission: 'M_supplier_list'
  387. }
  388. }
  389. ]
  390. },
  391. // auth
  392. {
  393. path: '/auth',
  394. redirect: '/auth/userList',
  395. component: PageView,
  396. meta: {
  397. title: '权限管理',
  398. icon: 'lock',
  399. permission: 'M_auth_0'
  400. },
  401. children: [
  402. {
  403. path: '/auth/userList',
  404. name: 'powerUserList',
  405. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/user/userList.vue'),
  406. meta: {
  407. title: '用户管理',
  408. icon: 'user',
  409. permission: 'M_power_user_list'
  410. }
  411. },
  412. {
  413. path: '/auth/roleList',
  414. name: 'powerRoleList',
  415. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/role/roleList.vue'),
  416. meta: {
  417. title: '角色管理',
  418. icon: 'solution',
  419. permission: 'M_power_role_list'
  420. }
  421. },
  422. {
  423. path: '/menusAuth/menu',
  424. name: 'powerMenu',
  425. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/menu/menu.vue'),
  426. meta: {
  427. title: '菜单管理',
  428. icon: 'profile',
  429. permission: 'M_power_menu_list'
  430. }
  431. }
  432. ]
  433. },
  434. {
  435. path: '/setting',
  436. redirect: '/setting/userList',
  437. component: PageView,
  438. meta: {
  439. title: '系统设置',
  440. icon: 'setting',
  441. permission: 'M_setting_0'
  442. },
  443. children: [{
  444. path: '/setting/dataDictionary',
  445. name: 'powerDD',
  446. component: () => import(/* webpackChunkName: "setting" */
  447. '@/views/power/dataDictionary/dataDictionary.vue'),
  448. meta: {
  449. title: '数据字典管理',
  450. icon: 'database',
  451. permission: 'M_sys_dataDictionary'
  452. }
  453. },
  454. {
  455. path: '/setting/OperateJournal',
  456. name: 'powerOperateJournal',
  457. component: () => import(/* webpackChunkName: "setting" */
  458. '@/views/power/OperateJournal/OperateJournal.vue'),
  459. meta: {
  460. title: '操作日志',
  461. icon: 'read',
  462. permission: 'M_OperateJournal'
  463. }
  464. }
  465. ]
  466. }
  467. ]
  468. },
  469. {
  470. path: '*',
  471. redirect: '/404',
  472. hidden: true
  473. }
  474. ]
  475. /**
  476. * 基础路由
  477. * @type { *[] }
  478. */
  479. export const constantRouterMap = [{
  480. path: '/user',
  481. component: UserLayout,
  482. redirect: '/user/login',
  483. hidden: true,
  484. children: [{
  485. path: 'login',
  486. name: 'login',
  487. component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login')
  488. },
  489. {
  490. path: 'register',
  491. name: 'register',
  492. component: () => import(/* webpackChunkName: "user" */ '@/views/user/Register')
  493. },
  494. {
  495. path: 'register-result',
  496. name: 'registerResult',
  497. component: () => import(/* webpackChunkName: "user" */ '@/views/user/RegisterResult')
  498. },
  499. {
  500. path: 'recover',
  501. name: 'recover',
  502. component: undefined
  503. }
  504. ]
  505. },
  506. {
  507. path: '/404',
  508. component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
  509. }
  510. ]