index.js 38 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979
  1. import Vue from 'vue'
  2. import Router from 'vue-router'
  3. import Layout from '@/components/Layout/index.vue'
  4. import Demo from '@/components/Demo.vue'
  5. import Config from '@/pages/config'
  6. // import agencyName from '@/utils/agencyName'
  7. // import theaterName from '@/utils/theaterName'
  8. // import saleTicketName from '@/utils/saleTicketName'
  9. Vue.use(Router)
  10. export const constantRouterMap = [
  11. {
  12. path: '/',
  13. component: Layout,
  14. redirect: '/login',
  15. hidden: true
  16. },
  17. {
  18. path: '/posTool',
  19. component: require('@/pages/posTool/index.vue').default,
  20. hidden: true
  21. },
  22. {
  23. path: '/demo',
  24. component: Demo,
  25. hidden: true
  26. },
  27. {
  28. path: '/config',
  29. name: 'config',
  30. component: Config,
  31. hidden: true
  32. },
  33. {
  34. path: '/login',
  35. name: 'login',
  36. component: require('@/pages/login').default,
  37. hidden: true
  38. },
  39. {
  40. path: '/index',
  41. component: Layout,
  42. name: 'Dashboard',
  43. hidden: true,
  44. children: [
  45. {
  46. path: 'dashboard',
  47. name: 'dashboard',
  48. // redirect: '/ticketSale/retail',
  49. component: require('@/pages/dashboard').default,
  50. meta: { title: '首页' }
  51. }
  52. ]
  53. }
  54. // ,
  55. // {
  56. // path: '/demo',
  57. // component: Layout,
  58. // hidden: true,
  59. // children: [
  60. // {
  61. // path: 'index',
  62. // name: 'demo',
  63. // component: require('@/pages/demo').default,
  64. // meta: {title: 'demo'}
  65. // }
  66. // ]
  67. // }
  68. ]
  69. export default new Router({
  70. scrollBehavior: () => ({
  71. y: 0
  72. }),
  73. routes: constantRouterMap
  74. })
  75. // permissionName 与后台获取的权限菜单列表相对应
  76. let routerMap = [
  77. {
  78. path: '/ticketSale',
  79. component: Layout,
  80. name: '订单中心',
  81. meta: { title: '订单中心', icon: 'ticketSale' },
  82. redirect: 'noredirect',
  83. alwaysShow: true,
  84. children: [
  85. {
  86. path: 'retail-ticket',
  87. name: 'retail-ticket',
  88. component: require('@/pages/sellManage/retail').default,
  89. meta: { title: '散客售票', permissionName: 'ticket_sale:scatter', category: 'ticket' }
  90. },
  91. {
  92. path: 'retail-batch',
  93. name: 'retail-batch',
  94. component: require('@/pages/sellManage/retail').default,
  95. meta: { title: '场次售票', permissionName: 'ticket_sale:scatter', category: 'batch' }
  96. },
  97. {
  98. path: 'retail-member',
  99. name: 'retail-member',
  100. component: require('@/pages/sellManage/retail').default,
  101. meta: { title: '年卡次卡', permissionName: 'ticket_sale:scatter', category: 'member' }
  102. },
  103. {
  104. path: 'salesQuery',
  105. name: 'salesQuery',
  106. component: require('@/pages/queryReport/salesQuery').default,
  107. meta: { title: '售票记录', permissionName: 'querystats:sale_query' }
  108. }
  109. // {
  110. // path: 'group',
  111. // name: 'group',
  112. // component: require('@/pages/sellManage/group').default,
  113. // meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '团体预约' : `团体${sellName()}`, permissionName: 'ticket_sale:group' }
  114. // },
  115. // {
  116. // path: 'preOrderGroup',
  117. // name: 'preOrderGroup',
  118. // component: require('@/pages/sellManage/preOrderGroup').default,
  119. // meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '团体预订预约' : '团体预订售票', permissionName: 'ticket_sale:group_preorder' }
  120. // },
  121. // {
  122. // path: 'preOrderGroupReservation',
  123. // name: 'preOrderGroupReservation',
  124. // component: require('@/pages/sellManage/preOrderGroupReservation').default,
  125. // meta: { title: '团队预约出票', permissionName: 'ticket_sale:team_book_sale' }
  126. // },
  127. // {
  128. // path: 'discountSales',
  129. // name: 'discountSales',
  130. // component: require('@/pages/sellManage/discountSales').default,
  131. // meta: { title: '优惠折扣票', permissionName: 'ticket_sale:group_discount' }
  132. // },
  133. // {
  134. // path: 'batchSale',
  135. // name: 'batchSale',
  136. // component: require('@/pages/sellManage/batchSale/index.vue').default,
  137. // meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '场次预约' : '场次售票', permissionName: 'ticket_sale:batch' }
  138. // },
  139. // {
  140. // path: 'theaterSale',
  141. // name: 'theaterSale',
  142. // component: require('@/pages/sellManage/theaterSale').default,
  143. // meta: { title: `${theaterName()}售票`, permissionName: 'ticket_sale:theater_sale' }
  144. // },
  145. // {
  146. // path: 'theaterSaleMazu',
  147. // name: 'theaterSaleMazu',
  148. // component: require('@/pages/sellManage/theaterSaleMazu').default,
  149. // meta: { title: `${theaterName()}售票`, permissionName: 'ticket_sale:theater_sale' }
  150. // },
  151. // {
  152. // path: 'PreOrderList',
  153. // name: 'PreOrderList',
  154. // component: require('@/pages/sellManage/preOrderList').default,
  155. // meta: { title: '预订单列表', permissionName: 'ticket_sale:pre_order' }
  156. // },
  157. // {
  158. // path: 'preOrder',
  159. // name: 'preOrder',
  160. // component: require('@/pages/sellManage/preOrder').default,
  161. // meta: { title: '预订售票', permissionName: 'ticket_sale:pre_order' }
  162. // },
  163. // {
  164. // path: 'printTicket',
  165. // name: 'printTicket',
  166. // component: require('@/pages/sellManage/printTicket').default,
  167. // meta: { title: '补打门票', permissionName: 'ticket_sale:print' }
  168. // },
  169. // {
  170. // path: 'printOnlineTicket',
  171. // name: 'printOnlineTicket',
  172. // component: require('@/pages/sellManage/printOnlineTicket').default,
  173. // meta: { title: '网络取票', permissionName: 'ticket_sale:onlinequery' }
  174. // },
  175. // {
  176. // path: 'returnTickets',
  177. // name: 'returnTickets',
  178. // component: require('@/pages/sellManage/returnTickets').default,
  179. // meta: { title: '退票处理', permissionName: 'ticket_sale:refund' }
  180. // },
  181. // {
  182. // path: 'reschedule',
  183. // name: 'reschedule',
  184. // component: require('@/pages/sellManage/reschedule').default,
  185. // meta: { title: '门票改签', permissionName: 'ticket_sale:change' }
  186. // },
  187. // {
  188. // path: 'checkTickets',
  189. // name: 'checkTickets',
  190. // component: require('@/pages/sellManage/checkTickets').default,
  191. // meta: { title: '人工检票', permissionName: 'ticket_sale:check' }
  192. // },
  193. // {
  194. // path: 'ticketsOperate',
  195. // name: 'ticketsOperate',
  196. // component: require('@/pages/sellManage/ticketsOperate/index').default,
  197. // meta: { title: '门票处理', permissionName: 'ticket_sale:ticket_handle' }
  198. // },
  199. // {
  200. // path: 'sellerShift',
  201. // name: 'sellerShift',
  202. // component: require('@/pages/sellManage/sellerShift').default,
  203. // meta: { title: '售票员交班', permissionName: 'ticket_sale:handover' }
  204. // },
  205. // {
  206. // path: 'myHandOverLog',
  207. // name: 'myHandOverLog',
  208. // component: require('@/pages/sellManage/myHandOverLog').default,
  209. // meta: { title: '交班记录', permissionName: 'ticket_sale:handover_record' }
  210. // },
  211. // {
  212. // path: 'paymentHandIn',
  213. // name: 'paymentHandIn',
  214. // component: require('@/pages/sellManage/paymentHandIn').default,
  215. // meta: { title: '缴款记录', permissionName: 'ticket_sale:cash_handin_log' }
  216. // }
  217. ]
  218. },
  219. // {
  220. // path: '/reservation',
  221. // component: Layout,
  222. // name: '预约管理',
  223. // meta: { title: '预约管理', icon: 'form' },
  224. // redirect: 'noredirect',
  225. // alwaysShow: true,
  226. // children: [
  227. // // {
  228. // // path: 'reservationPreOrder',
  229. // // name: 'reservationPreOrder',
  230. // // component: require('@/pages/reservation/preOrder').default,
  231. // // meta: { title: '团队预约', permissionName: 'ticket_book_manager:team_book' }
  232. // // },
  233. // // {
  234. // // path: 'reservationPreOrderList',
  235. // // name: 'reservationPreOrderList',
  236. // // component: require('@/pages/reservation/preOrderList').default,
  237. // // meta: { title: '预订单列表', permissionName: 'ticket_book_manager:team_book_record' }
  238. // // },
  239. // // {
  240. // // path: 'reservationManagerStatistics',
  241. // // name: 'reservationManagerStatistics',
  242. // // component: require('@/pages/reservation/managerStatistics').default,
  243. // // meta: { title: '讲解员记录及统计', permissionName: 'ticket_book_manager:explain_manager_stat' }
  244. // // }
  245. // ]
  246. // },
  247. // {
  248. // path: '/checkSetting',
  249. // component: Layout,
  250. // name: '检票管理',
  251. // meta: { title: '检票管理', icon: 'checkTicket' },
  252. // redirect: 'noredirect',
  253. // alwaysShow: true,
  254. // children: [
  255. // {
  256. // path: 'channelGroup',
  257. // name: 'channelGroup',
  258. // component: require('@/pages/checkerManage/channelGroup').default,
  259. // meta: { title: '通道组管理', permissionName: 'ticket_check:channel_group' }
  260. // },
  261. // {
  262. // path: 'channelManage',
  263. // name: 'channelManage',
  264. // component: require('@/pages/checkerManage/channelManage').default,
  265. // meta: { title: '通道管理', permissionName: 'ticket_check:channel' }
  266. // },
  267. // {
  268. // {
  269. // path: 'secondDevice',
  270. // name: 'secondDevice',
  271. // component: require('@/pages/checkerManage/secondDevice').default,
  272. // meta: { title: '登记机设备', permissionName: 'ticket_check:register' }
  273. // },
  274. // {
  275. // path: 'terminalConfig',
  276. // name: 'terminalConfig',
  277. // component: require('@/pages/checkerManage/terminalConfig').default,
  278. // meta: { title: '设备配置/更新', permissionName: 'ticket_check:checker_config' }
  279. // },
  280. // {
  281. // path: 'checkRecord',
  282. // name: 'checkRecord',
  283. // component: require('@/pages/checkerManage/checkRecord').default,
  284. // meta: { title: '检票记录', permissionName: 'ticket_check:checker_traffic' }
  285. // },
  286. // {
  287. // path: 'channelRecord',
  288. // name: 'channelRecord',
  289. // component: require('@/pages/checkerManage/channelRecord').default,
  290. // meta: { title: '通道记录', permissionName: 'ticket_check:channel_traffic' }
  291. // }
  292. // ]
  293. // },
  294. {
  295. path: '/ticketSetting',
  296. component: Layout,
  297. name: '票务管理',
  298. meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '预约检票管理' : '票务管理', icon: 'ticketSetting' },
  299. redirect: 'noredirect',
  300. alwaysShow: true,
  301. children: [
  302. {
  303. path: 'ticket',
  304. name: 'ticket',
  305. component: require('@/pages/ticketSetting/ticket').default,
  306. meta: { title: '票种管理', permissionName: 'ticket_type_scenic:ticket_type' }
  307. },
  308. // {
  309. // path: 'ticketTag',
  310. // name: 'ticketTag',
  311. // component: require('@/pages/ticketSetting/ticketTag').default,
  312. // meta: { title: '票种标签管理', permissionName: 'ticket_type_scenic:ticket_type_tag_manager' }
  313. // },
  314. // {
  315. // path: 'ticketPricePlan',
  316. // name: 'ticketPricePlan',
  317. // component: require('@/pages/ticketSetting/ticketPricePlan').default,
  318. // meta: { title: '票种价格方案管理', permissionName: 'ticket_type_scenic:ticket_price_plan' }
  319. // },
  320. // {
  321. // path: 'ticketInventory',
  322. // name: 'ticketInventory',
  323. // component: require('@/pages/ticketSetting/ticketInventory').default,
  324. // meta: { title: '票仓管理', permissionName: 'ticket_type_scenic:ticket_master_warehouse_query', hidden: process.env.VUE_APP_PROJECT === 'czg' }
  325. // },
  326. // {
  327. // path: 'sellerInventory',
  328. // name: 'sellerInventory',
  329. // component: require('@/pages/ticketSetting/sellerInventory').default,
  330. // meta: { title: '售票员票仓', permissionName: 'ticket_type_scenic:ticket_warehouse_sale' }
  331. // },
  332. {
  333. path: 'scenic',
  334. name: 'scenic',
  335. component: require('@/pages/ticketSetting/scenic').default,
  336. meta: { title: '景点管理', permissionName: 'ticket_type_scenic:scenic' }
  337. },
  338. {
  339. path: 'printManage',
  340. name: 'printManage',
  341. component: require('@/pages/systemSetting/printManage').default,
  342. meta: { title: '打印模板配置', permissionName: 'system_setting:print_model' }
  343. },
  344. {
  345. path: 'ticketStorage',
  346. name: 'ticketStorage',
  347. component: require('@/pages/ticketSetting/ticketStorage').default,
  348. meta: { title: '预制门票管理', permissionName: 'ticket_type_scenic:ticket_stock' }
  349. },
  350. {
  351. path: 'payChannel',
  352. name: 'payChannel',
  353. component: require('@/pages/systemSetting/payChannel').default,
  354. meta: { title: '支付渠道设置', permissionName: 'system_setting:global_setting' }
  355. },
  356. {
  357. path: 'freeConfig',
  358. name: 'freeConfig',
  359. component: require('@/pages/systemSetting/freeConfig').default,
  360. meta: { title: '免票配置', permissionName: 'system_setting:free_config' }
  361. },
  362. {
  363. path: 'termManage',
  364. name: 'termManage',
  365. component: require('@/pages/checkerManage/termManage').default,
  366. meta: { title: '自助机设备', permissionName: 'term_check:checker' }
  367. },
  368. {
  369. path: 'deviceManage',
  370. name: 'deviceManage',
  371. component: require('@/pages/checkerManage/deviceManage').default,
  372. meta: { title: '检票设备', permissionName: 'ticket_check:checker' }
  373. }
  374. // {
  375. // path: 'ticketSpot',
  376. // name: 'ticketSpot',
  377. // component: require('@/pages/ticketSetting/ticketSpot').default,
  378. // meta: { title: '售票点管理', permissionName: 'ticket_type_scenic:sale_spot' }
  379. // },
  380. // {
  381. // path: 'addPaymentHandIn',
  382. // name: 'addPaymentHandIn',
  383. // component: require('@/pages/ticketSetting/addPaymentHandIn').default,
  384. // meta: { title: '新增缴款', permissionName: 'ticket_type_scenic:cash_handin' }
  385. // },
  386. // {
  387. // path: 'paymentHandInAll',
  388. // name: 'paymentHandInAll',
  389. // component: require('@/pages/ticketSetting/paymentHandIn').default,
  390. // meta: { title: '缴款记录汇总', permissionName: 'ticket_type_scenic:cash_handin_total' }
  391. // },
  392. // {
  393. // path: 'batchConfig',
  394. // name: 'batchConfig',
  395. // component: require('@/pages/ticketSetting/batchConfig/index.vue').default,
  396. // meta: { title: '场次管理', permissionName: 'ticket_type_scenic:batch_config', hidden: process.env.VUE_APP_PROJECT === 'mazu' }
  397. // },
  398. // {
  399. // path: 'scheduleConfig',
  400. // name: 'scheduleConfig',
  401. // component: require('@/pages/ticketSetting/scheduleConfig/index.vue').default,
  402. // meta: { title: '班次管理', permissionName: 'ticket_type_scenic:schedule' }
  403. // },
  404. // {
  405. // path: 'batch',
  406. // name: 'batch',
  407. // component: require('@/pages/ticketSetting/batch/index.vue').default,
  408. // meta: { title: '卖场管理', permissionName: 'ticket_type_scenic:batch', hidden: process.env.VUE_APP_PROJECT === 'mazu' }
  409. // },
  410. // {
  411. // path: 'performConfig',
  412. // name: 'performConfig',
  413. // component: require('@/pages/ticketSetting/performConfig/index.vue').default,
  414. // meta: { title: '节目管理', permissionName: 'ticket_type_scenic:batch_config', hidden: process.env.VUE_APP_PROJECT === 'czg' }
  415. // },
  416. // {
  417. // path: 'seatConfig',
  418. // name: 'seatConfig',
  419. // component: require('@/pages/ticketSetting/seatConfig/index.vue').default,
  420. // meta: { title: '座位表管理', permissionName: 'ticket_type_scenic:batch_config', hidden: process.env.VUE_APP_PROJECT === 'czg' }
  421. // },
  422. // {
  423. // path: 'batchConfig_theatre',
  424. // name: 'batchConfig_theatre',
  425. // component: require('@/pages/ticketSetting/batchConfig_theatre/index.vue').default,
  426. // meta: { title: `场次管理-${theaterName()}`, permissionName: 'ticket_type_scenic:batch_config', hidden: process.env.VUE_APP_PROJECT === 'czg' }
  427. // },
  428. // {
  429. // path: 'performBatch',
  430. // name: 'performBatch',
  431. // component: require('@/pages/ticketSetting/performBatch/index.vue').default,
  432. // meta: { title: `${theaterName()}排片`, permissionName: 'ticket_type_scenic:batch', hidden: process.env.VUE_APP_PROJECT === 'czg' }
  433. // },
  434. // {
  435. // path: 'invoice',
  436. // name: 'invoice',
  437. // component: require('@/pages/ticketSetting/invoice/index.vue').default,
  438. // meta: { title: '发票管理', permissionName: 'ticket_type_scenic:invoice' }
  439. // },
  440. // {
  441. // path: 'queue',
  442. // name: 'queue',
  443. // component: require('@/pages/ticketSetting/queue/index.vue').default,
  444. // meta: { title: '队列管理', permissionName: 'ticket_type_scenic:queue_manager' }
  445. // },
  446. // {
  447. // path: 'queueLog',
  448. // name: 'queueLog',
  449. // component: require('@/pages/ticketSetting/queueLog/index.vue').default,
  450. // meta: { title: '队列记录', permissionName: 'ticket_type_scenic:queue_manager' }
  451. // },
  452. // {
  453. // path: 'subProject',
  454. // name: 'subProject',
  455. // component: require('@/pages/ticketSetting/subProject/index.vue').default,
  456. // meta: { title: '子项目管理', permissionName: 'ticket_type_scenic:sub_project_manager' }
  457. // }
  458. ]
  459. },
  460. // {
  461. // path: '/agency',
  462. // component: Layout,
  463. // name: '旅行社管理',
  464. // meta: { title: `${agencyName()}管理`, icon: 'travel' },
  465. // redirect: 'noredirect',
  466. // alwaysShow: true,
  467. // children: [
  468. // {
  469. // path: 'agencySetting',
  470. // name: 'agencySetting',
  471. // component: require('@/pages/agency/agencySetting').default,
  472. // meta: { title: `${agencyName()}列表`, permissionName: 'travel_agency:travel_agency' }
  473. // },
  474. // {
  475. // path: 'agencyTradeLog',
  476. // name: 'agencyTradeLog',
  477. // component: require('@/pages/agency/agencyTradeLog').default,
  478. // meta: { title: '余额消费记录', permissionName: 'travel_agency:prepay_log' }
  479. // },
  480. // {
  481. // path: 'agencyPreOrder',
  482. // name: 'agencyPreOrder',
  483. // component: require('@/pages/agency/preOrder').default,
  484. // meta: { title: `${agencyName()}预定`, permissionName: 'travel_agency:travel_agency_preorder' }
  485. // },
  486. // {
  487. // path: 'agencyPreOrderList',
  488. // name: 'agencyPreOrderList',
  489. // component: require('@/pages/agency/preOrderList').default,
  490. // meta: { title: '预订单记录', permissionName: 'travel_agency:travel_agency_preorder_npm' }
  491. // },
  492. // {
  493. // path: 'agencypreOrderManage',
  494. // name: 'agencypreOrderManage',
  495. // component: require('@/pages/agency/preOrderManage').default,
  496. // meta: { title: '预订单管理', permissionName: 'travel_agency:travel_agency_preorder_manage' }
  497. // },
  498. // {
  499. // path: 'agencyStatistic',
  500. // name: 'agencyStatistic',
  501. // component: require('@/pages/agency/agencyStatistic').default,
  502. // meta: { title: `${agencyName()}售票统计`, permissionName: 'travel_agency:sale_stats' }
  503. // },
  504. // {
  505. // path: 'agencyPreOrderStatistic',
  506. // name: 'agencyPreOrderStatistic',
  507. // component: require('@/pages/agency/agencyPreOrderStatistic').default,
  508. // meta: { title: `${agencyName()}预付款统计`, permissionName: 'querystats:fetch_agency' }
  509. // },
  510. // {
  511. // path: 'guideQuery',
  512. // name: 'guideQuery',
  513. // component: require('@/pages/agency/guideQuery').default,
  514. // meta: { title: '导游管理', permissionName: 'travel_agency:guide' }
  515. // },
  516. // {
  517. // path: 'guideStatistic',
  518. // name: 'guideStatistic',
  519. // component: require('@/pages/agency/guideStatistic').default,
  520. // meta: { title: '导游售票统计', permissionName: 'travel_agency:guide_sale_stats' }
  521. // }
  522. // ]
  523. // },
  524. // {
  525. // path: '/membership',
  526. // component: Layout,
  527. // name: '会员管理',
  528. // meta: { title: '会员管理', icon: 'member' },
  529. // redirect: 'noredirect',
  530. // alwaysShow: true,
  531. // children: [
  532. // // {
  533. // // path: 'memberType',
  534. // // name: 'memberType',
  535. // // component: require('@/pages/member/memberType').default,
  536. // // meta: { title: '会员类型', permissionName: 'member:member_type' }
  537. // // },
  538. // // {
  539. // // path: 'memberPreSales',
  540. // // name: 'memberPreSales',
  541. // // component: require('@/pages/member/memberPreSales').default,
  542. // // meta: { title: '会员预售管理', permissionName: 'member:member_presale' }
  543. // // },
  544. // // {
  545. // // path: 'memberSales',
  546. // // name: 'memberSales',
  547. // // component: require('@/pages/member/memberSales').default,
  548. // // meta: { title: '会员办理', permissionName: 'member:member_add' }
  549. // // },
  550. // // {
  551. // // path: 'memberUpgrade',
  552. // // name: 'memberUpgrade',
  553. // // component: require('@/pages/member/memberUpgrade').default,
  554. // // meta: { title: '会员升级设置', permissionName: 'member:member_upgrade' }
  555. // // },
  556. // // {
  557. // // path: 'iccardCheckout',
  558. // // name: 'iccardCheckout',
  559. // // component: require('@/pages/member/iccardCheckout').default,
  560. // // meta: { title: '会员出库', permissionName: 'member:member_preadd' }
  561. // // },
  562. // // {
  563. // // path: 'iccardCheckoutLog',
  564. // // name: 'iccardCheckoutLog',
  565. // // component: require('@/pages/member/iccardCheckoutLog').default,
  566. // // meta: { title: '会员出库记录', permissionName: 'member:member_preadd' }
  567. // // },
  568. // // {
  569. // // path: 'iccardStorage',
  570. // // name: 'iccardStorage',
  571. // // component: require('@/pages/member/iccardStorage').default,
  572. // // meta: { title: '会员入库', permissionName: 'member:member_preadd' }
  573. // // },
  574. // // {
  575. // // path: 'storageQuery',
  576. // // name: 'storageQuery',
  577. // // component: require('@/pages/member/storageQuery').default,
  578. // // meta: { title: '入库记录', permissionName: 'member:member_preadd_record' }
  579. // // },
  580. // // {
  581. // // path: 'storageStatistics',
  582. // // name: 'storageStatistics',
  583. // // component: require('@/pages/member/storageStatistics').default,
  584. // // meta: { title: '入库统计', permissionName: 'member:member_preadd_stats' }
  585. // // },
  586. // // {
  587. // // path: 'memberActive',
  588. // // name: 'memberActive',
  589. // // component: require('@/pages/member/memberActive').default,
  590. // // meta: { title: '会员激活', permissionName: 'member:member_active' }
  591. // // },
  592. // // {
  593. // // path: 'iccardActiveLog',
  594. // // name: 'iccardActiveLog',
  595. // // component: require('@/pages/member/iccardActiveLog').default,
  596. // // meta: { title: '会员激活记录', permissionName: 'member:member_active' }
  597. // // },
  598. // // {
  599. // // path: 'memberList',
  600. // // name: 'memberList',
  601. // // component: require('@/pages/member/memberList').default,
  602. // // meta: { title: '会员客户管理', permissionName: 'member:member_query' }
  603. // // },
  604. // // {
  605. // // path: 'memberRecharge',
  606. // // name: 'memberRecharge',
  607. // // component: require('@/pages/member/memberRecharge').default,
  608. // // meta: { title: '会员充值退卡', permissionName: 'member:member_charge' }
  609. // // },
  610. // // {
  611. // // path: 'memberCheckLog',
  612. // // name: 'memberCheckLog',
  613. // // component: require('@/pages/member/memberCheckLog').default,
  614. // // meta: { title: '会员检票记录', permissionName: 'member:member_check_record' }
  615. // // },
  616. // // {
  617. // // path: 'memberCheckStatistics',
  618. // // name: 'memberCheckStatistics',
  619. // // component: require('@/pages/member/memberCheckStatistics').default,
  620. // // meta: { title: '会员检票统计', permissionName: 'member:member_check_statistics' }
  621. // // },
  622. // // {
  623. // // path: 'memberTradeLog',
  624. // // name: 'memberTradeLog',
  625. // // component: require('@/pages/member/memberTradeLog').default,
  626. // // meta: { title: '会员交易记录', permissionName: 'member:member_charge_statistics' }
  627. // // },
  628. // // {
  629. // // path: 'memberTradeStatistics',
  630. // // name: 'memberTradeStatistics',
  631. // // component: require('@/pages/member/memberTradeStatistics').default,
  632. // // meta: { title: '会员交易统计', permissionName: 'member:member_charge_record' }
  633. // // },
  634. // // {
  635. // // path: 'memberCheckTimesLogs',
  636. // // name: 'memberCheckTimesLogs',
  637. // // component: require('@/pages/member/memberCheckTimesLogs').default,
  638. // // meta: { title: '会员检票修改记录', permissionName: 'member:update_checkTimes' }
  639. // // }
  640. // ]
  641. // },
  642. {
  643. path: '/queryReport',
  644. component: Layout,
  645. name: '数据中心',
  646. meta: { title: '数据中心', icon: 'queryform' },
  647. redirect: 'noredirect',
  648. alwaysShow: true,
  649. children: [
  650. {
  651. path: 'salesQuery',
  652. name: 'salesQuery',
  653. component: require('@/pages/queryReport/salesQuery').default,
  654. meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '预约记录' : '售票记录', permissionName: 'querystats:sale_query' }
  655. },
  656. // {
  657. // path: 'ticketSaleByBatch',
  658. // name: 'ticketSaleByBatch',
  659. // component: require('@/pages/queryReport/TicketSaleByBatch').default,
  660. // meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '场次预约统计' : '场次售票统计', permissionName: 'querystats:batch_stats' }
  661. // },
  662. // {
  663. // path: 'salesStatistic',
  664. // name: 'salesStatistic',
  665. // component: require('@/pages/queryReport/salesStatistic').default,
  666. // meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '预约统计' : '售票统计', permissionName: 'querystats:sale_stats' }
  667. // },
  668. // {
  669. // path: 'orderStatistic',
  670. // name: 'orderStatistic',
  671. // component: require('@/pages/queryReport/OrderStatistics').default,
  672. // meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '自定义预约统计' : '自定义售票统计', permissionName: 'querystats:sale_stats' }
  673. // },
  674. // {
  675. // path: 'batchorderStatistic',
  676. // name: 'batchorderStatistic',
  677. // component: require('@/pages/queryReport/BatchOrderStatistics').default,
  678. // meta: { title: '日历票报表', permissionName: 'querystats:sale_stats', hidden: process.env.VUE_APP_PROJECT !== 'mazu' }
  679. // },
  680. // {
  681. // path: 'reserveOrderStatistics',
  682. // name: 'reserveOrderStatistics',
  683. // component: require('@/pages/queryReport/ReserveOrderStatistics').default,
  684. // meta: { title: '早鸟票报表', permissionName: 'querystats:sale_stats', hidden: process.env.VUE_APP_PROJECT !== 'mazu' }
  685. // },
  686. // {
  687. // path: 'OrderScenicSaleStatistics',
  688. // name: 'OrderScenicSaleStatistics',
  689. // component: require('@/pages/queryReport/OrderScenicSaleStatistics').default,
  690. // meta: { title: '景点售票统计', permissionName: 'querystats:scenic_sale_stats' }
  691. // },
  692. // {
  693. // path: 'dailyOrderStatistics',
  694. // name: 'dailyOrderStatistics',
  695. // component: require('@/pages/queryReport/dailyOrderStatistics').default,
  696. // meta: { title: '营业日报表', permissionName: 'querystats:sale_stats' }
  697. // },
  698. // {
  699. // path: 'printOlQuery',
  700. // name: 'printOlQuery',
  701. // component: require('@/pages/queryReport/printOlQuery').default,
  702. // meta: { title: '取票记录', permissionName: 'querystats:fetch_query' }
  703. // },
  704. // {
  705. // path: 'printOlStatistics',
  706. // name: 'printOlStatistics',
  707. // component: require('@/pages/queryReport/printOlStatistics').default,
  708. // meta: { title: '取票统计', permissionName: 'querystats:fetch_stats' }
  709. // },
  710. {
  711. path: 'checkQuery',
  712. name: 'checkQuery',
  713. component: require('@/pages/queryReport/checkQuery').default,
  714. meta: { title: '核销统计', permissionName: 'querystats:check_query' }
  715. },
  716. {
  717. path: 'freeQuery',
  718. name: 'freeQuery',
  719. component: require('@/pages/queryReport/freeQuery').default,
  720. meta: { title: '免票记录', permissionName: 'querystats:sale_query' }
  721. },
  722. {
  723. path: 'freeStatistic',
  724. name: 'freeStatistic',
  725. component: require('@/pages/queryReport/freeStatistic').default,
  726. meta: { title: '免票统计', permissionName: 'querystats:sale_stats' }
  727. },
  728. {
  729. path: 'vistorStaticstics',
  730. name: 'vistorStaticstics',
  731. component: () => import('@/pages/visitor/vistorStaticstics'),
  732. meta: { title: '客户画像', permissionName: 'customer:customer_stats' }
  733. },
  734. {
  735. path: 'checkStatistic',
  736. name: 'checkStatistic',
  737. component: require('@/pages/queryReport/checkStatistic').default,
  738. meta: { title: '检票设备入园', permissionName: 'querystats:check_stats' }
  739. }
  740. // {
  741. // path: 'salesDaily',
  742. // name: 'salesDaily',
  743. // component: require('@/pages/queryReport/salesDaily').default,
  744. // meta: { title: process.env.VUE_APP_PROJECT === 'czg' ? '预约检票日报' : '销售日报', permissionName: 'querystats:daily_sale' }
  745. // },
  746. // {
  747. // path: 'comparedAnalysis',
  748. // name: 'comparedAnalysis',
  749. // component: require('@/pages/queryReport/comparedAnalysis').default,
  750. // meta: { title: '门票同比分析表', permissionName: 'querystats:compared_analysis' }
  751. // },
  752. // {
  753. // path: 'printQuery',
  754. // name: 'printQuery',
  755. // component: require('@/pages/queryReport/printQuery').default,
  756. // meta: { title: '补打记录', permissionName: 'querystats:secondprint_query' }
  757. // },
  758. // {
  759. // path: 'rescheduleQuery',
  760. // name: 'rescheduleQuery',
  761. // component: require('@/pages/queryReport/rescheduleQuery').default,
  762. // meta: { title: '改签记录', permissionName: 'querystats:change_query' }
  763. // },
  764. // {
  765. // path: 'rescheduleStatistics',
  766. // name: 'rescheduleStatistics',
  767. // component: require('@/pages/queryReport/rescheduleStatistics').default,
  768. // meta: { title: '改签统计', permissionName: 'querystats:change_stats' }
  769. // },
  770. // {
  771. // path: 'refundQuery',
  772. // name: 'refundQuery',
  773. // component: require('@/pages/queryReport/refundQuery').default,
  774. // meta: { title: '退票记录', permissionName: 'querystats:refund_query' }
  775. // },
  776. // {
  777. // path: 'refundStatistics',
  778. // name: 'refundStatistics',
  779. // component: require('@/pages/queryReport/refundStatistics').default,
  780. // meta: { title: '退票统计', permissionName: 'querystats:refund_stats' }
  781. // },
  782. // {
  783. // path: 'secondQuery',
  784. // name: 'secondQuery',
  785. // component: require('@/pages/queryReport/secondQuery').default,
  786. // meta: { title: '二次入园记录', permissionName: 'querystats:reentry_query' }
  787. // },
  788. // {
  789. // path: 'handOverLog',
  790. // name: 'handOverLog',
  791. // component: require('@/pages/queryReport/handOverLog').default,
  792. // meta: { title: '交班记录汇总', permissionName: 'querystats:handover_stats' }
  793. // },
  794. // {
  795. // path: 'TicketIncomeStatistics',
  796. // name: 'TicketIncomeStatistics',
  797. // component: require('@/pages/queryReport/TicketIncomeStatistics.vue').default,
  798. // meta: { title: '票种收入统计', permissionName: 'querystats:sale_stats' }
  799. // },
  800. // {
  801. // path: 'handOverStatistics',
  802. // name: 'handOverStatistics',
  803. // component: require('@/pages/queryReport/handOverStatistics/index.vue').default,
  804. // meta: { title: '窗口销售明细', permissionName: 'querystats:sale_detail' }
  805. // },
  806. // {
  807. // path: 'orderTotalStatistics',
  808. // name: 'orderTotalStatistics',
  809. // component: require('@/pages/queryReport/orderTotalStatistics').default,
  810. // meta: { title: '售票累计统计', permissionName: 'querystats:sale_grand_total' }
  811. // },
  812. // {
  813. // path: 'memberVisitsStatistics',
  814. // name: 'memberVisitsStatistics',
  815. // component: require('@/pages/queryReport/memberVisitsStatistics').default,
  816. // meta: { title: '会员来园次数分析', permissionName: 'member:member_visits_statistics' }
  817. // },
  818. // {
  819. // path: 'ticketInStockStatistics',
  820. // name: 'ticketInStockStatistics',
  821. // component: require('@/pages/queryReport/ticketInStockStatistics').default,
  822. // meta: { title: '预制门票管理统计', permissionName: 'querystats:ticket_in_stock_detail' }
  823. // },
  824. // {
  825. // path: 'invoiceRecord',
  826. // name: 'invoiceRecord',
  827. // component: require('@/pages/queryReport/invoiceRecord').default,
  828. // meta: { title: '开票记录', permissionName: 'querystats:invoice_record' }
  829. // },
  830. // {
  831. // path: 'reportExport',
  832. // name: 'reportExport',
  833. // component: require('@/pages/queryReport/reportExport').default,
  834. // meta: { title: '导出报表', permissionName: 'querystats:reports_list' }
  835. // }
  836. ]
  837. },
  838. // {
  839. // path: '/mergeReport',
  840. // component: Layout,
  841. // name: '汇总数据',
  842. // meta: { title: '汇总数据', icon: 'visitorSetting' },
  843. // alwaysShow: true,
  844. // children: [
  845. // {
  846. // name: 'report',
  847. // path: 'report',
  848. // component: require('@/pages/queryReport/mergeReport').default,
  849. // meta: { title: '汇总数据', hidden: process.env.VUE_APP_PROJECT !== 'mazu', permissionName: 'querystats:sale_stats' }
  850. // }
  851. // ]
  852. // },
  853. // {
  854. // path: '/visitor',
  855. // component: Layout,
  856. // name: '客户列表',
  857. // meta: { title: '客户管理', icon: 'visitorSetting' },
  858. // redirect: 'noredirect',
  859. // alwaysShow: true,
  860. // children: [
  861. // {
  862. // path: 'visitorManage',
  863. // name: 'visitorManage',
  864. // component: () => import('@/pages/visitor/visitorManage'),
  865. // meta: { title: '客户列表', permissionName: 'customer:customer' }
  866. // },
  867. // {
  868. // path: 'vistorStaticstics',
  869. // name: 'vistorStaticstics',
  870. // component: () => import('@/pages/visitor/vistorStaticstics'),
  871. // meta: { title: '客户画像', permissionName: 'customer:customer_stats' }
  872. // }
  873. // ]
  874. // },
  875. {
  876. path: '/systemSetting',
  877. component: Layout,
  878. name: '系统管理',
  879. meta: { title: '系统管理', icon: 'systemSetting' },
  880. redirect: 'noredirect',
  881. alwaysShow: true,
  882. children: [
  883. {
  884. path: 'commonSetting',
  885. name: 'commonSetting',
  886. component: require('@/pages/systemSetting/commonSetting').default,
  887. meta: { title: '参数配置', permissionName: 'system_setting:global_setting' }
  888. },
  889. {
  890. path: 'account',
  891. name: 'account',
  892. component: require('@/pages/systemSetting/account').default,
  893. meta: { title: '账号管理', permissionName: 'system_setting:users' }
  894. },
  895. {
  896. path: 'role',
  897. name: 'role',
  898. component: require('@/pages/systemSetting/role').default,
  899. meta: { title: '角色管理', permissionName: 'system_setting:roles' }
  900. },
  901. {
  902. path: 'smallTicket',
  903. name: 'smallTicket',
  904. component: require('@/pages/systemSetting/smallTicket').default,
  905. meta: { title: '小票打印配置', permissionName: 'system_setting:print_model' }
  906. },
  907. {
  908. path: 'operationLog',
  909. name: 'operationLog',
  910. component: require('@/pages/systemSetting/operationLog').default,
  911. meta: { title: '操作日志', permissionName: 'system_setting:web_log' }
  912. },
  913. {
  914. path: 'loginLog',
  915. name: 'loginLog',
  916. component: require('@/pages/systemSetting/loginLog').default,
  917. meta: { title: '登录日志', permissionName: 'system_setting:login_log' }
  918. }
  919. ]
  920. },
  921. {
  922. path: '/error',
  923. component: Layout,
  924. redirect: 'noredirect',
  925. name: 'errorPages',
  926. hidden: true,
  927. meta: {
  928. title: 'errorPages',
  929. icon: '404'
  930. },
  931. children: [
  932. { path: '401', component: require('@/pages/401').default, name: 'page401', meta: { title: 'page401', noCache: true } },
  933. { path: '404', component: require('@/pages/404').default, name: 'page404', meta: { title: 'page404', noCache: true } }
  934. ]
  935. },
  936. {
  937. path: '*',
  938. redirect: '/error/404',
  939. hidden: true
  940. }
  941. ]
  942. // 印象妈祖客户端定制化去掉一些不用的菜单入口
  943. // 优化票务管理页面,部分未使用功能按钮优化或隐藏,(如场次管理、场次管理剧院等重复按钮)
  944. // const appName = process.env.VUE_APP_PROJECT_NAME // '印象妈祖票务系统'
  945. // if (appName.indexOf('妈祖') > 0) {
  946. // const titlesToDelete = ['场次管理', '场次管理-'] // 添加要删除的标题 []
  947. // console.log('印象妈祖客户端定制化删除部分菜单', titlesToDelete)
  948. // routerMap.forEach(route => {
  949. // if (route.children) {
  950. // route.children = route.children.filter(child => {
  951. // return !titlesToDelete.some(title => child.meta.title.includes(title))
  952. // })
  953. // }
  954. // })
  955. // }
  956. // 动态将子权限附加到父级
  957. export const asyncRouterMap = routerMap
  958. .map(item => {
  959. if (item.children) {
  960. !item.meta && (item.meta = {})
  961. item.meta.permissionName = item.children.map(i => {
  962. if (i.meta && i.meta.permissionName) {
  963. return i.meta.permissionName
  964. } else {
  965. return 'all' // 所有人可见
  966. }
  967. })
  968. }
  969. return item
  970. })