remaining.ts 41 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622
  1. import { Layout } from '@/utils/routerHelper'
  2. const { t } = useI18n()
  3. /**
  4. * redirect: noredirect 当设置 noredirect 的时候该路由在面包屑导航中不可被点击
  5. * name:'router-name' 设定路由的名字,一定要填写不然使用<keep-alive>时会出现各种问题
  6. * meta : {
  7. hidden: true 当设置 true 的时候该路由不会再侧边栏出现 如404,login等页面(默认 false)
  8. alwaysShow: true 当你一个路由下面的 children 声明的路由大于1个时,自动会变成嵌套的模式,
  9. 只有一个时,会将那个子路由当做根路由显示在侧边栏,
  10. 若你想不管路由下面的 children 声明的个数都显示你的根路由,
  11. 你可以设置 alwaysShow: true,这样它就会忽略之前定义的规则,
  12. 一直显示根路由(默认 false)
  13. title: 'title' 设置该路由在侧边栏和面包屑中展示的名字
  14. icon: 'svg-name' 设置该路由的图标
  15. noCache: true 如果设置为true,则不会被 <keep-alive> 缓存(默认 false)
  16. breadcrumb: false 如果设置为false,则不会在breadcrumb面包屑中显示(默认 true)
  17. affix: true 如果设置为true,则会一直固定在tag项中(默认 false)
  18. noTagsView: true 如果设置为true,则不会出现在tag中(默认 false)
  19. activeMenu: '/dashboard' 显示高亮的路由路径
  20. followAuth: '/dashboard' 跟随哪个路由进行权限过滤
  21. canTo: true 设置为true即使hidden为true,也依然可以进行路由跳转(默认 false)
  22. }
  23. **/
  24. const remainingRouter: AppRouteRecordRaw[] = [
  25. {
  26. path: '/redirect',
  27. component: Layout,
  28. name: 'Redirect',
  29. children: [
  30. {
  31. path: '/redirect/:path(.*)',
  32. name: 'Redirect',
  33. component: () => import('@/views/Redirect/Redirect.vue'),
  34. meta: {}
  35. }
  36. ],
  37. meta: {
  38. hidden: true,
  39. noTagsView: true
  40. }
  41. },
  42. {
  43. path: '/',
  44. component: Layout,
  45. redirect: '/index',
  46. name: 'Home',
  47. meta: {},
  48. children: [
  49. {
  50. path: 'index',
  51. component: () => import('@/views/Home/Index.vue'),
  52. name: 'Index',
  53. meta: {
  54. title: t('router.home'),
  55. icon: 'ep:home-filled',
  56. noCache: false,
  57. affix: true
  58. }
  59. }
  60. ]
  61. },
  62. {
  63. path: '/dingding',
  64. component: () => import('@/views/pms/dingding.vue'),
  65. meta:{
  66. hidden: true,
  67. }
  68. },
  69. {
  70. path: '/deviceattrstemplate',
  71. component: Layout,
  72. name: 'DeviceAttrsCenter',
  73. meta: {
  74. hidden: true
  75. },
  76. children: [
  77. {
  78. path: 'template/detail/:id',
  79. component: () => import('@/views/pms/devicetemplate/detail/attrsModel/index.vue'),
  80. name: 'DeviceAttrTemplateModel',
  81. meta: {
  82. title: '设备属性模板详情',
  83. noCache: false,
  84. hidden: true,
  85. canTo: true,
  86. activeMenu: '/template/info'
  87. }
  88. }
  89. ]
  90. },
  91. {
  92. path: '/modelattrstemplate',
  93. component: Layout,
  94. name: 'ModelAttrsCenter',
  95. meta: {
  96. hidden: true
  97. },
  98. children: [
  99. {
  100. path: 'template/detail/:id',
  101. component: () => import('@/views/pms/modeltemplate/detail/attrsModel/index.vue'),
  102. name: 'ModelAttrTemplate',
  103. meta: {
  104. title: '属性信息详情',
  105. noCache: false,
  106. hidden: true,
  107. canTo: true,
  108. activeMenu: '/template/info'
  109. }
  110. }
  111. ]
  112. },
  113. {
  114. path: '/iotProjectInfo',
  115. component: Layout,
  116. name: 'IotProjectInfo',
  117. meta: {
  118. hidden: true
  119. },
  120. children: [
  121. {
  122. path: 'project/info/:type/:id?(\\d+)',
  123. component: () => import('@/views/pms/iotprojectinfo/IotProjectInfoForm.vue'),
  124. name: 'IotProjectInfo',
  125. meta: {
  126. title: '添加项目信息',
  127. noCache: false,
  128. hidden: true,
  129. canTo: true,
  130. activeMenu: '/project/info'
  131. }
  132. }
  133. ]
  134. },
  135. {
  136. path: '/iotProjectTask',
  137. component: Layout,
  138. name: 'IotProjectTaskInfo',
  139. meta: {
  140. hidden: true
  141. },
  142. children: [
  143. {
  144. path: 'project/task/:type/:id?(\\d+)/:projectId?',
  145. component: () => import('@/views/pms/iotprojecttask/IotProjectTaskForm.vue'),
  146. name: 'IotProjectTaskInfo',
  147. meta: {
  148. title: '拆分',
  149. noCache: false,
  150. hidden: true,
  151. canTo: true,
  152. activeMenu: '/project/task'
  153. }
  154. }
  155. ]
  156. },
  157. {
  158. path: '/fillOrderInfo',
  159. component: Layout,
  160. name: 'FillOrderInfo',
  161. meta: {
  162. hidden: true
  163. },
  164. children: [
  165. {
  166. path: 'template/detail/:id',
  167. component: () => import('@/views/pms/iotopeationfill/index1.vue'),
  168. name: 'FillOrderInfo',
  169. meta: {
  170. title: '填写信息详情',
  171. noCache: false,
  172. hidden: true,
  173. canTo: true,
  174. activeMenu: '/template/info'
  175. }
  176. },
  177. {
  178. path: 'template/detail/:id/:deviceid/:status/:deptid/:createtime',
  179. component: () => import('@/views/pms/device/record/RecordInfo.vue'),
  180. name: 'FillOrderInfoDevice',
  181. meta: {
  182. title: '详情',
  183. noCache: false,
  184. hidden: true,
  185. canTo: true,
  186. activeMenu: '/template/info'
  187. }
  188. }
  189. ]
  190. },
  191. {
  192. path: '/iotpms/iotdevicepms', // 商品中心
  193. component: Layout,
  194. name: 'PmsDeviceCenter',
  195. meta: {
  196. hidden: true
  197. },
  198. children: [
  199. {
  200. path: 'device/detail/add/:type/:deptId',
  201. component: () => import('@/views/pms/device/IotDeviceForm.vue'),
  202. name: 'DeviceDetailAdd',
  203. meta: {
  204. noCache: false,
  205. hidden: true,
  206. canTo: true,
  207. icon: 'ep:add',
  208. title: '设备台账添加',
  209. activeMenu: '/device/base'
  210. }
  211. },
  212. {
  213. path: 'device/detail/add',
  214. component: () => import('@/views/pms/device/IotDeviceFormAdd.vue'),
  215. name: 'DeviceDetailAddd',
  216. meta: {
  217. noCache: false,
  218. hidden: true,
  219. canTo: true,
  220. icon: 'ep:add',
  221. title: '设备台账添加',
  222. activeMenu: '/device/base'
  223. }
  224. },
  225. {
  226. path: 'device/detail/edit/:type/:id(\\d+)',
  227. component: () => import('@/views/pms/device/IotDeviceForm.vue'),
  228. name: 'DeviceDetailEdit',
  229. meta: {
  230. noCache: true,
  231. hidden: true,
  232. canTo: true,
  233. icon: 'ep:edit',
  234. title: '设备台账编辑',
  235. activeMenu: '/device/base'
  236. }
  237. },{
  238. path: 'device/detail/:id',
  239. component: () => import('@/views/pms/device/DeviceInfo.vue'),
  240. name: 'DeviceDetailInfo',
  241. meta: {
  242. noCache: false,
  243. hidden: true,
  244. canTo: true,
  245. icon: 'ep:info',
  246. title: '设备台账详情',
  247. activeMenu: '/device/info'
  248. }
  249. },{
  250. path: 'tddevice/detail/:id/:ifInline/:time/:name/:code/:dept',
  251. component: () => import('@/views/pms/device/monitor/TdDeviceInfo.vue'),
  252. name: 'TdDeviceDetail',
  253. meta: {
  254. noCache: false,
  255. hidden: true,
  256. canTo: true,
  257. icon: 'ep:info',
  258. title: '监控详情',
  259. activeMenu: '/device/info'
  260. }
  261. },{
  262. path: 'device/upload/:id',
  263. component: () => import('@/views/pms/device/DeviceUpload.vue'),
  264. name: 'DeviceUpload',
  265. meta: {
  266. noCache: false,
  267. hidden: true,
  268. canTo: true,
  269. icon: 'ep:info',
  270. title: '设备台账资料上传',
  271. activeMenu: '/device/upload'
  272. }
  273. },{
  274. path: 'device/bom/:id',
  275. component: () => import('@/views/pms/device/bom/BomInfo.vue'),
  276. name: 'DeviceBom',
  277. meta: {
  278. noCache: false,
  279. hidden: true,
  280. canTo: true,
  281. icon: 'ep:info',
  282. title: '设备BOM',
  283. activeMenu: '/device/bom'
  284. }
  285. },
  286. {
  287. path: 'device/person',
  288. component: () => import('@/views/pms/device/personlog/ConfigDevicePerson.vue'),
  289. name: 'ConfigDevicePerson',
  290. meta: {
  291. noCache: false,
  292. hidden: true,
  293. canTo: true,
  294. icon: 'ep:add',
  295. title: '设备责任人',
  296. activeMenu: '/device/person'
  297. }
  298. },
  299. {
  300. path: 'device/status',
  301. component: () => import('@/views/pms/device/statuslog/ConfigDeviceStatus.vue'),
  302. name: 'ConfigDeviceStatus',
  303. meta: {
  304. noCache: false,
  305. hidden: true,
  306. canTo: true,
  307. icon: 'ep:add',
  308. title: '调整设备状态',
  309. activeMenu: '/device/status'
  310. }
  311. },
  312. {
  313. path: 'device/allot',
  314. component: () => import('@/views/pms/device/allotlog/ConfigDeviceAllot.vue'),
  315. name: 'ConfigDeviceAllot',
  316. meta: {
  317. noCache: false,
  318. hidden: true,
  319. canTo: true,
  320. icon: 'ep:add',
  321. title: '设备调拨',
  322. activeMenu: '/device/allot'
  323. }
  324. }
  325. ]
  326. },
  327. {
  328. path: '/iotpms/iotlockstock',
  329. component: Layout,
  330. name: 'PmsLockStockCenter',
  331. meta: {
  332. hidden: true
  333. },
  334. children: [
  335. {
  336. path: 'lockstock',
  337. component: () => import('@/views/pms/iotlockstock/index.vue'),
  338. name: 'IotLockStock',
  339. meta: {
  340. noCache: false,
  341. hidden: true,
  342. canTo: true,
  343. icon: 'ep:menu',
  344. title: '本地库存',
  345. activeMenu: '/lockstock/index'
  346. }
  347. },
  348. {
  349. path: 'lockstock/add',
  350. component: () => import('@/views/pms/iotlockstock/IotAddToStock.vue'),
  351. name: 'LockStockAdd',
  352. meta: {
  353. noCache: false,
  354. hidden: true,
  355. canTo: true,
  356. icon: 'ep:add',
  357. title: '手工入库',
  358. activeMenu: '/lockstock/add'
  359. }
  360. },
  361. {
  362. path: 'lockstock/edit/:id(\\d+)',
  363. component: () => import('@/views/pms/iotlockstock/IotAddToStock.vue'),
  364. name: 'LockStockEdit',
  365. meta: {
  366. noCache: true,
  367. hidden: true,
  368. canTo: true,
  369. icon: 'ep:edit',
  370. title: '修改入库',
  371. activeMenu: '/lockstock/edit'
  372. }
  373. }
  374. ]
  375. },
  376. {
  377. path: '/iotpms/iotsapstock',
  378. component: Layout,
  379. name: 'PmsSapStockCenter',
  380. meta: {
  381. hidden: true
  382. },
  383. children: [
  384. {
  385. path: 'sapstock',
  386. component: () => import('@/views/pms/iotsapstock/index.vue'),
  387. name: 'IotSapStock',
  388. meta: {
  389. noCache: false,
  390. hidden: true,
  391. canTo: true,
  392. icon: 'ep:menu',
  393. title: 'SAP库存',
  394. activeMenu: '/sapstock/index'
  395. }
  396. },
  397. {
  398. path: 'sapstock/config',
  399. component: () => import('@/views/pms/iotsapstock/IotSapStockConfig.vue'),
  400. name: 'IotSapStockConfig',
  401. meta: {
  402. noCache: false,
  403. hidden: true,
  404. canTo: true,
  405. icon: 'ep:add',
  406. title: '配置安全库存',
  407. activeMenu: '/sapstock/config'
  408. }
  409. },
  410. {
  411. path: 'sapstock/safe',
  412. component: () => import('@/views/pms/iotsapstock/IotConfigSafeStock.vue'),
  413. name: 'IotConfigSafeStock',
  414. meta: {
  415. noCache: false,
  416. hidden: true,
  417. canTo: true,
  418. icon: 'ep:add',
  419. title: '配置安全库存',
  420. activeMenu: '/sapstock/safe'
  421. }
  422. },
  423. ]
  424. },
  425. {
  426. path: '/iotpms/iotmaintenanceplan',
  427. component: Layout,
  428. name: 'PmsMaintenanceCenter',
  429. meta: {
  430. hidden: true
  431. },
  432. children: [
  433. {
  434. path: 'maintenanceplan',
  435. component: () => import('@/views/pms/maintenance/index.vue'),
  436. name: 'IotMaintenancePlan',
  437. meta: {
  438. noCache: false,
  439. hidden: true,
  440. canTo: true,
  441. icon: 'ep:menu',
  442. title: '保养计划',
  443. activeMenu: '/maintenanceplan/index'
  444. }
  445. },
  446. {
  447. path: 'maintenanceplan/add',
  448. component: () => import('@/views/pms/maintenance/IotMaintenancePlan.vue'),
  449. name: 'IotAddMainPlan',
  450. meta: {
  451. noCache: false,
  452. hidden: true,
  453. canTo: true,
  454. icon: 'ep:add',
  455. title: '新增保养计划',
  456. activeMenu: '/maintenanceplan/add'
  457. }
  458. },
  459. {
  460. path: 'maintenanceplan/edit/:id(\\d+)',
  461. component: () => import('@/views/pms/maintenance/IotMaintenancePlan.vue'),
  462. name: 'IotEditMainPlan',
  463. meta: {
  464. noCache: true,
  465. hidden: true,
  466. canTo: true,
  467. icon: 'ep:edit',
  468. title: '修改保养计划',
  469. activeMenu: '/maintenanceplan/edit'
  470. }
  471. },
  472. {
  473. path: 'maintenanceplan/detail/:id(\\d+)',
  474. component: () => import('@/views/pms/maintenance/IotMaintenancePlanDetail.vue'),
  475. name: 'IotMaintenancePlanDetail',
  476. meta: {
  477. noCache: true,
  478. hidden: true,
  479. canTo: true,
  480. icon: 'ep:edit',
  481. title: '保养计划详情',
  482. activeMenu: '/maintenanceplan/detail'
  483. }
  484. }
  485. ]
  486. },
  487. {
  488. path: '/iotpms/iotmainworkorder',
  489. component: Layout,
  490. name: 'PmsMainWorkOrderCenter',
  491. meta: {
  492. hidden: true
  493. },
  494. children: [
  495. {
  496. path: 'mainworkorder',
  497. component: () => import('@/views/pms/iotmainworkorder/index.vue'),
  498. name: 'IotMainWorkOrder',
  499. meta: {
  500. noCache: false,
  501. hidden: true,
  502. canTo: true,
  503. icon: 'ep:menu',
  504. title: '保养工单',
  505. activeMenu: '/mainworkorder/index'
  506. }
  507. },
  508. {
  509. path: 'mainworkorder/bom/:id(\\d+)',
  510. component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrder.vue'),
  511. name: 'IotMainWorkOrderBom',
  512. meta: {
  513. noCache: false,
  514. hidden: true,
  515. canTo: true,
  516. icon: 'ep:add',
  517. title: '填报保养工单',
  518. activeMenu: '/mainworkorder/bom'
  519. }
  520. },
  521. {
  522. path: 'mainworkorder/add',
  523. component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderAdd.vue'),
  524. name: 'IotMainWorkOrderAdd',
  525. meta: {
  526. noCache: false,
  527. hidden: true,
  528. canTo: true,
  529. icon: 'ep:add',
  530. title: '新增保养工单',
  531. activeMenu: '/mainworkorder/add'
  532. }
  533. },
  534. {
  535. path: 'mainworkorder/detail/:id(\\d+)',
  536. component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderDetail.vue'),
  537. name: 'IotMainWorkOrderDetail',
  538. meta: {
  539. noCache: false,
  540. hidden: true,
  541. canTo: true,
  542. icon: 'ep:add',
  543. title: '保养工单详情',
  544. activeMenu: '/mainworkorder/detail'
  545. }
  546. },
  547. {
  548. path: 'mainworkorder/device/detail/:orderId/:deviceId(\\d+)',
  549. component: () => import('@/views/pms/device/maintenance/MaintenanceDetail.vue'),
  550. name: 'IotDeviceMainWorkOrderDetail',
  551. meta: {
  552. noCache: false,
  553. hidden: true,
  554. canTo: true,
  555. icon: 'ep:add',
  556. title: '保养工单详情',
  557. activeMenu: '/mainworkorder/detail'
  558. }
  559. }
  560. ]
  561. },
  562. {
  563. path: '/iotpms/iotmaterialreq',
  564. component: Layout,
  565. name: 'PmsMaterialReqCenter',
  566. meta: {
  567. hidden: true
  568. },
  569. children: [
  570. {
  571. path: 'materialreq',
  572. component: () => import('@/views/pms/iotmaterialrequisition/index.vue'),
  573. name: 'IotMaterialRequisition',
  574. meta: {
  575. noCache: false,
  576. hidden: true,
  577. canTo: true,
  578. icon: 'ep:menu',
  579. title: '物料领用',
  580. activeMenu: '/materialreq/index'
  581. }
  582. },
  583. {
  584. path: 'materialreq/add',
  585. component: () => import('@/views/pms/iotmaterialrequisition/IotMaterialRequisitionAdd.vue'),
  586. name: 'IotMaterialRequisitionAdd',
  587. meta: {
  588. noCache: false,
  589. hidden: true,
  590. canTo: true,
  591. icon: 'ep:add',
  592. title: '新增物料领用',
  593. activeMenu: '/materialreq/add'
  594. }
  595. },
  596. {
  597. path: 'materialreq/detail/:id(\\d+)',
  598. component: () => import('@/views/pms/iotmaterialrequisition/IotMaterialReqDetail.vue'),
  599. name: 'IotMaterialReqDetail',
  600. meta: {
  601. noCache: false,
  602. hidden: true,
  603. canTo: true,
  604. icon: 'ep:view',
  605. title: '领用单详情',
  606. activeMenu: '/materialreq/detail'
  607. }
  608. },
  609. ]
  610. },
  611. {
  612. path: '/iotpms/maincalendar',
  613. component: Layout,
  614. name: 'PmsMainCalendarCenter',
  615. meta: {
  616. hidden: true
  617. },
  618. children: [
  619. {
  620. path: 'maintenancecalendar',
  621. component: () => import('@/views/pms/iotmaincalendar/index.vue'),
  622. name: 'MaintenanceCalendar',
  623. meta: {
  624. noCache: false,
  625. hidden: true,
  626. canTo: true,
  627. icon: 'ep:menu',
  628. title: '保养台历',
  629. activeMenu: '/maintenancecalendar/index'
  630. }
  631. }
  632. ]
  633. },
  634. {
  635. path: '/iotpms/iotmaintain',
  636. component: Layout,
  637. name: 'PmsMaintainCenter',
  638. meta: {
  639. hidden: true
  640. },
  641. children: [
  642. {
  643. path: 'maintain/add',
  644. component: () => import('@/views/pms/maintain/IotMaintain.vue'),
  645. name: 'MaintainAdd',
  646. meta: {
  647. noCache: false,
  648. hidden: true,
  649. canTo: true,
  650. icon: 'ep:add',
  651. title: '维修工单添加',
  652. activeMenu: '/maintain/add'
  653. }
  654. },
  655. {
  656. path: 'maintain/edit/:id(\\d+)',
  657. component: () => import('@/views/pms/maintain/IotMaintain.vue'),
  658. name: 'MaintainEdit',
  659. meta: {
  660. noCache: true,
  661. hidden: true,
  662. canTo: true,
  663. icon: 'ep:edit',
  664. title: '维修工单编辑',
  665. activeMenu: '/maintain/edit'
  666. }
  667. },{
  668. path: 'maintain/detail/:id(\\d+)',
  669. component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
  670. name: 'MaintainDetail',
  671. meta: {
  672. noCache: false,
  673. hidden: true,
  674. canTo: true,
  675. icon: 'ep:add',
  676. title: '维修工单详情',
  677. activeMenu: '/maintain/detail'
  678. }
  679. },
  680. ]
  681. },
  682. {
  683. path: '/iotpms/iotinspectroute',
  684. component: Layout,
  685. name: 'PmsInspectRouteCenter',
  686. meta: {
  687. hidden: true
  688. },
  689. children: [
  690. {
  691. path: 'route/add',
  692. component: () => import('@/views/pms/inspect/route/IotInspectRoute.vue'),
  693. name: 'RouteAdd',
  694. meta: {
  695. noCache: false,
  696. hidden: true,
  697. canTo: true,
  698. icon: 'ep:add',
  699. title: '巡检路线添加',
  700. activeMenu: '/route/add'
  701. }
  702. },
  703. {
  704. path: 'route/edit/:id(\\d+)',
  705. component: () => import('@/views/pms/inspect/route/IotInspectRoute.vue'),
  706. name: 'RouteEdit',
  707. meta: {
  708. noCache: true,
  709. hidden: true,
  710. canTo: true,
  711. icon: 'ep:edit',
  712. title: '巡检路线编辑',
  713. activeMenu: '/route/edit'
  714. }
  715. // }
  716. // ,{
  717. // path: 'route/detail/:id(\\d+)',
  718. // component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
  719. // name: 'InspectRouteDetail',
  720. // meta: {
  721. // noCache: false,
  722. // hidden: true,
  723. // canTo: true,
  724. // icon: 'ep:add',
  725. // title: '巡检路线详情',
  726. // activeMenu: '/route/detail'
  727. // }
  728. },
  729. ]
  730. },
  731. {
  732. path: '/iotpms/iotinspectplan',
  733. component: Layout,
  734. name: 'PmsInspectPlanCenter',
  735. meta: {
  736. hidden: true
  737. },
  738. children: [
  739. {
  740. path: 'inspect/plan/add',
  741. component: () => import('@/views/pms/inspect/plan/IotInspectPlan.vue'),
  742. name: 'InspectPlanAdd',
  743. meta: {
  744. noCache: false,
  745. hidden: true,
  746. canTo: true,
  747. icon: 'ep:add',
  748. title: '巡检计划添加',
  749. activeMenu: '/inspect/plan/add'
  750. }
  751. },
  752. {
  753. path: 'inspect/plan/edit/:id(\\d+)',
  754. component: () => import('@/views/pms/inspect/plan/IotInspectPlan.vue'),
  755. name: 'InspectPlanEdit',
  756. meta: {
  757. noCache: true,
  758. hidden: true,
  759. canTo: true,
  760. icon: 'ep:edit',
  761. title: '巡检计划编辑',
  762. activeMenu: '/inspect/plan/edit'
  763. }
  764. // }
  765. // ,{
  766. // path: 'route/detail/:id(\\d+)',
  767. // component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
  768. // name: 'InspectRouteDetail',
  769. // meta: {
  770. // noCache: false,
  771. // hidden: true,
  772. // canTo: true,
  773. // icon: 'ep:add',
  774. // title: '巡检路线详情',
  775. // activeMenu: '/route/detail'
  776. // }
  777. },
  778. ]
  779. },
  780. {
  781. path: '/iotpms/iotinspectorder',
  782. component: Layout,
  783. name: 'PmsInspectOrderCenter',
  784. meta: {
  785. hidden: true
  786. },
  787. children: [
  788. {
  789. path: 'inspect/order/add',
  790. component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
  791. name: 'InspectOrderAdd',
  792. meta: {
  793. noCache: false,
  794. hidden: true,
  795. canTo: true,
  796. icon: 'ep:add',
  797. title: '巡检工单填写',
  798. activeMenu: '/inspect/order/add'
  799. }
  800. },
  801. {
  802. path: 'inspect/order/edit/:id(\\d+)',
  803. component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
  804. name: 'InspectOrderEdit',
  805. meta: {
  806. noCache: true,
  807. hidden: true,
  808. canTo: true,
  809. icon: 'ep:edit',
  810. title: '巡检计划编辑',
  811. activeMenu: '/inspect/order/edit'
  812. }
  813. }
  814. ,{
  815. path: '/inspect/order/detail/:id(\\d+)',
  816. component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
  817. name: 'InspectOrderDetail',
  818. meta: {
  819. noCache: false,
  820. hidden: true,
  821. canTo: true,
  822. icon: 'ep:add',
  823. title: '巡检工单详情',
  824. activeMenu: '/inspect/order/detail'
  825. }
  826. },{
  827. path: '/inspect/order/write/:id(\\d+)',
  828. component: () => import('@/views/pms/inspect/order/WriteOrder.vue'),
  829. name: 'InspectOrderWrite',
  830. meta: {
  831. noCache: false,
  832. hidden: true,
  833. canTo: true,
  834. icon: 'ep:add',
  835. title: '巡检工单填写',
  836. activeMenu: '/inspect/order/write'
  837. }
  838. }
  839. ]
  840. },
  841. {
  842. path: '/failure',
  843. component: Layout,
  844. name: 'failure',
  845. meta: {
  846. hidden: true
  847. },
  848. children: [
  849. {
  850. path: 'failure/detail/:id',
  851. component: () => import('@/views/pms/failure/FailureInfo.vue'),
  852. name: 'FailureDetail',
  853. meta: {
  854. noCache: true,
  855. hidden: true,
  856. canTo: true,
  857. title: '查看故障详情',
  858. activeMenu: '/failure/detail'
  859. }
  860. }
  861. ]
  862. },
  863. {
  864. path: '/user',
  865. component: Layout,
  866. name: 'UserInfo',
  867. meta: {
  868. hidden: true
  869. },
  870. children: [
  871. {
  872. path: 'profile',
  873. component: () => import('@/views/Profile/Index.vue'),
  874. name: 'Profile',
  875. meta: {
  876. canTo: true,
  877. hidden: true,
  878. noTagsView: false,
  879. icon: 'ep:user',
  880. title: t('common.profile')
  881. }
  882. },
  883. {
  884. path: 'notify-message',
  885. component: () => import('@/views/system/notify/my/index.vue'),
  886. name: 'MyNotifyMessage',
  887. meta: {
  888. canTo: true,
  889. hidden: true,
  890. noTagsView: false,
  891. icon: 'ep:message',
  892. title: '我的站内信'
  893. }
  894. }
  895. ]
  896. },
  897. {
  898. path: '/dict',
  899. component: Layout,
  900. name: 'dict',
  901. meta: {
  902. hidden: true
  903. },
  904. children: [
  905. {
  906. path: 'type/data/:dictType',
  907. component: () => import('@/views/system/dict/data/index.vue'),
  908. name: 'SystemDictData',
  909. meta: {
  910. title: '字典数据',
  911. noCache: true,
  912. hidden: true,
  913. canTo: true,
  914. icon: '',
  915. activeMenu: '/system/dict'
  916. }
  917. }
  918. ]
  919. },
  920. {
  921. path: '/codegen',
  922. component: Layout,
  923. name: 'CodegenEdit',
  924. meta: {
  925. hidden: true
  926. },
  927. children: [
  928. {
  929. path: 'edit',
  930. component: () => import('@/views/infra/codegen/EditTable.vue'),
  931. name: 'InfraCodegenEditTable',
  932. meta: {
  933. noCache: true,
  934. hidden: true,
  935. canTo: true,
  936. icon: 'ep:edit',
  937. title: '修改生成配置',
  938. activeMenu: 'infra/codegen/index'
  939. }
  940. }
  941. ]
  942. },
  943. {
  944. path: '/job',
  945. component: Layout,
  946. name: 'JobL',
  947. meta: {
  948. hidden: true
  949. },
  950. children: [
  951. {
  952. path: 'job-log',
  953. component: () => import('@/views/infra/job/logger/index.vue'),
  954. name: 'InfraJobLog',
  955. meta: {
  956. noCache: true,
  957. hidden: true,
  958. canTo: true,
  959. icon: 'ep:edit',
  960. title: '调度日志',
  961. activeMenu: 'infra/job/index'
  962. }
  963. }
  964. ]
  965. },
  966. {
  967. path: '/login',
  968. component: () => import('@/views/Login/Login.vue'),
  969. name: 'Login',
  970. meta: {
  971. hidden: true,
  972. title: t('router.login'),
  973. noTagsView: true
  974. }
  975. },
  976. {
  977. path: '/sso',
  978. component: () => import('@/views/Login/Login.vue'),
  979. name: 'SSOLogin',
  980. meta: {
  981. hidden: true,
  982. title: t('router.login'),
  983. noTagsView: true
  984. }
  985. },
  986. {
  987. path: '/social-login',
  988. component: () => import('@/views/Login/SocialLogin.vue'),
  989. name: 'SocialLogin',
  990. meta: {
  991. hidden: true,
  992. title: t('router.socialLogin'),
  993. noTagsView: true
  994. }
  995. },
  996. {
  997. path: '/403',
  998. component: () => import('@/views/Error/403.vue'),
  999. name: 'NoAccess',
  1000. meta: {
  1001. hidden: true,
  1002. title: '403',
  1003. noTagsView: true
  1004. }
  1005. },
  1006. {
  1007. path: '/404',
  1008. component: () => import('@/views/Error/404.vue'),
  1009. name: 'NoFound',
  1010. meta: {
  1011. hidden: true,
  1012. title: '404',
  1013. noTagsView: true
  1014. }
  1015. },
  1016. {
  1017. path: '/500',
  1018. component: () => import('@/views/Error/500.vue'),
  1019. name: 'Error',
  1020. meta: {
  1021. hidden: true,
  1022. title: '500',
  1023. noTagsView: true
  1024. }
  1025. },
  1026. {
  1027. path: '/supplier/product', // 商品中心
  1028. component: Layout,
  1029. name: 'SupplierCenter',
  1030. meta: {
  1031. hidden: true
  1032. },
  1033. children: [
  1034. {
  1035. path: 'supplier/detail/add',
  1036. component: () => import('@/views/supplier/base/form/index.vue'),
  1037. name: 'SupplierDetailAdd',
  1038. meta: {
  1039. noCache: false,
  1040. hidden: true,
  1041. canTo: true,
  1042. icon: 'ep:edit',
  1043. title: '供应商添加',
  1044. activeMenu: '/supplier/base'
  1045. }
  1046. },
  1047. {
  1048. path: 'supplier/detail/edit/:id(\\d+)',
  1049. component: () => import('@/views/supplier/base/form/index.vue'),
  1050. name: 'SupplierDetailEdit',
  1051. meta: {
  1052. noCache: true,
  1053. hidden: true,
  1054. canTo: true,
  1055. icon: 'ep:edit',
  1056. title: '供应商编辑',
  1057. activeMenu: '/supplier/base'
  1058. }
  1059. },
  1060. {
  1061. path: '/supplier/detail/info/:id(\\d+)',
  1062. component: () => import('@/views/supplier/base/form/index.vue'),
  1063. name: 'SupplierDetailInfo',
  1064. meta: {
  1065. noCache: true,
  1066. hidden: true,
  1067. canTo: true,
  1068. icon: 'ep:view',
  1069. title: '供应商详情',
  1070. activeMenu: '/supplier/base'
  1071. }
  1072. },
  1073. {
  1074. path: 'supplier/approvalDetail/:id',
  1075. name: 'SupplierApprovalInfo',
  1076. meta: {
  1077. title: '供应商审核详情',
  1078. noCache: true,
  1079. hidden: true,
  1080. activeMenu: '/supplier/base'
  1081. },
  1082. component: () => import('@/views/supplier/approvaldetail/ApprovalDetail.vue')
  1083. }
  1084. ]
  1085. },
  1086. {
  1087. path: '/bpm',
  1088. component: Layout,
  1089. name: 'bpm',
  1090. meta: {
  1091. hidden: true
  1092. },
  1093. children: [
  1094. {
  1095. path: 'manager/form/edit',
  1096. component: () => import('@/views/bpm/form/editor/index.vue'),
  1097. name: 'BpmFormEditor',
  1098. meta: {
  1099. noCache: true,
  1100. hidden: true,
  1101. canTo: true,
  1102. title: '设计流程表单',
  1103. activeMenu: '/bpm/manager/form'
  1104. }
  1105. },
  1106. {
  1107. path: 'manager/definition',
  1108. component: () => import('@/views/bpm/model/definition/index.vue'),
  1109. name: 'BpmProcessDefinition',
  1110. meta: {
  1111. noCache: true,
  1112. hidden: true,
  1113. canTo: true,
  1114. title: '流程定义',
  1115. activeMenu: '/bpm/manager/model'
  1116. }
  1117. },
  1118. {
  1119. path: 'process-instance/detail',
  1120. component: () => import('@/views/bpm/processInstance/detail/index.vue'),
  1121. name: 'BpmProcessInstanceDetail',
  1122. meta: {
  1123. noCache: true,
  1124. hidden: true,
  1125. canTo: true,
  1126. title: '流程详情',
  1127. activeMenu: '/bpm/task/my'
  1128. },
  1129. props: (route) => ({
  1130. id: route.query.id,
  1131. taskId: route.query.taskId,
  1132. activityId: route.query.activityId
  1133. })
  1134. },
  1135. {
  1136. path: 'process-instance/report',
  1137. component: () => import('@/views/bpm/processInstance/report/index.vue'),
  1138. name: 'BpmProcessInstanceReport',
  1139. meta: {
  1140. noCache: true,
  1141. hidden: true,
  1142. canTo: true,
  1143. title: '数据报表',
  1144. activeMenu: '/bpm/manager/model'
  1145. }
  1146. },
  1147. {
  1148. path: 'oa/leave/create',
  1149. component: () => import('@/views/bpm/oa/leave/create.vue'),
  1150. name: 'OALeaveCreate',
  1151. meta: {
  1152. noCache: true,
  1153. hidden: true,
  1154. canTo: true,
  1155. title: '发起 OA 请假',
  1156. activeMenu: '/bpm/oa/leave'
  1157. }
  1158. },
  1159. {
  1160. path: 'oa/leave/detail',
  1161. component: () => import('@/views/bpm/oa/leave/detail.vue'),
  1162. name: 'OALeaveDetail',
  1163. meta: {
  1164. noCache: true,
  1165. hidden: true,
  1166. canTo: true,
  1167. title: '查看 OA 请假',
  1168. activeMenu: '/bpm/oa/leave'
  1169. }
  1170. },
  1171. {
  1172. path: 'manager/model/create',
  1173. component: () => import('@/views/bpm/model/form/index.vue'),
  1174. name: 'BpmModelCreate',
  1175. meta: {
  1176. noCache: true,
  1177. hidden: true,
  1178. canTo: true,
  1179. title: '创建流程',
  1180. activeMenu: '/bpm/manager/model'
  1181. }
  1182. },
  1183. {
  1184. path: 'manager/model/:type/:id',
  1185. component: () => import('@/views/bpm/model/form/index.vue'),
  1186. name: 'BpmModelUpdate',
  1187. meta: {
  1188. noCache: true,
  1189. hidden: true,
  1190. canTo: true,
  1191. title: '修改流程',
  1192. activeMenu: '/bpm/manager/model'
  1193. }
  1194. }
  1195. ]
  1196. },
  1197. {
  1198. path: '/mall/product', // 商品中心
  1199. component: Layout,
  1200. name: 'ProductCenter',
  1201. meta: {
  1202. hidden: true
  1203. },
  1204. children: [
  1205. {
  1206. path: 'spu/add',
  1207. component: () => import('@/views/mall/product/spu/form/index.vue'),
  1208. name: 'ProductSpuAdd',
  1209. meta: {
  1210. noCache: false, // 需要缓存
  1211. hidden: true,
  1212. canTo: true,
  1213. icon: 'ep:edit',
  1214. title: '商品添加',
  1215. activeMenu: '/mall/product/spu'
  1216. }
  1217. },
  1218. {
  1219. path: 'spu/edit/:id(\\d+)',
  1220. component: () => import('@/views/mall/product/spu/form/index.vue'),
  1221. name: 'ProductSpuEdit',
  1222. meta: {
  1223. noCache: true,
  1224. hidden: true,
  1225. canTo: true,
  1226. icon: 'ep:edit',
  1227. title: '商品编辑',
  1228. activeMenu: '/mall/product/spu'
  1229. }
  1230. },
  1231. {
  1232. path: 'spu/detail/:id(\\d+)',
  1233. component: () => import('@/views/mall/product/spu/form/index.vue'),
  1234. name: 'ProductSpuDetail',
  1235. meta: {
  1236. noCache: true,
  1237. hidden: true,
  1238. canTo: true,
  1239. icon: 'ep:view',
  1240. title: '商品详情',
  1241. activeMenu: '/mall/product/spu'
  1242. }
  1243. },
  1244. {
  1245. path: 'property/value/:propertyId(\\d+)',
  1246. component: () => import('@/views/mall/product/property/value/index.vue'),
  1247. name: 'ProductPropertyValue',
  1248. meta: {
  1249. noCache: true,
  1250. hidden: true,
  1251. canTo: true,
  1252. icon: 'ep:view',
  1253. title: '商品属性值',
  1254. activeMenu: '/product/property'
  1255. }
  1256. }
  1257. ]
  1258. },
  1259. {
  1260. path: '/mall/trade', // 交易中心
  1261. component: Layout,
  1262. name: 'TradeCenter',
  1263. meta: {
  1264. hidden: true
  1265. },
  1266. children: [
  1267. {
  1268. path: 'order/detail/:id(\\d+)',
  1269. component: () => import('@/views/mall/trade/order/detail/index.vue'),
  1270. name: 'TradeOrderDetail',
  1271. meta: { title: '订单详情', icon: 'ep:view', activeMenu: '/mall/trade/order' }
  1272. },
  1273. {
  1274. path: 'after-sale/detail/:id(\\d+)',
  1275. component: () => import('@/views/mall/trade/afterSale/detail/index.vue'),
  1276. name: 'TradeAfterSaleDetail',
  1277. meta: { title: '退款详情', icon: 'ep:view', activeMenu: '/mall/trade/after-sale' }
  1278. }
  1279. ]
  1280. },
  1281. {
  1282. path: '/member',
  1283. component: Layout,
  1284. name: 'MemberCenter',
  1285. meta: { hidden: true },
  1286. children: [
  1287. {
  1288. path: 'user/detail/:id',
  1289. name: 'MemberUserDetail',
  1290. meta: {
  1291. title: '会员详情',
  1292. noCache: true,
  1293. hidden: true
  1294. },
  1295. component: () => import('@/views/member/user/detail/index.vue')
  1296. }
  1297. ]
  1298. },
  1299. {
  1300. path: '/pay',
  1301. component: Layout,
  1302. name: 'pay',
  1303. meta: { hidden: true },
  1304. children: [
  1305. {
  1306. path: 'cashier',
  1307. name: 'PayCashier',
  1308. meta: {
  1309. title: '收银台',
  1310. noCache: true,
  1311. hidden: true
  1312. },
  1313. component: () => import('@/views/pay/cashier/index.vue')
  1314. }
  1315. ]
  1316. },
  1317. {
  1318. path: '/diy',
  1319. name: 'DiyCenter',
  1320. meta: { hidden: true },
  1321. component: Layout,
  1322. children: [
  1323. {
  1324. path: 'template/decorate/:id',
  1325. name: 'DiyTemplateDecorate',
  1326. meta: {
  1327. title: '模板装修',
  1328. noCache: true,
  1329. hidden: true,
  1330. activeMenu: '/mall/promotion/diy/template'
  1331. },
  1332. component: () => import('@/views/mall/promotion/diy/template/decorate.vue')
  1333. },
  1334. {
  1335. path: 'page/decorate/:id',
  1336. name: 'DiyPageDecorate',
  1337. meta: {
  1338. title: '页面装修',
  1339. noCache: true,
  1340. hidden: true,
  1341. activeMenu: '/mall/promotion/diy/page'
  1342. },
  1343. component: () => import('@/views/mall/promotion/diy/page/decorate.vue')
  1344. }
  1345. ]
  1346. },
  1347. {
  1348. path: '/crm',
  1349. component: Layout,
  1350. name: 'CrmCenter',
  1351. meta: { hidden: true },
  1352. children: [
  1353. {
  1354. path: 'clue/detail/:id',
  1355. name: 'CrmClueDetail',
  1356. meta: {
  1357. title: '线索详情',
  1358. noCache: true,
  1359. hidden: true,
  1360. activeMenu: '/crm/clue'
  1361. },
  1362. component: () => import('@/views/crm/clue/detail/index.vue')
  1363. },
  1364. {
  1365. path: 'customer/detail/:id',
  1366. name: 'CrmCustomerDetail',
  1367. meta: {
  1368. title: '客户详情',
  1369. noCache: true,
  1370. hidden: true,
  1371. activeMenu: '/crm/customer'
  1372. },
  1373. component: () => import('@/views/crm/customer/detail/index.vue')
  1374. },
  1375. {
  1376. path: 'business/detail/:id',
  1377. name: 'CrmBusinessDetail',
  1378. meta: {
  1379. title: '商机详情',
  1380. noCache: true,
  1381. hidden: true,
  1382. activeMenu: '/crm/business'
  1383. },
  1384. component: () => import('@/views/crm/business/detail/index.vue')
  1385. },
  1386. {
  1387. path: 'contract/detail/:id',
  1388. name: 'CrmContractDetail',
  1389. meta: {
  1390. title: '合同详情',
  1391. noCache: true,
  1392. hidden: true,
  1393. activeMenu: '/crm/contract'
  1394. },
  1395. component: () => import('@/views/crm/contract/detail/index.vue')
  1396. },
  1397. {
  1398. path: 'receivable-plan/detail/:id',
  1399. name: 'CrmReceivablePlanDetail',
  1400. meta: {
  1401. title: '回款计划详情',
  1402. noCache: true,
  1403. hidden: true,
  1404. activeMenu: '/crm/receivable-plan'
  1405. },
  1406. component: () => import('@/views/crm/receivable/plan/detail/index.vue')
  1407. },
  1408. {
  1409. path: 'receivable/detail/:id',
  1410. name: 'CrmReceivableDetail',
  1411. meta: {
  1412. title: '回款详情',
  1413. noCache: true,
  1414. hidden: true,
  1415. activeMenu: '/crm/receivable'
  1416. },
  1417. component: () => import('@/views/crm/receivable/detail/index.vue')
  1418. },
  1419. {
  1420. path: 'contact/detail/:id',
  1421. name: 'CrmContactDetail',
  1422. meta: {
  1423. title: '联系人详情',
  1424. noCache: true,
  1425. hidden: true,
  1426. activeMenu: '/crm/contact'
  1427. },
  1428. component: () => import('@/views/crm/contact/detail/index.vue')
  1429. },
  1430. {
  1431. path: 'product/detail/:id',
  1432. name: 'CrmProductDetail',
  1433. meta: {
  1434. title: '产品详情',
  1435. noCache: true,
  1436. hidden: true,
  1437. activeMenu: '/crm/product'
  1438. },
  1439. component: () => import('@/views/crm/product/detail/index.vue')
  1440. }
  1441. ]
  1442. },
  1443. {
  1444. path: '/ai',
  1445. component: Layout,
  1446. name: 'Ai',
  1447. meta: {
  1448. hidden: true
  1449. },
  1450. children: [
  1451. {
  1452. path: 'image/square',
  1453. component: () => import('@/views/ai/image/square/index.vue'),
  1454. name: 'AiImageSquare',
  1455. meta: {
  1456. title: '绘图作品',
  1457. icon: 'ep:home-filled',
  1458. noCache: false
  1459. }
  1460. },
  1461. {
  1462. path: 'knowledge/document',
  1463. component: () => import('@/views/ai/knowledge/document/index.vue'),
  1464. name: 'AiKnowledgeDocument',
  1465. meta: {
  1466. title: '知识库文档',
  1467. icon: 'ep:document',
  1468. noCache: false,
  1469. activeMenu: '/ai/knowledge'
  1470. }
  1471. },
  1472. {
  1473. path: 'knowledge/document/create',
  1474. component: () => import('@/views/ai/knowledge/document/form/index.vue'),
  1475. name: 'AiKnowledgeDocumentCreate',
  1476. meta: {
  1477. title: '创建文档',
  1478. icon: 'ep:plus',
  1479. noCache: true,
  1480. hidden: true,
  1481. activeMenu: '/ai/knowledge'
  1482. }
  1483. },
  1484. {
  1485. path: 'knowledge/document/update',
  1486. component: () => import('@/views/ai/knowledge/document/form/index.vue'),
  1487. name: 'AiKnowledgeDocumentUpdate',
  1488. meta: {
  1489. title: '修改文档',
  1490. icon: 'ep:edit',
  1491. noCache: true,
  1492. hidden: true,
  1493. activeMenu: '/ai/knowledge'
  1494. }
  1495. },
  1496. {
  1497. path: 'knowledge/retrieval',
  1498. component: () => import('@/views/ai/knowledge/knowledge/retrieval/index.vue'),
  1499. name: 'AiKnowledgeRetrieval',
  1500. meta: {
  1501. title: '文档召回测试',
  1502. icon: 'ep:search',
  1503. noCache: true,
  1504. hidden: true,
  1505. activeMenu: '/ai/knowledge'
  1506. }
  1507. },
  1508. {
  1509. path: 'knowledge/segment',
  1510. component: () => import('@/views/ai/knowledge/segment/index.vue'),
  1511. name: 'AiKnowledgeSegment',
  1512. meta: {
  1513. title: '知识库分段',
  1514. icon: 'ep:tickets',
  1515. noCache: true,
  1516. hidden: true,
  1517. activeMenu: '/ai/knowledge'
  1518. }
  1519. },
  1520. {
  1521. path: 'console/workflow/create',
  1522. component: () => import('@/views/ai/workflow/form/index.vue'),
  1523. name: 'AiWorkflowCreate',
  1524. meta: {
  1525. noCache: true,
  1526. hidden: true,
  1527. canTo: true,
  1528. title: '设计 AI 工作流',
  1529. activeMenu: '/ai/console/workflow'
  1530. }
  1531. },
  1532. {
  1533. path: 'console/workflow/:type/:id',
  1534. component: () => import('@/views/ai/workflow/form/index.vue'),
  1535. name: 'AiWorkflowUpdate',
  1536. meta: {
  1537. noCache: true,
  1538. hidden: true,
  1539. canTo: true,
  1540. title: '设计 AI 工作流',
  1541. activeMenu: '/ai/console/workflow'
  1542. }
  1543. }
  1544. ]
  1545. },
  1546. {
  1547. path: '/:pathMatch(.*)*',
  1548. component: () => import('@/views/Error/404.vue'),
  1549. name: '',
  1550. meta: {
  1551. title: '404',
  1552. hidden: true,
  1553. breadcrumb: false
  1554. }
  1555. },
  1556. {
  1557. path: '/iot',
  1558. component: Layout,
  1559. name: 'IOT',
  1560. meta: {
  1561. hidden: true
  1562. },
  1563. children: [
  1564. {
  1565. path: 'product/product/detail/:id',
  1566. name: 'IoTProductDetail',
  1567. meta: {
  1568. title: '产品详情',
  1569. noCache: true,
  1570. hidden: true,
  1571. activeMenu: '/iot/device/product'
  1572. },
  1573. component: () => import('@/views/iot/product/product/detail/index.vue')
  1574. },
  1575. {
  1576. path: 'device/detail/:id',
  1577. name: 'IoTDeviceDetail',
  1578. meta: {
  1579. title: '设备详情',
  1580. noCache: true,
  1581. hidden: true,
  1582. activeMenu: '/iot/device/device'
  1583. },
  1584. component: () => import('@/views/iot/device/device/detail/index.vue')
  1585. },
  1586. {
  1587. path: 'plugin/detail/:id',
  1588. name: 'IoTPluginDetail',
  1589. meta: {
  1590. title: '插件详情',
  1591. noCache: true,
  1592. hidden: true,
  1593. activeMenu: '/iot/plugin'
  1594. },
  1595. component: () => import('@/views/iot/plugin/detail/index.vue')
  1596. }
  1597. ]
  1598. },
  1599. ]
  1600. export default remainingRouter