route.ts 23 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845
  1. import { RouteRecordRaw } from 'vue-router';
  2. /**
  3. * * 建议:路由 path 路径与文件夹名称相同,找文件可浏览器地址找,方便定位文件位置
  4. *
  5. * 路由meta对象参数说明
  6. * meta: {
  7. * title: 菜单栏及 tagsView 栏、菜单搜索名称(国际化)
  8. * isLink: 是否超链接菜单,开启外链条件,`1、isLink: 链接地址不为空`
  9. * isHide: 是否隐藏此路由
  10. * isKeepAlive: 是否缓存组件状态
  11. * isAffix: 是否固定在 tagsView 栏上
  12. * isIframe: 是否内嵌窗口,开启条件,`1、isIframe:true 2、isLink:链接地址不为空`
  13. * roles: 当前路由权限标识,取角色管理。控制路由显示、隐藏。超级管理员:admin 普通角色:common
  14. * icon: 菜单、tagsView 图标,阿里:加 `iconfont xxx`,fontawesome:加 `fa xxx`
  15. * }
  16. */
  17. // 扩展 RouteMeta 接口
  18. declare module 'vue-router' {
  19. interface RouteMeta {
  20. title?: string;
  21. isLink?: string;
  22. isHide?: boolean;
  23. isKeepAlive?: boolean;
  24. isAffix?: boolean;
  25. isIframe?: boolean;
  26. roles?: string[];
  27. icon?: string;
  28. }
  29. }
  30. /**
  31. * 定义动态路由
  32. * 前端添加路由,请在顶级节点的 `children 数组` 里添加
  33. * @description 未开启 isRequestRoutes 为 true 时使用(前端控制路由),开启时第一个顶级 children 的路由将被替换成接口请求回来的路由数据
  34. * @description 各字段请查看 `@/views/system/menu/components/Menu-add.vue 下的 ruleForm`
  35. * @returns 返回路由菜单数据
  36. */
  37. export const dynamicRoutes: Array<RouteRecordRaw> = [
  38. {
  39. path: '/',
  40. name: '/',
  41. component: () => import('@/layout/index.vue'),
  42. redirect: '/home',
  43. meta: {
  44. isKeepAlive: true,
  45. },
  46. children: [
  47. {
  48. path: '/home',
  49. name: 'home',
  50. component: () => import('@/views/home/index.vue'),
  51. meta: {
  52. title: '首页',
  53. isLink: '',
  54. isHide: false,
  55. isKeepAlive: true,
  56. isAffix: true,
  57. isIframe: false,
  58. icon: 'iconfont icon-shouye',
  59. },
  60. },
  61. ],
  62. },
  63. {
  64. path: '/todo/seats/accept',
  65. name: 'orderAccept',
  66. component: () => import('@/views/todo/seats/accept/index.vue'),
  67. meta: {
  68. title: '工单受理',
  69. isKeepAlive: true,
  70. },
  71. },
  72. {
  73. path: '/knowledge/index/edit/:tagsViewName/:id?',
  74. name: 'knowledgeEdit',
  75. component: () => import('@/views/knowledge/index/edit.vue'),
  76. meta: {
  77. title: '知识库新增/编辑',
  78. isKeepAlive: true,
  79. isDynamic: true,
  80. },
  81. },
  82. {
  83. path: '/knowledge/index/preview/:tagsViewName/:id/:isAddPv?',
  84. name: 'knowledgePreview',
  85. component: () => import('@/views/knowledge/index/preview.vue'),
  86. meta: {
  87. title: '知识查看',
  88. isKeepAlive: true,
  89. isDynamic: true,
  90. },
  91. },
  92. {
  93. path: '/system/roles/dataAuth',
  94. name: 'systemDataAuth',
  95. component: () => import('@/views/system/dataAuth/index.vue'),
  96. meta: {
  97. title: '数据权限',
  98. isKeepAlive: true,
  99. },
  100. },
  101. {
  102. path: '/system/config/workflow/edit/:tagsViewName/:id?',
  103. name: 'workflowAddEdit',
  104. component: () => import('@/views/system/config/workflow/components/workflowEdit.vue'),
  105. meta: {
  106. title: '流程编辑',
  107. isKeepAlive: true,
  108. isDynamic: true,
  109. },
  110. },
  111. {
  112. path: '/auxiliary/notice/detail/:tagsViewName/:id',
  113. name: 'auxiliaryNoticeDetail',
  114. component: () => import('@/views/auxiliary/notice/detail.vue'),
  115. meta: {
  116. title: '通知详情',
  117. isKeepAlive: false,
  118. isDynamic: true,
  119. },
  120. },
  121. {
  122. path: '/public/notice/:tagsViewName/:id/:isRead',
  123. name: 'auxiliaryNoticeRead',
  124. component: () => import('@/views/public/notice/index.vue'),
  125. meta: {
  126. title: '通知阅读',
  127. isKeepAlive: false,
  128. isDynamic: true,
  129. },
  130. },
  131. {
  132. path: '/statistics/order/detailVisitDiscontent',
  133. name: 'statisticsOrderDetailVisitDiscontent',
  134. component: () => import('@/views/statistics/order/detailVisitDiscontent.vue'),
  135. meta: {
  136. title: '回访不满意原因统计明细',
  137. isKeepAlive: true,
  138. },
  139. },
  140. {
  141. path: '/statistics/order/specialTable',
  142. name: 'statisticsOrderSpecialTable',
  143. component: () => import('@/views/statistics/order/specialTable.vue'),
  144. meta: {
  145. title: '特提统计明细',
  146. isKeepAlive: true,
  147. },
  148. },
  149. {
  150. path: '/statistics/department/DepartmentSatisfiedDetail',
  151. name: 'statisticsDepartmentSatisfiedDetail',
  152. component: () => import('@/views/statistics/department/detailSatisfied.vue'),
  153. meta: {
  154. title: '部门满意度统计明细',
  155. isKeepAlive: true,
  156. },
  157. },
  158. {
  159. path: '/statistics/detailSatisfiedOrg/org',
  160. name: 'statisticsDepartmentSatisfiedOrg',
  161. component: () => import('@/views/statistics/department/detailSatisfiedOrg.vue'),
  162. meta: {
  163. title: '部门满意度统计明细',
  164. isKeepAlive: true,
  165. },
  166. },
  167. {
  168. path: '/statistics/center/detailEventFrequently',
  169. name: 'eventFrequentlyDetail',
  170. component: () => import('@/views/statistics/center/detailEventFrequently.vue'),
  171. meta: {
  172. title: '高频统计明细',
  173. isKeepAlive: true,
  174. },
  175. },
  176. {
  177. path: '/judicial/statistics/detailEventClass',
  178. name: 'judicialDetailEventClass',
  179. component: () => import('@/views/judicial/statistics/detailEventClass.vue'),
  180. meta: {
  181. title: '事项分类统计明细',
  182. isKeepAlive: true,
  183. },
  184. },
  185. {
  186. path: '/judicial/statistics/detailDepartment', //工单
  187. name: 'judicialDetailDepartment',
  188. component: () => import('@/views/judicial/statistics/detailDepartment.vue'),
  189. meta: {
  190. title: '执法部门办件统计明细',
  191. isKeepAlive: true,
  192. },
  193. },
  194. {
  195. path: '/judicial/statistics/detailArea',
  196. name: 'judicialDetailArea',
  197. component: () => import('@/views/judicial/statistics/detailArea.vue'),
  198. meta: {
  199. title: '区域分类统计明细',
  200. isKeepAlive: true,
  201. },
  202. },
  203. {
  204. path: '/judicial/statistics/detailSatisfied',
  205. name: 'judicialStatisticsDetailSatisfied',
  206. component: () => import('@/views/judicial/statistics/detailSatisfied.vue'),
  207. meta: {
  208. title: '部门满意度统计明细',
  209. isKeepAlive: true,
  210. },
  211. },
  212. {
  213. path: '/statistics/center/detailWrongItem',
  214. name: 'statisticsCenterDetailWrongItem',
  215. component: () => import('@/views/statistics/center/detailWrongItem.vue'),
  216. meta: {
  217. title: '回退错件统计明细',
  218. isKeepAlive: true,
  219. },
  220. },
  221. {
  222. path: '/statistics/order/departmentDetailAcceptType',
  223. name: 'statisticsDepartmentDetailAcceptType',
  224. component: () => import('@/views/statistics/order/departmentDetailAcceptType.vue'),
  225. meta: {
  226. title: '部门受理类型统计周期明细',
  227. isKeepAlive: true,
  228. },
  229. },
  230. {
  231. path: '/statistics/department/detailDpAccept',
  232. name: 'statisticsDepartmentDetailDpAccept',
  233. component: () => import('@/views/statistics/department/detailDpAccept.vue'),
  234. meta: {
  235. title: '部门受理类型统计子部门',
  236. isKeepAlive: true,
  237. },
  238. },
  239. {
  240. path: '/statistics/department/detailDpAcceptList',
  241. name: 'statisticsDepartmentDetailAcceptList',
  242. component: () => import('@/views/statistics/department/detailDpAcceptList.vue'),
  243. meta: {
  244. title: '部门受理类型统计明细',
  245. isKeepAlive: true,
  246. },
  247. },
  248. {
  249. path: '/statistics/order/detailDispatch',
  250. name: 'statisticsOrderDetailDispatch',
  251. component: () => import('@/views/statistics/order/detailDispatch.vue'),
  252. meta: {
  253. title: '派单量统计明细',
  254. isKeepAlive: true,
  255. },
  256. },
  257. {
  258. path: '/statistics/department/detailHandleOrg',
  259. name: 'statisticsDepartmentDetailHandleOrg',
  260. component: () => import('@/views/statistics/department/detailHandleOrg.vue'),
  261. meta: {
  262. title: '部门办件统计表明细',
  263. isKeepAlive: true,
  264. },
  265. },
  266. {
  267. path: '/statistics/department/detailHandle',
  268. name: 'statisticsDepartmentDetailHandle',
  269. component: () => import('@/views/statistics/department/detailHandle.vue'),
  270. meta: {
  271. title: '部门办件统计表明细',
  272. isKeepAlive: true,
  273. },
  274. },
  275. {
  276. path: '/statistics/call/detailTalkTime',
  277. name: 'statisticsCallDetailTalkTime',
  278. component: () => import('@/views/statistics/call/detailTalkTime.vue'),
  279. meta: {
  280. title: '通话时段明细表',
  281. isKeepAlive: true,
  282. },
  283. },
  284. {
  285. path: '/statistics/department/detailOverdue',
  286. name: 'statisticsDepartmentDetailOverdue',
  287. component: () => import('@/views/statistics/department/detailOverdue.vue'),
  288. meta: {
  289. title: '部门超期统计明细',
  290. isKeepAlive: true,
  291. },
  292. },
  293. {
  294. path: '/statistics/department/detailDelay',
  295. name: 'statisticsDepartmentDetailDelay',
  296. component: () => import('@/views/statistics/department/detailDelay.vue'),
  297. meta: {
  298. title: '部门延期统计明细',
  299. isKeepAlive: true,
  300. },
  301. },
  302. {
  303. path: '/statistics/department/detailSh',
  304. name: 'statisticsDepartmentDetailSh',
  305. component: () => import('@/views/statistics/department/detailSh.vue'),
  306. meta: {
  307. title: '二次办理统计明细',
  308. isKeepAlive: true,
  309. },
  310. },
  311. {
  312. path: '/statistics/department/detailShSatisfied',
  313. name: 'statisticsDepartmentDetailShSatisfied',
  314. component: () => import('@/views/statistics/department/detailShSatisfied.vue'),
  315. meta: {
  316. title: '二次办理满意度统计明细',
  317. isKeepAlive: true,
  318. },
  319. },
  320. {
  321. path: '/dataShare/taskDetail/:id',
  322. name: 'dataShareTaskDetail',
  323. component: () => import('@/views/dataShare/taskDetail.vue'),
  324. meta: {
  325. title: '推送任务明细',
  326. isKeepAlive: true,
  327. isDynamic: true,
  328. },
  329. },
  330. {
  331. path: '/statistics/order/detailSource',
  332. name: 'statisticsOrderDetailSource',
  333. component: () => import('@/views/statistics/order/detailSource.vue'),
  334. meta: {
  335. title: '信件来源列表',
  336. isKeepAlive: true,
  337. },
  338. },
  339. {
  340. path: '/statistics/order/detailSourceOrder',
  341. name: 'statisticsDetailSourceOrder',
  342. component: () => import('@/views/statistics/order/detailSourceOrder.vue'),
  343. meta: {
  344. title: '信件来源列表明细',
  345. isKeepAlive: true,
  346. },
  347. },
  348. {
  349. path: '/statistics/order/detailSourceTime',
  350. name: 'statisticsOrderDetailSourceTime',
  351. component: () => import('@/views/statistics/order/detailSourceTime.vue'),
  352. meta: {
  353. title: '信件来源分时列表',
  354. isKeepAlive: true,
  355. },
  356. },
  357. {
  358. path: '/statistics/call/detailIndex',
  359. name: 'statisticsCallDetailIndex',
  360. component: () => import('@/views/statistics/call/detailIndex.vue'),
  361. meta: {
  362. title: '话务日期明细',
  363. isKeepAlive: true,
  364. },
  365. },
  366. {
  367. path: '/statistics/order/detailAcceptTime',
  368. name: 'statisticsOrderDetailAcceptTime',
  369. component: () => import('@/views/statistics/order/detailAcceptTime.vue'),
  370. meta: {
  371. title: '受理类型分时统计列表',
  372. isKeepAlive: true,
  373. },
  374. },
  375. {
  376. path: '/statistics/order/detailHotSpotTime',
  377. name: 'statisticsOrderDetailHotspotTime',
  378. component: () => import('@/views/statistics/order/detailHotSpotTime.vue'),
  379. meta: {
  380. title: '热点类型分时统计列表',
  381. isKeepAlive: true,
  382. },
  383. },
  384. {
  385. path: '/statistics/order/detailAreaTime',
  386. name: 'statisticsOrderDetailAreaTime',
  387. component: () => import('@/views/statistics/order/detailAreaTime.vue'),
  388. meta: {
  389. title: '区域分时统计列表',
  390. isKeepAlive: true,
  391. },
  392. },
  393. {
  394. path: '/statistics/department/detailSatisfiedList',
  395. name: 'statisticsDepartmentSatisfiedDetailList',
  396. component: () => import('@/views/statistics/department/detailSatisfiedList.vue'),
  397. meta: {
  398. title: '部门满意度列表明细',
  399. isKeepAlive: true,
  400. },
  401. },
  402. {
  403. path: '/statistics/department/detailHandleList',
  404. name: 'statisticsDepartmentDetailHandleList',
  405. component: () => import('@/views/statistics/department/detailHandleList.vue'),
  406. meta: {
  407. title: '部门办件列表明细',
  408. isKeepAlive: true,
  409. },
  410. },
  411. {
  412. path: '/statistics/department/detailOverdueList',
  413. name: 'statisticsDepartmentDetailOverdueList',
  414. component: () => import('@/views/statistics/department/detailOverdueList.vue'),
  415. meta: {
  416. title: '部门超期列表明细',
  417. isKeepAlive: true,
  418. },
  419. },
  420. {
  421. path: '/statistics/order/detailHotspotArea',
  422. name: 'statisticsOrderDetailHotspotArea',
  423. component: () => import('@/views/statistics/order/detailHotspotArea.vue'),
  424. meta: {
  425. title: '热点统计明细',
  426. isKeepAlive: true,
  427. },
  428. },
  429. {
  430. path: '/judicial/order/add',
  431. name: 'judgeOrderAdd',
  432. component: () => import('@/views/judicial/order/components/orderAdd.vue'),
  433. meta: {
  434. title: '新建工单',
  435. isKeepAlive: true,
  436. },
  437. },{
  438. path: '/statistics/order/detailAcceptTypeList',
  439. name: 'statisticsOrderDetailAcceptTypeList',
  440. component: () => import('@/views/statistics/order/detailAcceptTypeList.vue'),
  441. meta: {
  442. title: '受理类型统计列表',
  443. isKeepAlive: true,
  444. },
  445. },{
  446. path: '/statistics/order/detailAcceptType',
  447. name: 'statisticsDetailAcceptType',
  448. component: () => import('@/views/statistics/order/detailAcceptType.vue'),
  449. meta: {
  450. title: '受理类型统计明细',
  451. isKeepAlive: true,
  452. },
  453. },{
  454. path: '/statistics/order/detailHotspotSatisfied',
  455. name: 'statisticsOrderDetailHotspotSatisfied',
  456. component: () => import('@/views/statistics/order/detailHotspotSatisfied.vue'),
  457. meta: {
  458. title: '热点满意度统计明细',
  459. isKeepAlive: true,
  460. },
  461. },{
  462. path: '/statistics/call/detailIndexTime',
  463. name: 'statisticsCallDetailIndexTime',
  464. component: () => import('@/views/statistics/call/detailIndexTime.vue'),
  465. meta: {
  466. title: '话务时段分析日期',
  467. isKeepAlive: true,
  468. },
  469. },{
  470. path: '/statistics/call/detailIndexCall',
  471. name: 'statisticsCallDetailIndexCall',
  472. component: () => import('@/views/statistics/call/detailIndexCall.vue'),
  473. meta: {
  474. title: '话务时段分析明细',
  475. isKeepAlive: true,
  476. },
  477. },{
  478. path: '/statistics/center/detailReport/:id/:tagsViewName?',
  479. name: 'statisticsCenterDetailReport',
  480. component: () => import('@/views/statistics/center/detail-report.vue'),
  481. meta: {
  482. title: '查看分析报告',
  483. isKeepAlive: true,
  484. isDynamic: true,
  485. },
  486. },{
  487. path: '/statistics/center/detailAcceptCenter',
  488. name: 'statisticsCenterDetailAcceptCenter',
  489. component: () => import('@/views/statistics/center/detailAcceptCenter.vue'),
  490. meta: {
  491. title: '企业专席明细',
  492. isKeepAlive: true,
  493. },
  494. },{
  495. path: '/statistics/center/detailTwist',
  496. name: 'statisticsCenterDetailTwist',
  497. component: () => import('@/views/statistics/center/detailTwist.vue'),
  498. meta: {
  499. title: '扭转明细列表',
  500. isKeepAlive: true,
  501. },
  502. },{
  503. path: '/todo/edit/record',
  504. name: 'todoEditRecord',
  505. component: () => import('@/views/todo/edit/record.vue'),
  506. meta: {
  507. title: '修改记录',
  508. isKeepAlive: true,
  509. },
  510. },{
  511. path: '/statistics/call/detailSeatDate',
  512. name: 'statisticsCallDetailSeatsDate',
  513. component: () => import('@/views/statistics/call/detailSeatDate.vue'),
  514. meta: {
  515. title: '话务时段明细',
  516. isKeepAlive: true,
  517. },
  518. },{
  519. path: '/statistics/center/detailSeatSatisfactionList',
  520. name: 'statisticsCenterDetailSeatSatisfactionList',
  521. component: () => import('@/views/statistics/center/detailSeatSatisfactionList.vue'),
  522. meta: {
  523. title: '坐席满意度明细表',
  524. isKeepAlive: true,
  525. },
  526. },{
  527. path: '/statistics/center/detailSeatSatisfaction',
  528. name: 'statisticsCenterDetailSeatSatisfaction',
  529. component: () => import('@/views/statistics/center/detailSeatSatisfaction.vue'),
  530. meta: {
  531. title: '坐席满意度列表明细',
  532. isKeepAlive: true,
  533. },
  534. },{
  535. path: '/statistics/call/detailSeatsMoth',
  536. name: 'statisticsCallSeatsMothDetail',
  537. component: () => import('@/views/statistics/call/detailSeatsMoth.vue'),
  538. meta: {
  539. title: '通话时段明细',
  540. isKeepAlive: true,
  541. },
  542. },
  543. {
  544. path: '/plan/index/edit/:tagsViewName/:id?',
  545. name: 'planEdit',
  546. component: () => import('@/views/plan/index/edit.vue'),
  547. meta: {
  548. title: '预案库新增/编辑',
  549. isKeepAlive: true,
  550. isDynamic: true,
  551. },
  552. },
  553. {
  554. path: '/plan/index/preview/:tagsViewName/:id/:isAddPv?',
  555. name: 'planPreview',
  556. component: () => import('@/views/plan/index/preview.vue'),
  557. meta: {
  558. title: '预案查看',
  559. isKeepAlive: true,
  560. isDynamic: true,
  561. },
  562. },
  563. {
  564. path: '/case/index/edit/:tagsViewName/:id?',
  565. name: 'caseEdit',
  566. component: () => import('@/views/case/index/edit.vue'),
  567. meta: {
  568. title: '案例库新增/编辑',
  569. isKeepAlive: true,
  570. isDynamic: true,
  571. },
  572. },
  573. {
  574. path: '/case/index/preview/:tagsViewName/:id/:isAddPv?',
  575. name: 'casePreview',
  576. component: () => import('@/views/case/index/preview.vue'),
  577. meta: {
  578. title: '案例查看',
  579. isKeepAlive: true,
  580. isDynamic: true,
  581. },
  582. },
  583. {
  584. path: '/snapshot/inviteCode/detailStatistics',
  585. name: 'snapshotInviteCodeStatisticsDetail',
  586. component: () => import('@/views/snapshot/inviteCode/statistics/components/detail.vue'),
  587. meta: {
  588. title: '邀请码统计明细',
  589. isKeepAlive: true,
  590. },
  591. },
  592. {
  593. path: '/snapshot/statistics/detailStatistics',
  594. name: 'snapshotStatisticsDetail',
  595. component: () => import('@/views/snapshot/statistics/detailStatistics.vue'),
  596. meta: {
  597. title: '随手拍统计明细',
  598. isKeepAlive: true,
  599. },
  600. },
  601. {
  602. path: '/snapshot/statistic/detailHotSubclass',
  603. name: 'snapshotStatisticsDetailHotSubclass',
  604. component: () => import('@/views/snapshot/statistics/detailHotSubclass.vue'),
  605. meta: {
  606. title: '随手拍统计明细',
  607. isKeepAlive: true,
  608. },
  609. },
  610. {
  611. path: '/snapshot/statistic/detailPointList',
  612. name: 'snapshotStatisticsDetailPointList',
  613. component: () => import('@/views/snapshot/statistics/detailPointList.vue'),
  614. meta: {
  615. title: '随手拍积分列表明细',
  616. isKeepAlive: true,
  617. },
  618. },
  619. {
  620. path: '/snapshot/statistic/detailHandleOrder',
  621. name: 'snapshotStatisticsDetailHandleOrder',
  622. component: () => import('@/views/snapshot/statistics/detailHandleOrder.vue'),
  623. meta: {
  624. title: '随手拍办件统计明细',
  625. isKeepAlive: true,
  626. },
  627. },
  628. {
  629. path: '/snapshot/statistic/detailGridHandle',
  630. name: 'snapshotStatisticsDetailGridHandle',
  631. component: () => import('@/views/snapshot/statistics/detailGridHandle.vue'),
  632. meta: {
  633. title: '网格员办理情况明细',
  634. isKeepAlive: true,
  635. },
  636. },
  637. {
  638. path: '/snapshot/statistic/detailCommunity',
  639. name: 'snapshotStatisticsDetailCommunity',
  640. component: () => import('@/views/snapshot/statistics/detailCommunity.vue'),
  641. meta: {
  642. title: '社区统计明细',
  643. isKeepAlive: true,
  644. },
  645. },
  646. {
  647. path: '/snapshot/statistic/detailIndustry',
  648. name: 'snapshotStatisticsDetailIndustry',
  649. component: () => import('@/views/snapshot/statistics/detailIndustry.vue'),
  650. meta: {
  651. title: '行业统计明细',
  652. isKeepAlive: true,
  653. },
  654. },
  655. {
  656. path: '/snapshot/statistic/detailAverageHandleTime',
  657. name: 'snapshotStatisticsDetailAverageHandleTime',
  658. component: () => import('@/views/snapshot/statistics/detailAverageHandleTime.vue'),
  659. meta: {
  660. title: '部门平均办理时间明细',
  661. isKeepAlive: true,
  662. },
  663. },
  664. {
  665. path: '/snapshot/statistic/detailCheck',
  666. name: 'snapshotStatisticsDetailCheck',
  667. component: () => import('@/views/snapshot/statistics/detailCheck.vue'),
  668. meta: {
  669. title: '检查合规统计详情',
  670. isKeepAlive: true,
  671. },
  672. },
  673. {
  674. path: '/snapshot/statistic/detailRedo',
  675. name: 'snapshotStatisticsDetailRedo',
  676. component: () => import('@/views/snapshot/statistics/detailRedo.vue'),
  677. meta: {
  678. title: '重办件明细',
  679. isKeepAlive: true,
  680. },
  681. },
  682. {
  683. path: '/snapshot/statistics/detailReAudit',
  684. name: 'snapshotStatisticsDetailReAudit',
  685. component: () => import('@/views/snapshot/statistics/detailReAudit.vue'),
  686. meta: {
  687. title: '部门分类办件明细',
  688. isKeepAlive: true,
  689. },
  690. },
  691. {
  692. path: '/statistics/center/detailOverdueReturn',
  693. name: 'statisticsCenterDetailOverdueReturn',
  694. component: () => import('@/views/statistics/center/detailOverdueReturn.vue'),
  695. meta: {
  696. title: '超期退回统计明细',
  697. isKeepAlive: true,
  698. },
  699. },
  700. {
  701. path: '/statistics/center/detailSeatsBack',
  702. name: 'statisticsCenterDetailSeatsBack',
  703. component: () => import('@/views/statistics/center/detailSeatsBack.vue'),
  704. meta: {
  705. title: '坐席退回统计明细',
  706. isKeepAlive: true,
  707. },
  708. },
  709. {
  710. path: '/statistics/center/detailOrderNum',
  711. name: 'statisticsCenterDetailOrderNum',
  712. component: () => import('@/views/statistics/center/detailOrderNum.vue'),
  713. meta: {
  714. title: '工单业务量统计明细',
  715. isKeepAlive: true,
  716. },
  717. },
  718. {
  719. path: '/statistics/department/detailDpReturn',
  720. name: 'statisticsDepartmentDetailDpReturn',
  721. component: () => import('@/views/statistics/department/detailDpReturn.vue'),
  722. meta: {
  723. title: '部门退件明细',
  724. isKeepAlive: true,
  725. },
  726. },
  727. {
  728. path: '/statistics/order/detailVisitContent',
  729. name: 'statisticsOrderDetailVisitContent',
  730. component: () => import('@/views/statistics/order/detailVisitContent.vue'),
  731. meta: {
  732. title: '智能回访不满意明细',
  733. isKeepAlive: true,
  734. },
  735. },
  736. {
  737. path: '/statistics/order/detailVisitContentZG',
  738. name: 'statisticsOrderDetailVisitContentZG',
  739. component: () => import('@/views/statistics/order/detailVisitContentZG.vue'),
  740. meta: {
  741. title: '回访统计明细',
  742. isKeepAlive: true,
  743. },
  744. },
  745. {
  746. path: '/examTrain/questionBank/edit/:tagsViewName/:id?',
  747. name: 'questionEdit',
  748. component: () => import('@/views/examTrain/questionBank/edit.vue'),
  749. meta: {
  750. title: '试题新增/编辑',
  751. isKeepAlive: true,
  752. isDynamic: true,
  753. },
  754. },
  755. {
  756. path: '/examTrain/exam/testPaper/edit/:tagsViewName/:id?',
  757. name: 'testPaperEdit',
  758. component: () => import('@/views/examTrain/exam/testPaper/edit.vue'),
  759. meta: {
  760. title: '试卷管理新增/编辑',
  761. isKeepAlive: true,
  762. isDynamic: true,
  763. },
  764. },
  765. {
  766. path: '/examTrain/exam/examManage/edit/:tagsViewName/:id?',
  767. name: 'examManageEdit',
  768. component: () => import('@/views/examTrain/exam/examManage/edit.vue'),
  769. meta: {
  770. title: '考试管理新增/编辑',
  771. isKeepAlive: true,
  772. isDynamic: true,
  773. },
  774. },
  775. {
  776. path: '/examTrain/exam/marking/mark/:examId/:tagsViewName/:isView?',
  777. name: 'examTrainExamMarkingEdit',
  778. component: () => import('@/views/examTrain/exam/marking/components/Exam-Marking.vue'),
  779. meta: {
  780. title: '阅卷',
  781. isKeepAlive: true,
  782. isDynamic: true,
  783. },
  784. },
  785. ];
  786. /**
  787. * 定义404、401界面
  788. * @link 参考:https://next.router.vuejs.org/zh/guide/essentials/history-mode.html#netlify
  789. */
  790. export const notFoundAndNoPower = [
  791. {
  792. path: '/401',
  793. name: 'noPower',
  794. component: () => import('@/views/error/401.vue'),
  795. meta: {
  796. title: '无权限',
  797. isHide: true,
  798. },
  799. },
  800. {
  801. path: '/:pathMatch(.*)',
  802. name: 'notFound',
  803. component: () => import('@/views/error/404.vue'),
  804. meta: {
  805. title: '404',
  806. isHide: true,
  807. },
  808. },
  809. ];
  810. /**
  811. * 定义静态路由(默认路由)
  812. * 此路由不要动,前端添加路由的话,请在 `dynamicRoutes 数组` 中添加
  813. * @description 前端控制直接改 dynamicRoutes 中的路由,后端控制不需要修改,请求接口路由数据时,会覆盖 dynamicRoutes 第一个顶级 children 的内容(全屏,不包含 layout 中的路由出口)
  814. * @returns 返回路由菜单数据
  815. */
  816. export const staticRoutes: Array<RouteRecordRaw> = [
  817. {
  818. path: '/login',
  819. name: 'login',
  820. component: () => import('@/views/login/index.vue'),
  821. meta: {
  822. title: '登录',
  823. },
  824. },
  825. {
  826. path: '/resetPwd',
  827. name: 'resetPwd',
  828. component: () => import('@/views/resetPwd/index.vue'),
  829. meta: {
  830. title: '重置密码',
  831. },
  832. },
  833. {
  834. path: '/tableAudio',
  835. name: 'tableAudio',
  836. component: () => import('@/components/PlayRecord/tableAudio.vue'),
  837. meta: {
  838. title: '播放录音',
  839. },
  840. },
  841. ];