router.config.js 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415
  1. // eslint-disable-next-line
  2. import {
  3. UserLayout,
  4. BasicLayout,
  5. RouteView,
  6. PageView
  7. } from '@/layouts'
  8. export const asyncRouterMap = [{
  9. path: '/',
  10. name: 'index',
  11. component: BasicLayout,
  12. meta: {
  13. title: '运营后台'
  14. },
  15. redirect: '/home',
  16. children: [{
  17. path: '/home',
  18. name: 'home',
  19. redirect: '/home',
  20. component: PageView,
  21. meta: {
  22. title: '首页',
  23. icon: 'home'
  24. },
  25. hideChildrenInMenu: true,
  26. children: [{
  27. path: '/home',
  28. name: 'home',
  29. component: () => import(/* webpackChunkName: "home" */ '@/views/Home'),
  30. meta: {
  31. title: '首页',
  32. icon: 'home',
  33. hiddenHeaderContent: true
  34. }
  35. }]
  36. },
  37. {
  38. path: '/changePwd',
  39. name: 'changePwd',
  40. hidden: true,
  41. component: () => import(/* webpackChunkName: "changePwd" */ '@/views/user/ChangePwd'),
  42. meta: {
  43. title: '修改密码',
  44. icon: 'home'
  45. }
  46. },
  47. {
  48. path: '/shop',
  49. redirect: '/shop/order',
  50. component: PageView,
  51. meta: {
  52. title: '商城',
  53. icon: 'shop'
  54. // permission: 'M_tenants_list'
  55. },
  56. children: [{
  57. path: '/shop/order',
  58. redirect: '/shop/order/list',
  59. name: 'shopOrder',
  60. component: RouteView,
  61. meta: {
  62. title: '订单管理',
  63. icon: 'profile'
  64. // permission: 'M_tenants_list'
  65. },
  66. hideChildrenInMenu: true,
  67. children: [{
  68. path: '/shop/order/list',
  69. name: 'shopOrderList',
  70. component: () => import(/* webpackChunkName: "tenants" */ '@/views/shop/shopOrder.vue'),
  71. meta: {
  72. title: '订单列表',
  73. icon: 'profile',
  74. hidden: true
  75. // permission: 'M_tenants_list'
  76. }
  77. },
  78. {
  79. path: '/shop/order/detail/:id',
  80. name: 'shopOrderDetail',
  81. component: () => import(/* webpackChunkName: "tenants" */ '@/views/shop/orderDetail.vue'),
  82. meta: {
  83. title: '订单详情',
  84. icon: 'profile',
  85. hidden: true
  86. // permission: 'M_tenants_list'
  87. }
  88. }
  89. ]
  90. },
  91. {
  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_tenants_list'
  100. },
  101. hideChildrenInMenu: true,
  102. children: [{
  103. path: '/shop/goods/list',
  104. name: 'goodsListList',
  105. component: () => import(/* webpackChunkName: "tenants" */ '@/views/shop/goodsList.vue'),
  106. meta: {
  107. title: '商品列表',
  108. icon: 'shopping',
  109. hidden: true
  110. // permission: 'M_tenants_list'
  111. }
  112. },
  113. {
  114. path: '/shop/goods/add',
  115. name: 'goodsListAdd',
  116. component: () => import(/* webpackChunkName: "tenants" */ '@/views/shop/goodsEdit.vue'),
  117. meta: {
  118. title: '新增商品',
  119. icon: 'shopping',
  120. hidden: true
  121. // permission: 'M_tenants_list'
  122. }
  123. },
  124. {
  125. path: '/shop/goods/edit/:id',
  126. name: 'goodsListEdit',
  127. component: () => import(/* webpackChunkName: "tenants" */ '@/views/shop/goodsEdit.vue'),
  128. meta: {
  129. title: '编辑商品',
  130. icon: 'shopping',
  131. hidden: true
  132. // permission: 'M_tenants_list'
  133. }
  134. }
  135. ]
  136. },
  137. {
  138. path: '/shop/goodsShelves',
  139. name: 'goodsShelves',
  140. component: () => import(/* webpackChunkName: "tenants" */ '@/views/shop/goodsShelves.vue'),
  141. meta: {
  142. title: '商品排序',
  143. icon: 'flag'
  144. // permission: 'M_tenants_list'
  145. }
  146. },
  147. {
  148. path: '/shop/bannerSetting',
  149. name: 'bannerSetting',
  150. component: () => import(/* webpackChunkName: "appSetting" */ '@/views/shop/bannerSetting.vue'),
  151. meta: {
  152. title: '推广位设置',
  153. icon: 'file-image'
  154. // permission: 'M_banner'
  155. }
  156. }
  157. ]
  158. },
  159. {
  160. path: '/equipmentManage',
  161. redirect: '/equipmentManage/network',
  162. component: PageView,
  163. meta: {
  164. title: '网点设备管理',
  165. icon: 'shop'
  166. // permission: 'M_tenants_list'
  167. },
  168. children: [{
  169. path: '/equipmentManage/network',
  170. name: 'network',
  171. component: () => import(/* webpackChunkName: "tenants" */ '@/views/equipmentManage/network/network.vue'),
  172. meta: {
  173. title: '网点管理',
  174. icon: 'profile'
  175. // permission: 'M_tenants_list'
  176. }
  177. },
  178. {
  179. path: '/equipmentManage/equipment',
  180. name: 'equipment',
  181. component: () => import(/* webpackChunkName: "tenants" */ '@/views/equipmentManage/equipment/equipment.vue'),
  182. meta: {
  183. title: '设备管理',
  184. icon: 'profile'
  185. // permission: 'M_tenants_list'
  186. }
  187. },
  188. {
  189. path: '/equipmentManage/boxSetting',
  190. name: 'boxSetting',
  191. component: () => import(/* webpackChunkName: "tenants" */ '@/views/equipmentManage/boxSetting/boxSetting.vue'),
  192. meta: {
  193. title: '箱体类型设置',
  194. icon: 'profile'
  195. // permission: 'M_tenants_list'
  196. }
  197. },
  198. {
  199. path: '/equipmentManage/exchangeSetting',
  200. name: 'exchangeSetting',
  201. component: () => import(/* webpackChunkName: "tenants" */ '@/views/equipmentManage/exchangeSetting/ExchangeSetting.vue'),
  202. meta: {
  203. title: '兑换规则设置',
  204. icon: 'profile'
  205. // permission: 'M_tenants_list'
  206. }
  207. },
  208. {
  209. path: '/equipmentManage/openTimeSetting',
  210. name: 'openTimeSetting',
  211. component: () => import(/* webpackChunkName: "tenants" */
  212. '@/views/equipmentManage/openTimeSetting/OpenTimeSetting.vue'),
  213. meta: {
  214. title: '投放时间设置',
  215. icon: 'profile'
  216. // permission: 'M_tenants_list'
  217. }
  218. }
  219. ]
  220. },
  221. {
  222. path: '/releaseRecord',
  223. name: 'releaseRecord',
  224. component: PageView,
  225. hideChildrenInMenu: true,
  226. redirect: '/releaseRecord/list',
  227. meta: {
  228. title: '投放记录',
  229. icon: 'shop'
  230. // permission: 'M_tenants_list'
  231. },
  232. children: [{
  233. path: '/releaseRecord/list',
  234. name: 'releaseRecordList',
  235. component: () => import(/* webpackChunkName: "tenants" */ '@/views/releaseRecord/releaseRecordList.vue'),
  236. meta: {
  237. title: '投放记录',
  238. icon: 'profile'
  239. // permission: 'M_tenants_list'
  240. }
  241. }]
  242. },
  243. {
  244. path: '/shopSetting',
  245. redirect: '/shopSetting/bannerSetting',
  246. component: PageView,
  247. meta: {
  248. title: '商城设置',
  249. icon: 'appstore'
  250. // permission: 'M_appSetting'
  251. },
  252. children: [{
  253. path: '/shopSetting/goodsClass',
  254. name: 'goodsClass',
  255. component: () => import(/* webpackChunkName: "tenants" */ '@/views/shopSetting/goodsClass.vue'),
  256. meta: {
  257. title: '商品分类管理',
  258. icon: 'folder'
  259. // permission: 'M_tenants_list'
  260. }
  261. },
  262. {
  263. path: '/shopSetting/supplier',
  264. name: 'supplier',
  265. component: () => import(/* webpackChunkName: "tenants" */ '@/views/shopSetting/supplier.vue'),
  266. meta: {
  267. title: '供货商管理',
  268. icon: 'solution'
  269. // permission: 'M_tenants_list'
  270. }
  271. }
  272. ]
  273. },
  274. // auth
  275. {
  276. path: '/auth',
  277. redirect: '/auth/userList',
  278. component: PageView,
  279. meta: {
  280. title: '权限管理',
  281. icon: 'lock'
  282. // permission: 'M_auth_0'
  283. },
  284. children: [{
  285. path: '/menusAuth/menu',
  286. name: 'powerMenu',
  287. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/menu/menu.vue'),
  288. meta: {
  289. title: '菜单管理',
  290. icon: 'profile'
  291. // permission: 'M_menusAuth_menu'
  292. }
  293. },
  294. {
  295. path: '/auth/userList',
  296. name: 'powerUserList',
  297. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/user/userList.vue'),
  298. meta: {
  299. title: '用户管理',
  300. icon: 'user'
  301. // permission: 'M_auth_userList'
  302. }
  303. },
  304. {
  305. path: '/auth/roleList',
  306. name: 'powerRoleList',
  307. component: () => import(/* webpackChunkName: "auth" */ '@/views/power/role/roleList.vue'),
  308. meta: {
  309. title: '角色管理',
  310. icon: 'solution'
  311. // permission: 'M_auth_roleList'
  312. }
  313. }
  314. ]
  315. },
  316. {
  317. path: '/setting',
  318. redirect: '/setting/userList',
  319. component: PageView,
  320. meta: {
  321. title: '系统设置',
  322. icon: 'setting'
  323. // permission: 'M_setting_0'
  324. },
  325. children: [{
  326. path: '/setting/dataDictionary',
  327. name: 'powerDD',
  328. component: () => import(/* webpackChunkName: "setting" */
  329. '@/views/power/dataDictionary/dataDictionary.vue'),
  330. meta: {
  331. title: '数据字典管理',
  332. icon: 'database'
  333. // permission: 'M_sys_dataDictionary'
  334. }
  335. },
  336. // {
  337. // path: '/setting/register',
  338. // name: 'powerRegister',
  339. // component: () => import(/* webpackChunkName: "setting" */ '@/views/power/register/register.vue'),
  340. // meta: {
  341. // title: '参数管理',
  342. // icon: 'key'
  343. // // permission: 'M_sys_register'
  344. // }
  345. // },
  346. // {
  347. // path: '/setting/jobs',
  348. // name: 'powerJobs',
  349. // component: () => import(/* webpackChunkName: "setting" */ '@/views/power/job/jobs.vue'),
  350. // meta: {
  351. // title: '定时器',
  352. // icon: 'alert',
  353. // permission: 'M_sys_job'
  354. // }
  355. // },
  356. {
  357. path: '/setting/OperateJournal',
  358. name: 'powerOperateJournal',
  359. component: () => import(/* webpackChunkName: "setting" */
  360. '@/views/power/OperateJournal/OperateJournal.vue'),
  361. meta: {
  362. title: '操作日志',
  363. icon: 'read'
  364. // permission: 'M_operateJournal'
  365. }
  366. }
  367. ]
  368. }
  369. ]
  370. },
  371. {
  372. path: '*',
  373. redirect: '/404',
  374. hidden: true
  375. }
  376. ]
  377. /**
  378. * 基础路由
  379. * @type { *[] }
  380. */
  381. export const constantRouterMap = [{
  382. path: '/user',
  383. component: UserLayout,
  384. redirect: '/user/login',
  385. hidden: true,
  386. children: [{
  387. path: 'login',
  388. name: 'login',
  389. component: () => import(/* webpackChunkName: "user" */ '@/views/user/Login')
  390. },
  391. {
  392. path: 'register',
  393. name: 'register',
  394. component: () => import(/* webpackChunkName: "user" */ '@/views/user/Register')
  395. },
  396. {
  397. path: 'register-result',
  398. name: 'registerResult',
  399. component: () => import(/* webpackChunkName: "user" */ '@/views/user/RegisterResult')
  400. },
  401. {
  402. path: 'recover',
  403. name: 'recover',
  404. component: undefined
  405. }
  406. ]
  407. },
  408. {
  409. path: '/404',
  410. component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
  411. }
  412. ]