index.js 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433
  1. import { createRouter, createWebHashHistory } from 'vue-router'
  2. import Layout from '@/components/Layout.vue'
  3. const routes = [
  4. {
  5. path: '/login',
  6. name: 'Login',
  7. component: () => import('@/views/Login.vue'),
  8. meta: { public: true }
  9. },
  10. {
  11. path: '/',
  12. component: Layout,
  13. redirect: '/customization/hsbc/equity-products',
  14. children: [
  15. {
  16. path: 'customization/hsbc/pages',
  17. redirect: 'customization/hsbc/pages/home',
  18. meta: { title: '页面管理' }
  19. },
  20. {
  21. path: 'customization/hsbc/pages/home',
  22. name: 'PageHomeConfig',
  23. component: () => import('@/views/PageHomeConfig.vue'),
  24. meta: { title: '权益介绍页' }
  25. },
  26. {
  27. path: 'customization/hsbc/pages/zone',
  28. name: 'PageZoneConfig',
  29. component: () => import('@/views/PageZoneConfig.vue'),
  30. meta: { title: '权益首页' }
  31. },
  32. {
  33. path: 'customization/hsbc/pages/assembly',
  34. name: 'PageAssembly',
  35. component: () => import('@/views/PageAssembly.vue'),
  36. meta: { title: '组装页' }
  37. },
  38. {
  39. path: 'customization/hsbc/equity-products',
  40. name: 'EquityProducts',
  41. component: () => import('@/views/EquityProducts.vue'),
  42. meta: { title: '借记卡权益' }
  43. },
  44. {
  45. path: 'customization/hsbc/credit-card-equity',
  46. name: 'CreditCardEquity',
  47. component: () => import('@/views/CreditCardEquity.vue'),
  48. meta: { title: '信用卡权益' }
  49. },
  50. {
  51. path: 'customization/hsbc/activities',
  52. name: 'ActivityManagement',
  53. component: () => import('@/views/ActivityManagement.vue'),
  54. meta: { title: '活动管理' }
  55. },
  56. {
  57. path: 'customization/hsbc/activities/add',
  58. name: 'ActivityAdd',
  59. component: () => import('@/views/ActivityEdit.vue'),
  60. meta: { title: '新建活动' }
  61. },
  62. {
  63. path: 'customization/hsbc/activities/edit/:id',
  64. name: 'ActivityEdit',
  65. component: () => import('@/views/ActivityEdit.vue'),
  66. meta: { title: '编辑活动' }
  67. },
  68. {
  69. path: 'customization/hsbc/activities/view/:id',
  70. name: 'ActivityView',
  71. component: () => import('@/views/ActivityEdit.vue'),
  72. meta: { title: '查看活动' }
  73. },
  74. {
  75. path: 'customization/hsbc/activities/audit/:id',
  76. name: 'ActivityAudit',
  77. component: () => import('@/views/ActivityEdit.vue'),
  78. meta: { title: '活动审核' }
  79. },
  80. {
  81. path: 'customization/hsbc/activity-forms',
  82. name: 'ActivityFormList',
  83. component: () => import('@/views/ActivityConfigList.vue'),
  84. meta: { title: '报名表单管理', configType: 'forms' }
  85. },
  86. {
  87. path: 'customization/hsbc/activity-crowds',
  88. name: 'ActivityCrowdManagement',
  89. component: () => import('@/views/ActivityCrowdManagement.vue'),
  90. meta: { title: '客群管理' }
  91. },
  92. {
  93. path: 'customization/hsbc/activity-progress-templates',
  94. name: 'ActivityProgressTemplate',
  95. component: () => import('@/views/ActivityProgressTemplate.vue'),
  96. meta: { title: '活动进度模板管理' }
  97. },
  98. {
  99. path: 'customization/hsbc/activity-progress-rules',
  100. name: 'ActivityProgressRuleList',
  101. component: () => import('@/views/ActivityConfigList.vue'),
  102. meta: { title: '达标规则管理', configType: 'progress' }
  103. },
  104. {
  105. path: 'customization/hsbc/activity-grant-plans',
  106. name: 'ActivityGrantPlan',
  107. component: () => import('@/views/ActivityGrantPlan.vue'),
  108. meta: { title: '权益发放计划管理' }
  109. },
  110. {
  111. path: 'customization/hsbc/activity-mutex-groups',
  112. name: 'ActivityMutexGroupList',
  113. component: () => import('@/views/ActivityMutexGroup.vue'),
  114. meta: { title: '活动互斥组管理' }
  115. },
  116. {
  117. path: 'customization/hsbc/activity-mutex-groups/add',
  118. name: 'ActivityMutexGroupAdd',
  119. component: () => import('@/views/ActivityMutexGroupEdit.vue'),
  120. meta: { title: '新增活动互斥组' }
  121. },
  122. {
  123. path: 'customization/hsbc/activity-mutex-groups/edit/:id',
  124. name: 'ActivityMutexGroupEdit',
  125. component: () => import('@/views/ActivityMutexGroupEdit.vue'),
  126. meta: { title: '编辑活动互斥组' }
  127. },
  128. {
  129. path: 'customization/hsbc/activity-launches',
  130. name: 'ActivityLaunchList',
  131. component: () => import('@/views/ActivityConfigList.vue'),
  132. meta: { title: '活动投放管理', configType: 'launches' }
  133. },
  134. {
  135. path: 'customization/hsbc/activity-notifications',
  136. name: 'ActivityNotificationList',
  137. component: () => import('@/views/ActivityConfigList.vue'),
  138. meta: { title: '通知模板管理', configType: 'notifications' }
  139. },
  140. {
  141. path: 'customization/hsbc/activity-report',
  142. name: 'ActivityReport',
  143. component: () => import('@/views/ActivityReport.vue'),
  144. meta: { title: '活动报表/进度查询' }
  145. },
  146. {
  147. path: 'customization/hsbc/credit-card-activity-entry',
  148. name: 'CreditCardActivityEntry',
  149. component: () => import('@/views/CreditCardActivityEntry.vue'),
  150. meta: { title: '信用卡活动入口配置' }
  151. },
  152. {
  153. path: 'customization/hsbc/crowd-tasks',
  154. name: 'CrowdTaskList',
  155. component: () => import('@/views/CrowdTaskList.vue'),
  156. meta: { title: '客群任务管理' }
  157. },
  158. {
  159. path: 'customization/hsbc/crowd-tasks/add',
  160. name: 'CrowdTaskAdd',
  161. component: () => import('@/views/CrowdTaskEdit.vue'),
  162. meta: { title: '新建客群任务' }
  163. },
  164. {
  165. path: 'customization/hsbc/crowd-tasks/edit/:id',
  166. name: 'CrowdTaskEdit',
  167. component: () => import('@/views/CrowdTaskEdit.vue'),
  168. meta: { title: '编辑客群任务' }
  169. },
  170. {
  171. path: 'customization/hsbc/crowd-tasks/copy/:id',
  172. name: 'CrowdTaskCopy',
  173. component: () => import('@/views/CrowdTaskEdit.vue'),
  174. meta: { title: '复制客群任务' }
  175. },
  176. {
  177. path: 'customization/hsbc/crowd-tasks/view/:id',
  178. name: 'CrowdTaskView',
  179. component: () => import('@/views/CrowdTaskView.vue'),
  180. meta: { title: '客群任务详情' }
  181. },
  182. {
  183. path: 'customization/hsbc/crowd-name-lists/add',
  184. name: 'CrowdNameListAdd',
  185. component: () => import('@/views/CrowdNameListEdit.vue'),
  186. meta: { title: '新增指定客户号客群' }
  187. },
  188. {
  189. path: 'customization/hsbc/crowd-name-lists/edit/:id',
  190. name: 'CrowdNameListEdit',
  191. component: () => import('@/views/CrowdNameListEdit.vue'),
  192. meta: { title: '编辑指定客户号客群' }
  193. },
  194. {
  195. path: 'customization/hsbc/rule-groups',
  196. name: 'RuleGroupList',
  197. component: () => import('@/views/RuleGroupList.vue'),
  198. meta: { title: '规则组管理' }
  199. },
  200. {
  201. path: 'customization/hsbc/rule-groups/add',
  202. name: 'RuleGroupAdd',
  203. component: () => import('@/views/RuleGroupEdit.vue'),
  204. meta: { title: '新增规则组' }
  205. },
  206. {
  207. path: 'customization/hsbc/rule-groups/edit/:id',
  208. name: 'RuleGroupEdit',
  209. component: () => import('@/views/RuleGroupEdit.vue'),
  210. meta: { title: '编辑规则组' }
  211. },
  212. {
  213. path: 'customization/hsbc/rule-groups/view/:id',
  214. name: 'RuleGroupView',
  215. component: () => import('@/views/RuleGroupView.vue'),
  216. meta: { title: '规则组详情' }
  217. },
  218. {
  219. path: 'customization/hsbc/rule-group-audit',
  220. name: 'RuleGroupAuditList',
  221. component: () => import('@/views/RuleGroupAuditList.vue'),
  222. meta: { title: '规则组审核' }
  223. },
  224. {
  225. path: 'customization/hsbc/rule-group-audit/:id',
  226. name: 'RuleGroupAuditDetail',
  227. component: () => import('@/views/RuleGroupAuditDetail.vue'),
  228. meta: { title: '规则组审核详情' }
  229. },
  230. {
  231. path: 'customization/hsbc/equity-products/add',
  232. name: 'AddEquityProduct',
  233. component: () => import('@/views/AddEquityProduct.vue'),
  234. meta: { title: '添加权益' }
  235. },
  236. {
  237. path: 'customization/hsbc/equity-products/view/:id',
  238. name: 'ViewEquityProduct',
  239. component: () => import('@/views/ViewEquityProduct.vue'),
  240. meta: { title: '查看权益' }
  241. },
  242. {
  243. path: 'customization/hsbc/equity-products/edit/:id',
  244. name: 'EditEquityProduct',
  245. component: () => import('@/views/EditEquityProduct.vue'),
  246. meta: { title: '编辑权益' }
  247. },
  248. {
  249. path: 'customization/hsbc/equity-products/audit/:id',
  250. name: 'AuditEquityProduct',
  251. component: () => import('@/views/AuditEquityProduct.vue'),
  252. meta: { title: '审核权益' }
  253. },
  254. {
  255. path: 'customization/hsbc/equity-products/coupons/:id',
  256. name: 'EquityProductCoupons',
  257. component: () => import('@/views/EquityProductCoupons.vue'),
  258. meta: { title: '券码管理' }
  259. },
  260. {
  261. path: 'customization/hsbc/tags',
  262. name: 'TagList',
  263. component: () => import('@/views/TagList.vue'),
  264. meta: { title: '标签管理' }
  265. },
  266. {
  267. path: 'customization/hsbc/tags/add',
  268. name: 'TagAdd',
  269. component: () => import('@/views/TagEdit.vue'),
  270. meta: { title: '新建标签' }
  271. },
  272. {
  273. path: 'customization/hsbc/tags/edit/:id',
  274. name: 'TagEdit',
  275. component: () => import('@/views/TagEdit.vue'),
  276. meta: { title: '编辑标签' }
  277. },
  278. {
  279. path: 'customization/hsbc/tags/view/:id',
  280. name: 'TagView',
  281. component: () => import('@/views/TagView.vue'),
  282. meta: { title: '查看标签' }
  283. },
  284. {
  285. path: 'customization/hsbc/sms-templates',
  286. name: 'SmsTemplateList',
  287. component: () => import('@/views/SmsTemplateList.vue'),
  288. meta: { title: '短信模板管理' }
  289. },
  290. {
  291. path: 'customization/hsbc/sms-send-records',
  292. name: 'SmsSendRecord',
  293. component: () => import('@/views/SmsSendRecord.vue'),
  294. meta: { title: '发送记录查询' }
  295. },
  296. {
  297. path: 'customization/hsbc/equity-grant',
  298. name: 'CustomerEquityGrant',
  299. component: () => import('@/views/CustomerEquityGrant.vue'),
  300. meta: { title: '客户权益发放' }
  301. },
  302. {
  303. path: 'customization/hsbc/cash-discount-grant',
  304. name: 'CashDiscountGrant',
  305. component: () => import('@/views/CashDiscountGrant.vue'),
  306. meta: { title: '立减金发放明细' }
  307. },
  308. {
  309. path: 'customization/hsbc/points-detail',
  310. name: 'PointsDetail',
  311. component: () => import('@/views/PointsDetail.vue'),
  312. meta: { title: '积分明细查询' }
  313. },
  314. {
  315. path: 'customization/hsbc/channel',
  316. name: 'ChannelManagement',
  317. component: () => import('@/views/ChannelManagement.vue'),
  318. meta: { title: 'Channel管理' }
  319. },
  320. {
  321. path: 'customization/hsbc/campaign',
  322. name: 'CampaignManagement',
  323. component: () => import('@/views/CampaignManagement.vue'),
  324. meta: { title: 'Campaign管理' }
  325. },
  326. {
  327. path: 'customization/hsbc/audit',
  328. name: 'AuditList',
  329. component: () => import('@/views/AuditList.vue'),
  330. meta: { title: '权益审核' }
  331. },
  332. {
  333. path: 'customization/hsbc/audit/:id',
  334. name: 'AuditDetail',
  335. component: () => import('@/views/AuditDetail.vue'),
  336. meta: { title: '审核详情' }
  337. },
  338. {
  339. path: 'customization/hsbc/equity-grant-campaign',
  340. name: 'EquityGrantCampaign',
  341. component: () => import('@/views/EquityGrantCampaign.vue'),
  342. meta: { title: '发放计划' }
  343. },
  344. {
  345. path: 'customization/hsbc/equity-grant-campaign/add',
  346. name: 'EquityGrantCampaignAdd',
  347. component: () => import('@/views/EquityGrantCampaignEdit.vue'),
  348. meta: { title: '新建发放计划' }
  349. },
  350. {
  351. path: 'customization/hsbc/equity-grant-campaign/edit/:id',
  352. name: 'EquityGrantCampaignEdit',
  353. component: () => import('@/views/EquityGrantCampaignEdit.vue'),
  354. meta: { title: '编辑发放计划' }
  355. },
  356. {
  357. path: 'customization/hsbc/equity-grant-campaign/copy/:id',
  358. name: 'EquityGrantCampaignCopy',
  359. component: () => import('@/views/EquityGrantCampaignEdit.vue'),
  360. meta: { title: '复制发放计划' }
  361. },
  362. {
  363. path: 'customization/hsbc/equity-grant-campaign/view/:id',
  364. name: 'EquityGrantCampaignView',
  365. component: () => import('@/views/EquityGrantCampaignView.vue'),
  366. meta: { title: '查看发放计划' }
  367. },
  368. {
  369. path: 'customization/hsbc/grant-task',
  370. name: 'GrantTaskList',
  371. component: () => import('@/views/GrantTaskList.vue'),
  372. meta: { title: '发放任务' }
  373. },
  374. {
  375. path: 'customization/hsbc/grant-task/view/:taskId',
  376. name: 'GrantTaskView',
  377. component: () => import('@/views/GrantTaskDetail.vue'),
  378. meta: { title: '查看发放任务' }
  379. },
  380. {
  381. path: 'customization/hsbc/grant-task/execute/:taskId',
  382. name: 'GrantTaskExecute',
  383. component: () => import('@/views/GrantTaskDetail.vue'),
  384. meta: { title: '执行发放任务' }
  385. },
  386. {
  387. path: 'customization/hsbc/coupon-batches',
  388. name: 'CouponBatchList',
  389. component: () => import('@/views/CouponBatchList.vue'),
  390. meta: { title: '券码管理' }
  391. },
  392. {
  393. path: 'customization/hsbc/coupon-audit',
  394. name: 'CouponAuditList',
  395. component: () => import('@/views/CouponAuditList.vue'),
  396. meta: { title: '券码审核' }
  397. },
  398. {
  399. path: 'customization/hsbc/campaign-audit',
  400. name: 'CampaignAuditList',
  401. component: () => import('@/views/CampaignAuditList.vue'),
  402. meta: { title: '发放计划审核' }
  403. },
  404. {
  405. path: 'customization/hsbc/campaign-audit/:id',
  406. name: 'CampaignAuditDetail',
  407. component: () => import('@/views/CampaignAuditDetail.vue'),
  408. meta: { title: '发放计划审核详情' }
  409. }
  410. ]
  411. },
  412. { path: '/:pathMatch(.*)*', redirect: '/' }
  413. ]
  414. const router = createRouter({
  415. history: createWebHashHistory(),
  416. routes
  417. })
  418. router.beforeEach((to, from, next) => {
  419. const token = localStorage.getItem('token')
  420. if (to.meta && to.meta.public) {
  421. if (token && to.path === '/login') return next('/')
  422. return next()
  423. }
  424. if (!token) {
  425. return next({ path: '/login', query: { redirect: to.fullPath } })
  426. }
  427. next()
  428. })
  429. export default router