remaining.ts 58 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299
  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. name: 'dingtalk',
  65. component: () => import('@/views/pms/dingding.vue'),
  66. meta: {
  67. hidden: true
  68. }
  69. },
  70. {
  71. path: '/maotu',
  72. redirect: '/maotu/list',
  73. name: 'Maotu',
  74. meta: {
  75. hidden: true
  76. },
  77. children: [
  78. {
  79. path: 'edit/:id?',
  80. component: () => import('@/views/maotu/edit.vue'),
  81. name: 'MaotuEdit',
  82. meta: {
  83. title: '拓扑编辑器',
  84. noCache: true,
  85. hidden: true,
  86. canTo: true
  87. }
  88. },
  89. {
  90. path: 'preview/:id?',
  91. component: () => import('@/views/maotu/preview.vue'),
  92. name: 'MaotuPreview',
  93. meta: {
  94. title: '拓扑预览',
  95. noCache: true,
  96. hidden: true,
  97. canTo: true
  98. }
  99. }
  100. ]
  101. },
  102. {
  103. path: '/deviceattrstemplate',
  104. component: Layout,
  105. name: 'DeviceAttrsCenter',
  106. meta: {
  107. hidden: true,
  108. keepAlive: true
  109. },
  110. children: [
  111. {
  112. path: 'template/detail/:id/:templateName/:categoryName',
  113. component: () => import('@/views/pms/devicetemplate/detail/attrsModel/index.vue'),
  114. name: 'DeviceAttrTemplateModel',
  115. meta: {
  116. keepAlive: true,
  117. title: t('rem.DeviceAttrTemplateModel'),
  118. noCache: false,
  119. hidden: true,
  120. canTo: true,
  121. activeMenu: '/template/info'
  122. }
  123. },
  124. {
  125. path: 'templates',
  126. component: () => import('@/views/pms/devicetemplate/index.vue'),
  127. name: 'DeviceAttrsTemplate',
  128. meta: {
  129. keepAlive: true,
  130. title: t('rem.AttrTemplates'),
  131. noCache: false,
  132. hidden: true,
  133. canTo: true,
  134. activeMenu: '/templates'
  135. }
  136. }
  137. ]
  138. },
  139. {
  140. path: '/projectTaskAttrsTemplate',
  141. component: Layout,
  142. name: 'TaskAttrsTemplateCenter',
  143. meta: {
  144. hidden: true,
  145. keepAlive: true
  146. },
  147. children: [
  148. {
  149. path: 'template/attrs/:deptId/:templateName/:deptName',
  150. component: () => import('@/views/pms/iotprojecttasktemplate/detail/index.vue'),
  151. name: 'ProjectTaskTemplateAttrs',
  152. meta: {
  153. keepAlive: true,
  154. title: t('project.taskAttrDetail'),
  155. noCache: false,
  156. hidden: true,
  157. canTo: true,
  158. activeMenu: '/template/info'
  159. }
  160. }
  161. ]
  162. },
  163. {
  164. path: '/devicecategoryboms',
  165. component: Layout,
  166. name: 'DeviceCategoryBomCenter',
  167. meta: {
  168. hidden: true,
  169. keepAlive: true
  170. },
  171. children: [
  172. {
  173. path: 'boms',
  174. component: () => import('@/views/pms/bom/index.vue'),
  175. name: 'Bom',
  176. meta: {
  177. keepAlive: true,
  178. title: t('rem.AttrTemplates'),
  179. noCache: false,
  180. hidden: true,
  181. canTo: true,
  182. activeMenu: '/boms'
  183. }
  184. }
  185. ]
  186. },
  187. {
  188. path: '/devicetrends',
  189. component: Layout,
  190. name: 'DeviceTrendsCenter',
  191. meta: {
  192. hidden: true,
  193. keepAlive: true
  194. },
  195. children: [
  196. {
  197. path: 'devicepersons',
  198. component: () => import('@/views/pms/device/personlog/DevicePerson.vue'),
  199. name: 'IotDevicePerson',
  200. meta: {
  201. keepAlive: true,
  202. title: t('rem.EquipmentResponsiblePerson'),
  203. noCache: false,
  204. hidden: true,
  205. canTo: true,
  206. activeMenu: '/devicepersons'
  207. }
  208. },
  209. {
  210. path: 'allotlogs',
  211. component: () => import('@/views/pms/device/allotlog/DeviceAllot.vue'),
  212. name: 'IotDeviceAllot',
  213. meta: {
  214. keepAlive: true,
  215. title: t('rem.EquipmentAllocation'),
  216. noCache: false,
  217. hidden: true,
  218. canTo: true,
  219. activeMenu: '/allotlogs'
  220. }
  221. },
  222. {
  223. path: 'statuslogs',
  224. component: () => import('@/views/pms/device/statuslog/DeviceStatus.vue'),
  225. name: 'IotDeviceStatus',
  226. meta: {
  227. keepAlive: true,
  228. title: t('devicePerson.status'),
  229. noCache: false,
  230. hidden: true,
  231. canTo: true,
  232. activeMenu: '/statuslogs'
  233. }
  234. }
  235. ]
  236. },
  237. {
  238. path: '/materials',
  239. component: Layout,
  240. name: 'MaterialsCenter',
  241. meta: {
  242. hidden: true,
  243. keepAlive: true
  244. },
  245. children: [
  246. {
  247. path: 'materials',
  248. component: () => import('@/views/pms/material/index.vue'),
  249. name: 'Material',
  250. meta: {
  251. keepAlive: true,
  252. title: t('rem.MaterialManagement'),
  253. noCache: false,
  254. hidden: true,
  255. canTo: true,
  256. activeMenu: '/materials'
  257. }
  258. }
  259. ]
  260. },
  261. {
  262. path: '/modelattrstemplate',
  263. component: Layout,
  264. name: 'ModelAttrsCenter',
  265. meta: {
  266. hidden: true
  267. },
  268. children: [
  269. {
  270. path: 'template/detail/:id',
  271. component: () => import('@/views/pms/modeltemplate/detail/attrsModel/index.vue'),
  272. name: 'ModelAttrTemplate',
  273. meta: {
  274. title: t('rem.AttributeInformationDetails'),
  275. noCache: false,
  276. hidden: true,
  277. canTo: true,
  278. activeMenu: '/template/info'
  279. }
  280. }
  281. ]
  282. },
  283. {
  284. path: '/iotProjectInfo',
  285. component: Layout,
  286. name: 'IotProjectInfo',
  287. meta: {
  288. hidden: true
  289. },
  290. children: [
  291. {
  292. path: 'project/info/:type/:id?(\\d+)',
  293. component: () => import('@/views/pms/iotprojectinfo/IotProjectInfoForm.vue'),
  294. name: 'IotProjectInfo',
  295. meta: {
  296. title: t('rem.AddProjectInformation'),
  297. noCache: false,
  298. hidden: true,
  299. canTo: true,
  300. activeMenu: '/project/info'
  301. }
  302. }
  303. ]
  304. },
  305. {
  306. path: '/iotProjectTask',
  307. component: Layout,
  308. name: 'IotProjectTaskInfo',
  309. meta: {
  310. hidden: true
  311. },
  312. children: [
  313. {
  314. path: 'project/task/:type/:id?(\\d+)/:projectId?',
  315. component: () => import('@/views/pms/iotprojecttask/IotProjectTaskForm.vue'),
  316. name: 'IotProjectTaskInfo',
  317. meta: {
  318. title: t('action.edit'),
  319. noCache: false,
  320. hidden: true,
  321. canTo: true,
  322. activeMenu: '/project/task'
  323. }
  324. }
  325. ]
  326. },
  327. {
  328. path: '/iotProjectInfoDetail',
  329. component: Layout,
  330. name: 'IotProjectInfoDetail',
  331. meta: {
  332. hidden: true
  333. },
  334. children: [
  335. {
  336. path: 'project/info/detail/:id(\\d+)',
  337. component: () => import('@/views/pms/iotprojectinfo/IotProjectInfoDetail.vue'),
  338. name: 'IotProjectInfoDetail',
  339. meta: {
  340. title: t('rem.detail'),
  341. noCache: false,
  342. hidden: true,
  343. canTo: true,
  344. activeMenu: '/project/detail'
  345. }
  346. }
  347. ]
  348. },
  349. {
  350. path: '/FillOrderInfo2',
  351. component: Layout,
  352. name: 'FillOrderInfo2',
  353. meta: {
  354. hidden: true
  355. },
  356. children: [
  357. {
  358. path: 'template/detail/:deptId/:isFill/:createTime*',
  359. component: () => import('@/views/pms/iotopeationfill/StatisticsForm.vue' + ''),
  360. name: 'FillOrderInfo2',
  361. meta: {
  362. title: t('rem.FillInInformation'),
  363. noCache: false,
  364. hidden: true,
  365. canTo: true,
  366. activeMenu: '/template/info'
  367. }
  368. }
  369. ]
  370. },
  371. {
  372. path: '/FillOrderInfo',
  373. component: Layout,
  374. name: 'FillOrderInfo',
  375. meta: {
  376. hidden: true,
  377. keepAlive: true
  378. },
  379. children: [
  380. {
  381. path: 'template/detail/:id',
  382. component: () => import('@/views/pms/iotopeationfill/index1.vue' + ''),
  383. name: 'FillOrderInfo',
  384. meta: {
  385. title: t('rem.FillInInformation'),
  386. noCache: false,
  387. hidden: true,
  388. canTo: true,
  389. keepAlive: true,
  390. activeMenu: '/template/info'
  391. }
  392. }
  393. ]
  394. },
  395. {
  396. path: '/IotOpeationFill1',
  397. component: Layout,
  398. name: 'IotOpeationFill1',
  399. meta: {
  400. hidden: true
  401. },
  402. children: [
  403. {
  404. path: 'template/detail',
  405. component: () => import('@/views/pms/iotopeationfill/index.vue'),
  406. name: 'IotOpeationFill1',
  407. meta: {
  408. title: t('rem.FillInInformation'),
  409. noCache: false,
  410. hidden: true,
  411. canTo: true,
  412. keepAlive: true,
  413. activeMenu: '/template/info'
  414. }
  415. }
  416. ]
  417. },
  418. {
  419. path: '/iotOperationPlan',
  420. component: Layout,
  421. name: 'iotOperationPlan',
  422. meta: {
  423. hidden: true
  424. },
  425. children: [
  426. {
  427. path: 'template/detail',
  428. component: () => import('@/views/pms/iotopeationfill/plan/index.vue'),
  429. name: 'iotOperationPlan',
  430. meta: {
  431. title: t('rem.FillInInformation'),
  432. noCache: false,
  433. hidden: true,
  434. canTo: true,
  435. keepAlive: true,
  436. activeMenu: '/template/info'
  437. }
  438. },
  439. {
  440. path: 'iotopeationfill/plan/add',
  441. component: () => import('@/views/pms/iotopeationfill/plan/IotOperationPlan.vue'),
  442. name: 'OperationPlanAdd',
  443. meta: {
  444. noCache: false,
  445. hidden: true,
  446. canTo: true,
  447. icon: 'ep:add',
  448. title: t('rem.OperationPlanAdd'),
  449. activeMenu: '/iotopeationfill/plan/add'
  450. }
  451. },
  452. {
  453. path: 'iotopeationfill/plan/add/:id(\\\\d+)',
  454. component: () => import('@/views/pms/iotopeationfill/plan/IotOperationPlan.vue'),
  455. name: 'OperationPlanEdit',
  456. meta: {
  457. noCache: false,
  458. hidden: true,
  459. canTo: true,
  460. icon: 'ep:add',
  461. title: t('rem.OperationPlanEdit'),
  462. activeMenu: '/iotopeationfill/plan/add'
  463. }
  464. }
  465. ]
  466. },
  467. {
  468. path: '/FillOrderInfoS',
  469. component: Layout,
  470. name: 'FillOrderInfoS',
  471. meta: {
  472. hidden: true,
  473. keepAlive: true
  474. },
  475. children: [
  476. {
  477. path: 'template/detail/:id/:deviceid/:status/:deptid/:createtime',
  478. component: () => import('@/views/pms/device/record/RecordInfo.vue'),
  479. name: 'FillOrderInfoDevice',
  480. meta: {
  481. title: t('rem.detail'),
  482. noCache: false,
  483. hidden: true,
  484. canTo: true,
  485. activeMenu: '/template/info'
  486. }
  487. }
  488. ]
  489. },
  490. {
  491. path: '/iotpms/iotdevicepms', // 商品中心
  492. component: Layout,
  493. name: 'PmsDeviceCenter',
  494. meta: {
  495. hidden: true
  496. },
  497. children: [
  498. {
  499. path: 'device/detail/add/:type/:deptId',
  500. component: () => import('@/views/pms/device/IotDeviceForm.vue'),
  501. name: 'DeviceDetailAdd',
  502. meta: {
  503. noCache: false,
  504. hidden: true,
  505. canTo: true,
  506. icon: 'ep:add',
  507. title: t('rem.AddEquipment'),
  508. activeMenu: '/device/base'
  509. }
  510. },
  511. {
  512. path: 'device/detail/add',
  513. component: () => import('@/views/pms/device/IotDeviceFormAdd.vue'),
  514. name: 'DeviceDetailAddd',
  515. meta: {
  516. noCache: false,
  517. hidden: true,
  518. canTo: true,
  519. icon: 'ep:add',
  520. title: t('rem.AddEquipment'),
  521. activeMenu: '/device/base'
  522. }
  523. },
  524. {
  525. path: 'device/detail/edit/:type/:id(\\d+)',
  526. component: () => import('@/views/pms/device/IotDeviceForm.vue'),
  527. name: 'DeviceDetailEdit',
  528. meta: {
  529. noCache: true,
  530. hidden: true,
  531. canTo: true,
  532. icon: 'ep:edit',
  533. title: t('rem.EquipmentEditing'),
  534. activeMenu: '/device/base'
  535. }
  536. },
  537. {
  538. path: 'device/detail/:id',
  539. component: () => import('@/views/pms/device/DeviceInfo.vue'),
  540. name: 'DeviceDetailInfo',
  541. meta: {
  542. noCache: false,
  543. hidden: true,
  544. canTo: true,
  545. icon: 'ep:info',
  546. title: t('rem.EquipmentDetails'),
  547. activeMenu: '/device/info'
  548. }
  549. },
  550. {
  551. path: 'tddevice/detail',
  552. component: () => import('@/views/pms/device/monitor/TdDeviceInfo.vue'),
  553. name: 'TdDeviceDetail',
  554. meta: {
  555. noCache: true,
  556. hidden: true,
  557. canTo: true,
  558. icon: 'ep:info',
  559. title: t('rem.MonitoringDetails'),
  560. activeMenu: '/device/info'
  561. }
  562. },
  563. {
  564. path: '/oli-connection/monitoring/detail',
  565. component: () => import('@/views/oli-connection/monitoring/detail.vue'),
  566. name: 'MonitoringDetail',
  567. meta: {
  568. noCache: true,
  569. hidden: true,
  570. canTo: true,
  571. icon: 'fa:area-chart',
  572. title: t('rem.MonitoringDetails'),
  573. activeMenu: '/oli-connection/monitoring'
  574. }
  575. },
  576. {
  577. path: 'device/upload/:id',
  578. component: () => import('@/views/pms/device/DeviceUpload.vue'),
  579. name: 'DeviceUpload',
  580. meta: {
  581. noCache: false,
  582. hidden: true,
  583. canTo: true,
  584. icon: 'ep:info',
  585. title: t('rem.UploadFile'),
  586. activeMenu: '/device/upload'
  587. }
  588. },
  589. {
  590. path: 'device/bom/:id',
  591. component: () => import('@/views/pms/device/bom/BomInfo.vue'),
  592. name: 'DeviceBom',
  593. meta: {
  594. noCache: false,
  595. hidden: true,
  596. canTo: true,
  597. icon: 'ep:info',
  598. title: t('rem.EquipmentBOM'),
  599. activeMenu: '/device/bom'
  600. }
  601. },
  602. {
  603. path: 'device/person',
  604. component: () => import('@/views/pms/device/personlog/ConfigDevicePerson.vue'),
  605. name: 'ConfigDevicePerson',
  606. meta: {
  607. noCache: false,
  608. hidden: true,
  609. canTo: true,
  610. icon: 'ep:add',
  611. title: t('rem.EquipmentResponsiblePerson'),
  612. activeMenu: '/device/person'
  613. }
  614. },
  615. {
  616. path: 'device/status',
  617. component: () => import('@/views/pms/device/statuslog/ConfigDeviceStatus.vue'),
  618. name: 'ConfigDeviceStatus',
  619. meta: {
  620. noCache: false,
  621. hidden: true,
  622. canTo: true,
  623. icon: 'ep:add',
  624. title: t('rem.EquipmentStatusAdjustment'),
  625. activeMenu: '/device/status'
  626. }
  627. },
  628. {
  629. path: 'device/allot',
  630. component: () => import('@/views/pms/device/allotlog/ConfigDeviceAllot.vue'),
  631. name: 'ConfigDeviceAllot',
  632. meta: {
  633. noCache: false,
  634. hidden: true,
  635. canTo: true,
  636. icon: 'ep:add',
  637. title: t('rem.EquipmentAllocation'),
  638. activeMenu: '/device/allot'
  639. }
  640. }
  641. ]
  642. },
  643. {
  644. path: '/iotpms/iotvideopms', // 视频中心
  645. component: Layout,
  646. name: 'PmsVideoCenter',
  647. meta: {
  648. hidden: true
  649. },
  650. children: [
  651. {
  652. path: 'video/product/add',
  653. component: () => import('@/views/pms/video_center/product/product-edit.vue'),
  654. name: 'VideoCenterProductEdit',
  655. meta: {
  656. noCache: false,
  657. hidden: true,
  658. canTo: true,
  659. icon: 'ep:add',
  660. title: t('rem.AddEquipment'),
  661. activeMenu: '/video/produvt/add'
  662. }
  663. },
  664. {
  665. path: 'video/device/add',
  666. component: () => import('@/views/pms/video_center/device/device-edit.vue'),
  667. name: 'VideoCenterDeviceEdit',
  668. meta: {
  669. noCache: false,
  670. hidden: true,
  671. canTo: true,
  672. icon: 'ep:add',
  673. title: t('rem.AddEquipment'),
  674. activeMenu: '/video/device/add'
  675. }
  676. }
  677. ]
  678. },
  679. {
  680. path: '/iotpms/iotlockstock',
  681. component: Layout,
  682. name: 'PmsLockStockCenter',
  683. meta: {
  684. hidden: true,
  685. keepAlive: true
  686. },
  687. children: [
  688. {
  689. path: 'lockstock',
  690. component: () => import('@/views/pms/iotlockstock/index.vue'),
  691. name: 'IotLockStock',
  692. meta: {
  693. keepAlive: true,
  694. noCache: false,
  695. hidden: true,
  696. canTo: true,
  697. icon: 'ep:menu',
  698. title: t('rem.LocalStock'),
  699. activeMenu: '/lockstock/index'
  700. }
  701. },
  702. {
  703. path: 'lockstock/add',
  704. component: () => import('@/views/pms/iotlockstock/IotAddToStock.vue'),
  705. name: 'LockStockAdd',
  706. meta: {
  707. noCache: false,
  708. hidden: true,
  709. canTo: true,
  710. icon: 'ep:add',
  711. title: t('rem.ManualWarehousing'),
  712. activeMenu: '/lockstock/add'
  713. }
  714. },
  715. {
  716. path: 'lockstock/edit/:id(\\d+)',
  717. component: () => import('@/views/pms/iotlockstock/IotAddToStock.vue'),
  718. name: 'LockStockEdit',
  719. meta: {
  720. noCache: true,
  721. hidden: true,
  722. canTo: true,
  723. icon: 'ep:edit',
  724. title: t('rem.EditingWarehousing'),
  725. activeMenu: '/lockstock/edit'
  726. }
  727. }
  728. ]
  729. },
  730. {
  731. path: '/iotpms/iotsapstock',
  732. component: Layout,
  733. name: 'PmsSapStockCenter',
  734. meta: {
  735. hidden: true,
  736. keepAlive: true
  737. },
  738. children: [
  739. {
  740. path: 'sapstock',
  741. component: () => import('@/views/pms/iotsapstock/index.vue'),
  742. name: 'IotSapStock',
  743. meta: {
  744. keepAlive: true,
  745. noCache: false,
  746. hidden: true,
  747. canTo: true,
  748. icon: 'ep:menu',
  749. title: t('rem.SAPStock'),
  750. activeMenu: '/sapstock/index'
  751. }
  752. },
  753. {
  754. path: 'sapstock/config',
  755. component: () => import('@/views/pms/iotsapstock/IotSapStockConfig.vue'),
  756. name: 'IotSapStockConfig',
  757. meta: {
  758. noCache: false,
  759. hidden: true,
  760. canTo: true,
  761. icon: 'ep:add',
  762. title: t('rem.ConfigureSafetyStock'),
  763. activeMenu: '/sapstock/config'
  764. }
  765. },
  766. {
  767. path: 'sapstock/safe',
  768. component: () => import('@/views/pms/iotsapstock/IotConfigSafeStock.vue'),
  769. name: 'IotConfigSafeStock',
  770. meta: {
  771. noCache: false,
  772. hidden: true,
  773. canTo: true,
  774. icon: 'ep:add',
  775. title: t('rem.ConfigureSafetyStock'),
  776. activeMenu: '/sapstock/safe'
  777. }
  778. }
  779. ]
  780. },
  781. {
  782. path: '/iotpms/iotmaintenanceplan',
  783. component: Layout,
  784. name: 'PmsMaintenanceCenter',
  785. meta: {
  786. hidden: true
  787. },
  788. children: [
  789. {
  790. path: 'maintenanceplan',
  791. component: () => import('@/views/pms/maintenance/index.vue'),
  792. name: 'IotMaintenancePlan',
  793. meta: {
  794. keepAlive: true,
  795. noCache: false,
  796. hidden: true,
  797. canTo: true,
  798. icon: 'ep:menu',
  799. title: t('rem.MaintenancePlan'),
  800. activeMenu: '/maintenanceplan/index'
  801. }
  802. },
  803. {
  804. path: 'maintenanceplan/add',
  805. component: () => import('@/views/pms/maintenance/maintenance-plan-manage.vue'),
  806. name: 'IotAddMainPlan',
  807. meta: {
  808. noCache: false,
  809. hidden: true,
  810. canTo: true,
  811. icon: 'ep:add',
  812. title: t('rem.AddMaintenancePlan'),
  813. activeMenu: '/maintenanceplan/add'
  814. }
  815. },
  816. {
  817. path: 'maintenanceplan/edit/:id(\\d+)',
  818. component: () => import('@/views/pms/maintenance/maintenance-plan-manage.vue'),
  819. name: 'IotMainPlanEdit',
  820. meta: {
  821. noCache: true,
  822. hidden: true,
  823. canTo: true,
  824. icon: 'ep:edit',
  825. title: t('rem.EditMaintenancePlan'),
  826. activeMenu: '/maintenanceplan/edit'
  827. }
  828. },
  829. {
  830. path: 'maintenanceplan/detail/:id(\\d+)',
  831. component: () => import('@/views/pms/maintenance/maintenance-plan-manage.vue'),
  832. name: 'IotMaintenancePlanDetail',
  833. meta: {
  834. noCache: true,
  835. hidden: true,
  836. canTo: true,
  837. icon: 'ep:edit',
  838. title: t('rem.MaintenancePlanDetail'),
  839. activeMenu: '/maintenanceplan/detail'
  840. }
  841. }
  842. ]
  843. },
  844. {
  845. path: '/iotpms/iotmainworkorder',
  846. component: Layout,
  847. name: 'PmsMainWorkOrderCenter',
  848. meta: {
  849. hidden: true,
  850. keepAlive: true
  851. },
  852. children: [
  853. {
  854. path: 'mainworkorder',
  855. component: () => import('@/views/pms/iotmainworkorder/index.vue'),
  856. name: 'IotMainWorkOrder',
  857. meta: {
  858. keepAlive: true,
  859. noCache: false,
  860. hidden: true,
  861. canTo: true,
  862. icon: 'ep:menu',
  863. title: t('rem.MaintenanceOrder'),
  864. activeMenu: '/mainworkorder/index'
  865. }
  866. },
  867. {
  868. path: 'workorderalarm',
  869. component: () => import('@/views/pms/iotmainworkorder/IotDeviceMainAlarm.vue'),
  870. name: 'IotDeviceMainAlarm',
  871. meta: {
  872. keepAlive: true,
  873. noCache: false,
  874. hidden: true,
  875. canTo: true,
  876. icon: 'ep:menu',
  877. title: t('mainPlan.maintenanceQuery'),
  878. activeMenu: '/mainworkorder/alarm'
  879. }
  880. },
  881. {
  882. path: 'maintenancesearch',
  883. component: () => import('@/views/pms/iotmainworkorder/IotMaintenanceSearch.vue'),
  884. name: 'IotMaintenanceSearch',
  885. meta: {
  886. keepAlive: true,
  887. noCache: false,
  888. hidden: true,
  889. canTo: true,
  890. icon: 'ep:menu',
  891. title: t('mainPlan.maintenanceQuery'),
  892. activeMenu: '/mainworkorder/search'
  893. }
  894. },
  895. {
  896. path: 'mainworkorder/bom/:id(\\d+)',
  897. component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderOptimize.vue'),
  898. name: 'IotMainWorkOrderOptimize',
  899. meta: {
  900. noCache: false,
  901. hidden: true,
  902. canTo: true,
  903. icon: 'ep:add',
  904. title: t('rem.FillMaintenanceOrder'),
  905. activeMenu: '/mainworkorder/bom'
  906. }
  907. },
  908. {
  909. path: 'mainworkorder/modify/:id(\\d+)',
  910. component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderModify.vue'),
  911. name: 'IotMainWorkOrderModify',
  912. meta: {
  913. noCache: false,
  914. hidden: true,
  915. canTo: true,
  916. icon: 'ep:add',
  917. title: t('rem.modifyOrder'),
  918. activeMenu: '/mainworkorder/modify'
  919. }
  920. },
  921. {
  922. path: 'mainworkorder/add',
  923. component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderAdd.vue'),
  924. name: 'IotMainWorkOrderAdd',
  925. meta: {
  926. noCache: false,
  927. hidden: true,
  928. canTo: true,
  929. icon: 'ep:add',
  930. title: t('rem.AddMaintenanceOrder'),
  931. activeMenu: '/mainworkorder/add'
  932. }
  933. },
  934. {
  935. path: 'mainworkorder/detail/:id(\\d+)',
  936. component: () => import('@/views/pms/iotmainworkorder/IotMainWorkOrderDetail.vue'),
  937. name: 'IotMainWorkOrderDetail',
  938. meta: {
  939. noCache: false,
  940. hidden: true,
  941. canTo: true,
  942. icon: 'ep:add',
  943. title: t('rem.MaintenanceOrderDetail'),
  944. activeMenu: '/mainworkorder/detail'
  945. }
  946. },
  947. {
  948. path: 'mainworkorder/device/detail/:orderId/:deviceId(\\d+)',
  949. component: () => import('@/views/pms/device/maintenance/MaintenanceDetail.vue'),
  950. name: 'IotDeviceMainWorkOrderDetail',
  951. meta: {
  952. noCache: false,
  953. hidden: true,
  954. canTo: true,
  955. icon: 'ep:add',
  956. title: t('rem.MaintenanceOrderDetail'),
  957. activeMenu: '/mainworkorder/detail'
  958. }
  959. }
  960. ]
  961. },
  962. {
  963. path: '/iotpms/iotmaterialreq',
  964. component: Layout,
  965. name: 'PmsMaterialReqCenter',
  966. meta: {
  967. hidden: true
  968. },
  969. children: [
  970. {
  971. path: 'materialreq',
  972. component: () => import('@/views/pms/iotmaterialrequisition/index.vue'),
  973. name: 'IotMaterialRequisition',
  974. meta: {
  975. noCache: false,
  976. hidden: true,
  977. canTo: true,
  978. icon: 'ep:menu',
  979. title: t('rem.MaterialRequisition'),
  980. activeMenu: '/materialreq/index'
  981. }
  982. },
  983. {
  984. path: 'materialreq/add',
  985. component: () => import('@/views/pms/iotmaterialrequisition/IotMaterialRequisitionAdd.vue'),
  986. name: 'IotMaterialRequisitionAdd',
  987. meta: {
  988. noCache: false,
  989. hidden: true,
  990. canTo: true,
  991. icon: 'ep:add',
  992. title: t('rem.MaterialRequisitionAdd'),
  993. activeMenu: '/materialreq/add'
  994. }
  995. },
  996. {
  997. path: 'materialreq/detail/:id(\\d+)',
  998. component: () => import('@/views/pms/iotmaterialrequisition/IotMaterialReqDetail.vue'),
  999. name: 'IotMaterialReqDetail',
  1000. meta: {
  1001. noCache: false,
  1002. hidden: true,
  1003. canTo: true,
  1004. icon: 'ep:view',
  1005. title: t('rem.CollectionFormDetails'),
  1006. activeMenu: '/materialreq/detail'
  1007. }
  1008. }
  1009. ]
  1010. },
  1011. {
  1012. path: '/iotpms/rddailyreport',
  1013. component: Layout,
  1014. name: 'RDDailyReport',
  1015. meta: {
  1016. hidden: true,
  1017. keepAlive: true
  1018. },
  1019. children: [
  1020. {
  1021. path: 'dailyReport',
  1022. component: () => import('@/views/pms/iotrddailyreport/fillDailyReport.vue'),
  1023. name: 'FillDailyReport',
  1024. meta: {
  1025. keepAlive: true,
  1026. noCache: false,
  1027. hidden: true,
  1028. canTo: true,
  1029. icon: 'ep:menu',
  1030. title: t('project.dailyReport'),
  1031. activeMenu: '/dailyReport/index'
  1032. }
  1033. },
  1034. {
  1035. path: 'dailyReport-form',
  1036. component: () => import('@/views/pms/iotrddailyreport/FillDailyReportForm.vue'),
  1037. name: 'FillDailyReportForm',
  1038. meta: {
  1039. noCache: false,
  1040. hidden: true,
  1041. canTo: true,
  1042. icon: 'ep:add',
  1043. title: t('project.fillReport'),
  1044. activeMenu: '/iotdayilyreport/FillDailyReport'
  1045. }
  1046. }
  1047. ]
  1048. },
  1049. {
  1050. path: '/iotpms/maincalendar',
  1051. component: Layout,
  1052. name: 'PmsMainCalendarCenter',
  1053. meta: {
  1054. hidden: true
  1055. },
  1056. children: [
  1057. {
  1058. path: 'maintenancecalendar',
  1059. component: () => import('@/views/pms/iotmaincalendar/index.vue'),
  1060. name: 'MaintenanceCalendar',
  1061. meta: {
  1062. noCache: false,
  1063. hidden: true,
  1064. canTo: true,
  1065. icon: 'ep:menu',
  1066. title: t('rem.MaintainCalendar'),
  1067. activeMenu: '/maintenancecalendar/index'
  1068. }
  1069. }
  1070. ]
  1071. },
  1072. {
  1073. path: '/iotpms/iotmaintain',
  1074. component: Layout,
  1075. name: 'PmsMaintainCenter',
  1076. meta: {
  1077. hidden: true
  1078. },
  1079. children: [
  1080. {
  1081. path: 'maintain/add/:id?(\\d+)',
  1082. component: () => import('@/views/pms/maintain/IotMaintainAddEdit.vue'),
  1083. name: 'MaintainAdd',
  1084. meta: {
  1085. noCache: false,
  1086. hidden: true,
  1087. canTo: true,
  1088. icon: 'ep:add',
  1089. title: t('rem.RepairOrderAdd'),
  1090. activeMenu: '/maintain/add'
  1091. }
  1092. },
  1093. {
  1094. path: 'maintain/record/:id?(\\d+)',
  1095. component: () => import('@/views/pms/maintain/IotMaintainRecord.vue'),
  1096. name: 'MaintainRecord',
  1097. meta: {
  1098. noCache: false,
  1099. hidden: true,
  1100. canTo: true,
  1101. icon: 'ep:add',
  1102. title: t('rem.MaintainRecord'),
  1103. activeMenu: '/maintain/record'
  1104. }
  1105. },
  1106. {
  1107. path: 'maintain/edit/:id(\\d+)',
  1108. component: () => import('@/views/pms/maintain/IotMaintainAddEdit.vue'),
  1109. name: 'MaintainEdit',
  1110. meta: {
  1111. noCache: true,
  1112. hidden: true,
  1113. canTo: true,
  1114. icon: 'ep:edit',
  1115. title: t('rem.RepairOrderEdit'),
  1116. activeMenu: '/maintain/edit'
  1117. }
  1118. },
  1119. {
  1120. path: 'maintain/detail/:id(\\d+)',
  1121. component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
  1122. name: 'MaintainDetail',
  1123. meta: {
  1124. noCache: false,
  1125. hidden: true,
  1126. canTo: true,
  1127. icon: 'ep:add',
  1128. title: t('rem.RepairOrderDetail'),
  1129. activeMenu: '/maintain/detail'
  1130. }
  1131. }
  1132. ]
  1133. },
  1134. {
  1135. path: '/iotpms/iotinspectroute',
  1136. component: Layout,
  1137. name: 'PmsInspectRouteCenter',
  1138. meta: {
  1139. hidden: true
  1140. },
  1141. children: [
  1142. {
  1143. path: 'route/add',
  1144. component: () => import('@/views/pms/inspect/route/IotInspectRoute.vue'),
  1145. name: 'RouteAdd',
  1146. meta: {
  1147. noCache: false,
  1148. hidden: true,
  1149. canTo: true,
  1150. icon: 'ep:add',
  1151. title: t('rem.InspectionRouteAdd'),
  1152. activeMenu: '/route/add'
  1153. }
  1154. },
  1155. {
  1156. path: 'route/edit/:id(\\d+)',
  1157. component: () => import('@/views/pms/inspect/route/IotInspectRoute.vue'),
  1158. name: 'RouteEdit',
  1159. meta: {
  1160. noCache: true,
  1161. hidden: true,
  1162. canTo: true,
  1163. icon: 'ep:edit',
  1164. title: t('rem.InspectionRouteEdit'),
  1165. activeMenu: '/route/edit'
  1166. }
  1167. // }
  1168. // ,{
  1169. // path: 'route/detail/:id(\\d+)',
  1170. // component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
  1171. // name: 'InspectRouteDetail',
  1172. // meta: {
  1173. // noCache: false,
  1174. // hidden: true,
  1175. // canTo: true,
  1176. // icon: 'ep:add',
  1177. // title: '巡检路线详情',
  1178. // activeMenu: '/route/detail'
  1179. // }
  1180. }
  1181. ]
  1182. },
  1183. {
  1184. path: '/iotpms/iotinspectplan',
  1185. component: Layout,
  1186. name: 'PmsInspectPlanCenter',
  1187. meta: {
  1188. hidden: true
  1189. },
  1190. children: [
  1191. {
  1192. path: 'inspect/plan/add',
  1193. component: () => import('@/views/pms/inspect/plan/IotInspectPlan.vue'),
  1194. name: 'InspectPlanAdd',
  1195. meta: {
  1196. noCache: false,
  1197. hidden: true,
  1198. canTo: true,
  1199. icon: 'ep:add',
  1200. title: t('rem.InspectPlanAdd'),
  1201. activeMenu: '/inspect/plan/add'
  1202. }
  1203. },
  1204. {
  1205. path: 'inspect/plan/edit/:id(\\d+)',
  1206. component: () => import('@/views/pms/inspect/plan/IotInspectPlan.vue'),
  1207. name: 'InspectPlanEdit',
  1208. meta: {
  1209. noCache: true,
  1210. hidden: true,
  1211. canTo: true,
  1212. icon: 'ep:edit',
  1213. title: t('rem.InspectPlanEdit'),
  1214. activeMenu: '/inspect/plan/edit'
  1215. }
  1216. // }
  1217. // ,{
  1218. // path: 'route/detail/:id(\\d+)',
  1219. // component: () => import('@/views/pms/maintain/IotMaintainDetail.vue'),
  1220. // name: 'InspectRouteDetail',
  1221. // meta: {
  1222. // noCache: false,
  1223. // hidden: true,
  1224. // canTo: true,
  1225. // icon: 'ep:add',
  1226. // title: '巡检路线详情',
  1227. // activeMenu: '/route/detail'
  1228. // }
  1229. }
  1230. ]
  1231. },
  1232. {
  1233. path: '/iotpms/iotinspectorder',
  1234. component: Layout,
  1235. name: 'PmsInspectOrderCenter',
  1236. meta: {
  1237. hidden: true
  1238. },
  1239. children: [
  1240. {
  1241. path: 'inspect/order/detail/index/:deptId?/:status?/:createTime*',
  1242. component: () => import('@/views/pms/inspect/order/detail/IotInspectOrderDetailStat.vue'),
  1243. name: 'IotInspectOrderDetailStat',
  1244. meta: {
  1245. noCache: false,
  1246. hidden: true,
  1247. canTo: true,
  1248. icon: 'ep:index',
  1249. title: t('rem.InspectOrder'),
  1250. activeMenu: '/inspect/order/detail/index'
  1251. }
  1252. },
  1253. {
  1254. path: 'inspect/order/index/:deptId?/:status?/:createTime*',
  1255. component: () => import('@/views/pms/inspect/order/index.vue'),
  1256. name: 'IotInspectOrdere',
  1257. meta: {
  1258. noCache: false,
  1259. hidden: true,
  1260. canTo: true,
  1261. icon: 'ep:index',
  1262. title: t('rem.InspectOrder'),
  1263. activeMenu: '/inspect/order/index'
  1264. }
  1265. },
  1266. {
  1267. path: 'inspect/order/item/index/:deptId?/:status?/:createTime*',
  1268. component: () => import('@/views/pms/inspect/order/detail/IotInspectOrderItemStat.vue'),
  1269. name: 'IotInspectItemStat',
  1270. meta: {
  1271. noCache: false,
  1272. hidden: true,
  1273. canTo: true,
  1274. icon: 'ep:index',
  1275. title: t('rem.InspectOrder'),
  1276. activeMenu: '/inspect/order/item/index'
  1277. }
  1278. },
  1279. {
  1280. path: 'inspect/order/add',
  1281. component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
  1282. name: 'InspectOrderAdd',
  1283. meta: {
  1284. noCache: false,
  1285. hidden: true,
  1286. canTo: true,
  1287. icon: 'ep:add',
  1288. title: t('rem.InspectOrderAdd'),
  1289. activeMenu: '/inspect/order/add'
  1290. }
  1291. },
  1292. {
  1293. path: 'inspect/order/edit/:id(\\d+)',
  1294. component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
  1295. name: 'InspectOrderEdit',
  1296. meta: {
  1297. noCache: true,
  1298. hidden: true,
  1299. canTo: true,
  1300. icon: 'ep:edit',
  1301. title: t('rem.InspectPlanEdit'),
  1302. activeMenu: '/inspect/order/edit'
  1303. }
  1304. },
  1305. {
  1306. path: '/inspect/order/detail/:id(\\d+)',
  1307. component: () => import('@/views/pms/inspect/order/InspectOrderDetail.vue'),
  1308. name: 'InspectOrderDetail',
  1309. meta: {
  1310. noCache: false,
  1311. hidden: true,
  1312. canTo: true,
  1313. icon: 'ep:add',
  1314. title: t('rem.InspectOrderDetail'),
  1315. activeMenu: '/inspect/order/detail'
  1316. }
  1317. },
  1318. {
  1319. path: '/inspect/order/write/:id(\\d+)',
  1320. component: () => import('@/views/pms/inspect/order/WriteOrder.vue'),
  1321. name: 'InspectOrderWrite',
  1322. meta: {
  1323. noCache: false,
  1324. hidden: true,
  1325. canTo: true,
  1326. icon: 'ep:add',
  1327. title: t('rem.InspectOrderAdd'),
  1328. activeMenu: '/inspect/order/write'
  1329. }
  1330. }
  1331. ]
  1332. },
  1333. {
  1334. path: '/failure',
  1335. component: Layout,
  1336. name: 'failure',
  1337. meta: {
  1338. hidden: true
  1339. },
  1340. children: [
  1341. {
  1342. path: 'failure/detail/:id',
  1343. component: () => import('@/views/pms/failure/FailureInfo.vue'),
  1344. name: 'FailureDetail',
  1345. meta: {
  1346. noCache: true,
  1347. hidden: true,
  1348. canTo: true,
  1349. title: t('rem.FailureDetail'),
  1350. activeMenu: '/failure/detail'
  1351. }
  1352. }
  1353. ]
  1354. },
  1355. {
  1356. path: '/user',
  1357. component: Layout,
  1358. name: 'UserInfo',
  1359. meta: {
  1360. hidden: true
  1361. },
  1362. children: [
  1363. {
  1364. path: 'profile',
  1365. component: () => import('@/views/Profile/Index.vue'),
  1366. name: 'Profile',
  1367. meta: {
  1368. canTo: true,
  1369. hidden: true,
  1370. noTagsView: false,
  1371. icon: 'ep:user',
  1372. title: t('common.profile')
  1373. }
  1374. },
  1375. {
  1376. path: 'notify-message',
  1377. component: () => import('@/views/system/notify/my/index.vue'),
  1378. name: 'MyNotifyMessage',
  1379. meta: {
  1380. canTo: true,
  1381. hidden: true,
  1382. noTagsView: false,
  1383. icon: 'ep:message',
  1384. title: '我的站内信'
  1385. }
  1386. }
  1387. ]
  1388. },
  1389. {
  1390. path: '/dict',
  1391. component: Layout,
  1392. name: 'dict',
  1393. meta: {
  1394. hidden: true
  1395. },
  1396. children: [
  1397. {
  1398. path: 'type/data/:dictType',
  1399. component: () => import('@/views/system/dict/data/index.vue'),
  1400. name: 'SystemDictData',
  1401. meta: {
  1402. title: '字典数据',
  1403. noCache: true,
  1404. hidden: true,
  1405. canTo: true,
  1406. icon: '',
  1407. activeMenu: '/system/dict'
  1408. }
  1409. }
  1410. ]
  1411. },
  1412. {
  1413. path: '/codegen',
  1414. component: Layout,
  1415. name: 'CodegenEdit',
  1416. meta: {
  1417. hidden: true
  1418. },
  1419. children: [
  1420. {
  1421. path: 'edit',
  1422. component: () => import('@/views/infra/codegen/EditTable.vue'),
  1423. name: 'InfraCodegenEditTable',
  1424. meta: {
  1425. noCache: true,
  1426. hidden: true,
  1427. canTo: true,
  1428. icon: 'ep:edit',
  1429. title: '修改生成配置',
  1430. activeMenu: 'infra/codegen/index'
  1431. }
  1432. }
  1433. ]
  1434. },
  1435. {
  1436. path: '/job',
  1437. component: Layout,
  1438. name: 'JobL',
  1439. meta: {
  1440. hidden: true
  1441. },
  1442. children: [
  1443. {
  1444. path: 'job-log',
  1445. component: () => import('@/views/infra/job/logger/index.vue'),
  1446. name: 'InfraJobLog',
  1447. meta: {
  1448. noCache: true,
  1449. hidden: true,
  1450. canTo: true,
  1451. icon: 'ep:edit',
  1452. title: '调度日志',
  1453. activeMenu: 'infra/job/index'
  1454. }
  1455. }
  1456. ]
  1457. },
  1458. {
  1459. path: '/login',
  1460. component: () => import('@/views/Login/Login.vue'),
  1461. name: 'Login',
  1462. meta: {
  1463. hidden: true,
  1464. title: t('router.login'),
  1465. noTagsView: true
  1466. }
  1467. },
  1468. {
  1469. path: '/sso',
  1470. component: () => import('@/views/Login/Login.vue'),
  1471. name: 'SSOLogin',
  1472. meta: {
  1473. hidden: true,
  1474. title: t('router.login'),
  1475. noTagsView: true
  1476. }
  1477. },
  1478. {
  1479. path: '/social-login',
  1480. component: () => import('@/views/Login/SocialLogin.vue'),
  1481. name: 'SocialLogin',
  1482. meta: {
  1483. hidden: true,
  1484. title: t('router.socialLogin'),
  1485. noTagsView: true
  1486. }
  1487. },
  1488. {
  1489. path: '/403',
  1490. component: () => import('@/views/Error/403.vue'),
  1491. name: 'NoAccess',
  1492. meta: {
  1493. hidden: true,
  1494. title: '403',
  1495. noTagsView: true
  1496. }
  1497. },
  1498. {
  1499. path: '/404',
  1500. component: () => import('@/views/Error/404.vue'),
  1501. name: 'NoFound',
  1502. meta: {
  1503. hidden: true,
  1504. title: '404',
  1505. noTagsView: true
  1506. }
  1507. },
  1508. {
  1509. path: '/500',
  1510. component: () => import('@/views/Error/500.vue'),
  1511. name: 'Error',
  1512. meta: {
  1513. hidden: true,
  1514. title: '500',
  1515. noTagsView: true
  1516. }
  1517. },
  1518. {
  1519. path: '/supplier/product', // 商品中心
  1520. component: Layout,
  1521. name: 'SupplierCenter',
  1522. meta: {
  1523. hidden: true
  1524. },
  1525. children: [
  1526. {
  1527. path: 'supplier/detail/add',
  1528. component: () => import('@/views/supplier/base/form/index.vue'),
  1529. name: 'SupplierDetailAdd',
  1530. meta: {
  1531. noCache: false,
  1532. hidden: true,
  1533. canTo: true,
  1534. icon: 'ep:edit',
  1535. title: '供应商添加',
  1536. activeMenu: '/supplier/base'
  1537. }
  1538. },
  1539. {
  1540. path: 'supplier/detail/edit/:id(\\d+)',
  1541. component: () => import('@/views/supplier/base/form/index.vue'),
  1542. name: 'SupplierDetailEdit',
  1543. meta: {
  1544. noCache: true,
  1545. hidden: true,
  1546. canTo: true,
  1547. icon: 'ep:edit',
  1548. title: '供应商编辑',
  1549. activeMenu: '/supplier/base'
  1550. }
  1551. },
  1552. {
  1553. path: '/supplier/detail/info/:id(\\d+)',
  1554. component: () => import('@/views/supplier/base/form/index.vue'),
  1555. name: 'SupplierDetailInfo',
  1556. meta: {
  1557. noCache: true,
  1558. hidden: true,
  1559. canTo: true,
  1560. icon: 'ep:view',
  1561. title: '供应商详情',
  1562. activeMenu: '/supplier/base'
  1563. }
  1564. },
  1565. {
  1566. path: 'supplier/approvalDetail/:id',
  1567. name: 'SupplierApprovalInfo',
  1568. meta: {
  1569. title: '供应商审核详情',
  1570. noCache: true,
  1571. hidden: true,
  1572. activeMenu: '/supplier/base'
  1573. },
  1574. component: () => import('@/views/supplier/approvaldetail/ApprovalDetail.vue')
  1575. }
  1576. ]
  1577. },
  1578. {
  1579. path: '/bpm',
  1580. component: Layout,
  1581. name: 'bpm',
  1582. meta: {
  1583. hidden: true
  1584. },
  1585. children: [
  1586. {
  1587. path: 'manager/form/edit',
  1588. component: () => import('@/views/bpm/form/editor/index.vue'),
  1589. name: 'BpmFormEditor',
  1590. meta: {
  1591. noCache: true,
  1592. hidden: true,
  1593. canTo: true,
  1594. title: '设计流程表单',
  1595. activeMenu: '/bpm/manager/form'
  1596. }
  1597. },
  1598. {
  1599. path: 'manager/definition',
  1600. component: () => import('@/views/bpm/model/definition/index.vue'),
  1601. name: 'BpmProcessDefinition',
  1602. meta: {
  1603. noCache: true,
  1604. hidden: true,
  1605. canTo: true,
  1606. title: '流程定义',
  1607. activeMenu: '/bpm/manager/model'
  1608. }
  1609. },
  1610. {
  1611. path: 'process-instance/detail',
  1612. component: () => import('@/views/bpm/processInstance/detail/index.vue'),
  1613. name: 'BpmProcessInstanceDetail',
  1614. meta: {
  1615. noCache: true,
  1616. hidden: true,
  1617. canTo: true,
  1618. title: '流程详情',
  1619. activeMenu: '/bpm/task/my'
  1620. },
  1621. props: (route) => ({
  1622. id: route.query.id,
  1623. taskId: route.query.taskId,
  1624. activityId: route.query.activityId
  1625. })
  1626. },
  1627. {
  1628. path: 'process-instance/report',
  1629. component: () => import('@/views/bpm/processInstance/report/index.vue'),
  1630. name: 'BpmProcessInstanceReport',
  1631. meta: {
  1632. noCache: true,
  1633. hidden: true,
  1634. canTo: true,
  1635. title: '数据报表',
  1636. activeMenu: '/bpm/manager/model'
  1637. }
  1638. },
  1639. {
  1640. path: 'oa/leave/create',
  1641. component: () => import('@/views/bpm/oa/leave/create.vue'),
  1642. name: 'OALeaveCreate',
  1643. meta: {
  1644. noCache: true,
  1645. hidden: true,
  1646. canTo: true,
  1647. title: '发起 OA 请假',
  1648. activeMenu: '/bpm/oa/leave'
  1649. }
  1650. },
  1651. {
  1652. path: 'oa/leave/detail',
  1653. component: () => import('@/views/bpm/oa/leave/detail.vue'),
  1654. name: 'OALeaveDetail',
  1655. meta: {
  1656. noCache: true,
  1657. hidden: true,
  1658. canTo: true,
  1659. title: '查看 OA 请假',
  1660. activeMenu: '/bpm/oa/leave'
  1661. }
  1662. },
  1663. {
  1664. path: 'manager/model/create',
  1665. component: () => import('@/views/bpm/model/form/index.vue'),
  1666. name: 'BpmModelCreate',
  1667. meta: {
  1668. noCache: true,
  1669. hidden: true,
  1670. canTo: true,
  1671. title: '创建流程',
  1672. activeMenu: '/bpm/manager/model'
  1673. }
  1674. },
  1675. {
  1676. path: 'manager/model/:type/:id',
  1677. component: () => import('@/views/bpm/model/form/index.vue'),
  1678. name: 'BpmModelUpdate',
  1679. meta: {
  1680. noCache: true,
  1681. hidden: true,
  1682. canTo: true,
  1683. title: '修改流程',
  1684. activeMenu: '/bpm/manager/model'
  1685. }
  1686. }
  1687. ]
  1688. },
  1689. {
  1690. path: '/mall/product', // 商品中心
  1691. component: Layout,
  1692. name: 'ProductCenter',
  1693. meta: {
  1694. hidden: true
  1695. },
  1696. children: [
  1697. {
  1698. path: 'spu/add',
  1699. component: () => import('@/views/mall/product/spu/form/index.vue'),
  1700. name: 'ProductSpuAdd',
  1701. meta: {
  1702. noCache: false, // 需要缓存
  1703. hidden: true,
  1704. canTo: true,
  1705. icon: 'ep:edit',
  1706. title: '商品添加',
  1707. activeMenu: '/mall/product/spu'
  1708. }
  1709. },
  1710. {
  1711. path: 'spu/edit/:id(\\d+)',
  1712. component: () => import('@/views/mall/product/spu/form/index.vue'),
  1713. name: 'ProductSpuEdit',
  1714. meta: {
  1715. noCache: true,
  1716. hidden: true,
  1717. canTo: true,
  1718. icon: 'ep:edit',
  1719. title: '商品编辑',
  1720. activeMenu: '/mall/product/spu'
  1721. }
  1722. },
  1723. {
  1724. path: 'spu/detail/:id(\\d+)',
  1725. component: () => import('@/views/mall/product/spu/form/index.vue'),
  1726. name: 'ProductSpuDetail',
  1727. meta: {
  1728. noCache: true,
  1729. hidden: true,
  1730. canTo: true,
  1731. icon: 'ep:view',
  1732. title: '商品详情',
  1733. activeMenu: '/mall/product/spu'
  1734. }
  1735. },
  1736. {
  1737. path: 'property/value/:propertyId(\\d+)',
  1738. component: () => import('@/views/mall/product/property/value/index.vue'),
  1739. name: 'ProductPropertyValue',
  1740. meta: {
  1741. noCache: true,
  1742. hidden: true,
  1743. canTo: true,
  1744. icon: 'ep:view',
  1745. title: '商品属性值',
  1746. activeMenu: '/product/property'
  1747. }
  1748. }
  1749. ]
  1750. },
  1751. {
  1752. path: '/mall/trade', // 交易中心
  1753. component: Layout,
  1754. name: 'TradeCenter',
  1755. meta: {
  1756. hidden: true
  1757. },
  1758. children: [
  1759. {
  1760. path: 'order/detail/:id(\\d+)',
  1761. component: () => import('@/views/mall/trade/order/detail/index.vue'),
  1762. name: 'TradeOrderDetail',
  1763. meta: { title: '订单详情', icon: 'ep:view', activeMenu: '/mall/trade/order' }
  1764. },
  1765. {
  1766. path: 'after-sale/detail/:id(\\d+)',
  1767. component: () => import('@/views/mall/trade/afterSale/detail/index.vue'),
  1768. name: 'TradeAfterSaleDetail',
  1769. meta: { title: '退款详情', icon: 'ep:view', activeMenu: '/mall/trade/after-sale' }
  1770. }
  1771. ]
  1772. },
  1773. {
  1774. path: '/member',
  1775. component: Layout,
  1776. name: 'MemberCenter',
  1777. meta: { hidden: true },
  1778. children: [
  1779. {
  1780. path: 'user/detail/:id',
  1781. name: 'MemberUserDetail',
  1782. meta: {
  1783. title: '会员详情',
  1784. noCache: true,
  1785. hidden: true
  1786. },
  1787. component: () => import('@/views/member/user/detail/index.vue')
  1788. }
  1789. ]
  1790. },
  1791. {
  1792. path: '/pay',
  1793. component: Layout,
  1794. name: 'pay',
  1795. meta: { hidden: true },
  1796. children: [
  1797. {
  1798. path: 'cashier',
  1799. name: 'PayCashier',
  1800. meta: {
  1801. title: '收银台',
  1802. noCache: true,
  1803. hidden: true
  1804. },
  1805. component: () => import('@/views/pay/cashier/index.vue')
  1806. }
  1807. ]
  1808. },
  1809. // {
  1810. // path: '/device_monitor',
  1811. // component: Layout,
  1812. // name: 'kanban',
  1813. // meta: { hidden: true },
  1814. // children: [
  1815. // {
  1816. // path: 'kanban',
  1817. // name: 'DeviceKanban',
  1818. // meta: {
  1819. // title: '设备看板',
  1820. // noCache: true,
  1821. // hidden: true
  1822. // },
  1823. // component: () => import('@/views/pms/monitor/kanban.vue')
  1824. // }
  1825. // ]
  1826. // },
  1827. {
  1828. path: '/kanban',
  1829. component: Layout,
  1830. name: 'kanban',
  1831. meta: { hidden: true },
  1832. children: [
  1833. {
  1834. path: 'monitor/kanban',
  1835. name: 'Kanban',
  1836. meta: {
  1837. title: '设备看板',
  1838. noCache: true,
  1839. hidden: true,
  1840. canTo: true,
  1841. activeMenu: '/kanban/monitor/kanban'
  1842. },
  1843. component: () => import('@/views/pms/monitor/kanban.vue')
  1844. },
  1845. {
  1846. path: 'monitor/kanbanOther',
  1847. name: 'KanbanOther',
  1848. meta: {
  1849. title: '设备看板',
  1850. noCache: true,
  1851. hidden: true
  1852. },
  1853. component: () => import('@/views/pms/monitor/kanban2.vue')
  1854. }
  1855. ]
  1856. },
  1857. {
  1858. path: '/diy',
  1859. name: 'DiyCenter',
  1860. meta: { hidden: true },
  1861. component: Layout,
  1862. children: [
  1863. {
  1864. path: 'template/decorate/:id',
  1865. name: 'DiyTemplateDecorate',
  1866. meta: {
  1867. title: '模板装修',
  1868. noCache: true,
  1869. hidden: true,
  1870. activeMenu: '/mall/promotion/diy/template'
  1871. },
  1872. component: () => import('@/views/mall/promotion/diy/template/decorate.vue')
  1873. },
  1874. {
  1875. path: 'page/decorate/:id',
  1876. name: 'DiyPageDecorate',
  1877. meta: {
  1878. title: '页面装修',
  1879. noCache: true,
  1880. hidden: true,
  1881. activeMenu: '/mall/promotion/diy/page'
  1882. },
  1883. component: () => import('@/views/mall/promotion/diy/page/decorate.vue')
  1884. }
  1885. ]
  1886. },
  1887. {
  1888. path: '/crm',
  1889. component: Layout,
  1890. name: 'CrmCenter',
  1891. meta: { hidden: true },
  1892. children: [
  1893. {
  1894. path: 'clue/detail/:id',
  1895. name: 'CrmClueDetail',
  1896. meta: {
  1897. title: '线索详情',
  1898. noCache: true,
  1899. hidden: true,
  1900. activeMenu: '/crm/clue'
  1901. },
  1902. component: () => import('@/views/crm/clue/detail/index.vue')
  1903. },
  1904. {
  1905. path: 'customer/detail/:id',
  1906. name: 'CrmCustomerDetail',
  1907. meta: {
  1908. title: '客户详情',
  1909. noCache: true,
  1910. hidden: true,
  1911. activeMenu: '/crm/customer'
  1912. },
  1913. component: () => import('@/views/crm/customer/detail/index.vue')
  1914. },
  1915. {
  1916. path: 'business/detail/:id',
  1917. name: 'CrmBusinessDetail',
  1918. meta: {
  1919. title: '商机详情',
  1920. noCache: true,
  1921. hidden: true,
  1922. activeMenu: '/crm/business'
  1923. },
  1924. component: () => import('@/views/crm/business/detail/index.vue')
  1925. },
  1926. {
  1927. path: 'contract/detail/:id',
  1928. name: 'CrmContractDetail',
  1929. meta: {
  1930. title: '合同详情',
  1931. noCache: true,
  1932. hidden: true,
  1933. activeMenu: '/crm/contract'
  1934. },
  1935. component: () => import('@/views/crm/contract/detail/index.vue')
  1936. },
  1937. {
  1938. path: 'receivable-plan/detail/:id',
  1939. name: 'CrmReceivablePlanDetail',
  1940. meta: {
  1941. title: '回款计划详情',
  1942. noCache: true,
  1943. hidden: true,
  1944. activeMenu: '/crm/receivable-plan'
  1945. },
  1946. component: () => import('@/views/crm/receivable/plan/detail/index.vue')
  1947. },
  1948. {
  1949. path: 'receivable/detail/:id',
  1950. name: 'CrmReceivableDetail',
  1951. meta: {
  1952. title: '回款详情',
  1953. noCache: true,
  1954. hidden: true,
  1955. activeMenu: '/crm/receivable'
  1956. },
  1957. component: () => import('@/views/crm/receivable/detail/index.vue')
  1958. },
  1959. {
  1960. path: 'contact/detail/:id',
  1961. name: 'CrmContactDetail',
  1962. meta: {
  1963. title: '联系人详情',
  1964. noCache: true,
  1965. hidden: true,
  1966. activeMenu: '/crm/contact'
  1967. },
  1968. component: () => import('@/views/crm/contact/detail/index.vue')
  1969. },
  1970. {
  1971. path: 'product/detail/:id',
  1972. name: 'CrmProductDetail',
  1973. meta: {
  1974. title: '产品详情',
  1975. noCache: true,
  1976. hidden: true,
  1977. activeMenu: '/crm/product'
  1978. },
  1979. component: () => import('@/views/crm/product/detail/index.vue')
  1980. }
  1981. ]
  1982. },
  1983. {
  1984. path: '/ai',
  1985. component: Layout,
  1986. name: 'Ai',
  1987. meta: {
  1988. hidden: true
  1989. },
  1990. children: [
  1991. {
  1992. path: 'image/square',
  1993. component: () => import('@/views/ai/image/square/index.vue'),
  1994. name: 'AiImageSquare',
  1995. meta: {
  1996. title: '绘图作品',
  1997. icon: 'ep:home-filled',
  1998. noCache: false
  1999. }
  2000. },
  2001. {
  2002. path: 'knowledge/document',
  2003. component: () => import('@/views/ai/knowledge/document/index.vue'),
  2004. name: 'AiKnowledgeDocument',
  2005. meta: {
  2006. title: '知识库文档',
  2007. icon: 'ep:document',
  2008. noCache: false,
  2009. activeMenu: '/ai/knowledge'
  2010. }
  2011. },
  2012. {
  2013. path: 'knowledge/document/create',
  2014. component: () => import('@/views/ai/knowledge/document/form/index.vue'),
  2015. name: 'AiKnowledgeDocumentCreate',
  2016. meta: {
  2017. title: '创建文档',
  2018. icon: 'ep:plus',
  2019. noCache: true,
  2020. hidden: true,
  2021. activeMenu: '/ai/knowledge'
  2022. }
  2023. },
  2024. {
  2025. path: 'knowledge/document/update',
  2026. component: () => import('@/views/ai/knowledge/document/form/index.vue'),
  2027. name: 'AiKnowledgeDocumentUpdate',
  2028. meta: {
  2029. title: '修改文档',
  2030. icon: 'ep:edit',
  2031. noCache: true,
  2032. hidden: true,
  2033. activeMenu: '/ai/knowledge'
  2034. }
  2035. },
  2036. {
  2037. path: 'knowledge/retrieval',
  2038. component: () => import('@/views/ai/knowledge/knowledge/retrieval/index.vue'),
  2039. name: 'AiKnowledgeRetrieval',
  2040. meta: {
  2041. title: '文档召回测试',
  2042. icon: 'ep:search',
  2043. noCache: true,
  2044. hidden: true,
  2045. activeMenu: '/ai/knowledge'
  2046. }
  2047. },
  2048. {
  2049. path: 'knowledge/segment',
  2050. component: () => import('@/views/ai/knowledge/segment/index.vue'),
  2051. name: 'AiKnowledgeSegment',
  2052. meta: {
  2053. title: '知识库分段',
  2054. icon: 'ep:tickets',
  2055. noCache: true,
  2056. hidden: true,
  2057. activeMenu: '/ai/knowledge'
  2058. }
  2059. },
  2060. {
  2061. path: 'console/workflow/create',
  2062. component: () => import('@/views/ai/workflow/form/index.vue'),
  2063. name: 'AiWorkflowCreate',
  2064. meta: {
  2065. noCache: true,
  2066. hidden: true,
  2067. canTo: true,
  2068. title: '设计 AI 工作流',
  2069. activeMenu: '/ai/console/workflow'
  2070. }
  2071. },
  2072. {
  2073. path: 'console/workflow/:type/:id',
  2074. component: () => import('@/views/ai/workflow/form/index.vue'),
  2075. name: 'AiWorkflowUpdate',
  2076. meta: {
  2077. noCache: true,
  2078. hidden: true,
  2079. canTo: true,
  2080. title: '设计 AI 工作流',
  2081. activeMenu: '/ai/console/workflow'
  2082. }
  2083. }
  2084. ]
  2085. },
  2086. {
  2087. path: '/:pathMatch(.*)*',
  2088. component: () => import('@/views/Error/404.vue'),
  2089. name: '',
  2090. meta: {
  2091. title: '404',
  2092. hidden: true,
  2093. breadcrumb: false
  2094. }
  2095. },
  2096. {
  2097. path: '/iot',
  2098. component: Layout,
  2099. name: 'IOT',
  2100. meta: {
  2101. hidden: true
  2102. },
  2103. children: [
  2104. {
  2105. path: 'product/product/detail/:id',
  2106. name: 'IoTProductDetail',
  2107. meta: {
  2108. title: '产品详情',
  2109. noCache: true,
  2110. hidden: true,
  2111. activeMenu: '/iot/device/product'
  2112. },
  2113. component: () => import('@/views/iot/product/product/detail/index.vue')
  2114. },
  2115. {
  2116. path: 'device/detail/:id',
  2117. name: 'IoTDeviceDetail',
  2118. meta: {
  2119. title: '设备详情',
  2120. noCache: true,
  2121. hidden: true,
  2122. activeMenu: '/iot/device/device'
  2123. },
  2124. component: () => import('@/views/iot/device/device/detail/index.vue')
  2125. }
  2126. // {
  2127. // path: 'plugin/detail/:id',
  2128. // name: 'IoTPluginDetail',
  2129. // meta: {
  2130. // title: '插件详情',
  2131. // noCache: true,
  2132. // hidden: true,
  2133. // activeMenu: '/iot/plugin'
  2134. // },
  2135. // component: () => import('@/views/iot/plugin/detail/index.vue')
  2136. // }
  2137. ]
  2138. },
  2139. // 视频中心**********************************
  2140. {
  2141. path: '/videocenter',
  2142. component: Layout,
  2143. name: 'VideoCenter',
  2144. meta: {
  2145. hidden: true
  2146. // keepAlive: true,
  2147. // alwaysShow: true,
  2148. // title: '视频中心',
  2149. // icon: 'ep:camera'
  2150. },
  2151. children: [
  2152. // {
  2153. // path: 'category',
  2154. // component: () => import('@/views/pms/video_center/category/index.vue'),
  2155. // name: 'VideoCenterCategory',
  2156. // meta: {
  2157. // title: '产品分类',
  2158. // hidden: false,
  2159. // icon: 'ep:full-screen'
  2160. // }
  2161. // },
  2162. // {
  2163. // path: 'product',
  2164. // component: () => import('@/views/pms/video_center/product/index.vue'),
  2165. // name: 'VideoCenterProduct',
  2166. // meta: {
  2167. // title: '产品管理',
  2168. // hidden: false,
  2169. // icon: 'ep:full-screen'
  2170. // }
  2171. // },
  2172. // 协议管理
  2173. // {
  2174. // path: 'protocol',
  2175. // component: () => import('@/views/pms/video_center/protocol/index.vue'),
  2176. // name: 'VideoCenterProtocol',
  2177. // meta: {
  2178. // title: '协议管理',
  2179. // hidden: false,
  2180. // icon: 'ep:full-screen'
  2181. // }
  2182. // },
  2183. {
  2184. path: 'product/product-edit',
  2185. component: () => import('@/views/pms/video_center/product/product-edit.vue'),
  2186. name: 'VideoCenterProductEdit',
  2187. meta: {
  2188. title: '产品编辑/新增',
  2189. hidden: true
  2190. }
  2191. },
  2192. // {
  2193. // path: 'device',
  2194. // component: () => import('@/views/pms/video_center/device/index.vue'),
  2195. // name: 'VideoCenterDevice',
  2196. // meta: {
  2197. // title: '设备管理',
  2198. // hidden: false,
  2199. // icon: 'ep:monitor',
  2200. // noCache: false
  2201. // }
  2202. // },
  2203. // 新增/编辑 设备
  2204. {
  2205. path: 'device/device-edit',
  2206. component: () => import('@/views/pms/video_center/device/device-edit.vue'),
  2207. name: 'VideoCenterDeviceEdit',
  2208. meta: {
  2209. title: '设备编辑/新增',
  2210. hidden: true
  2211. }
  2212. }
  2213. // {
  2214. // path: 'splitview',
  2215. // component: () => import('@/views/pms/video_center/sip/splitview.vue'),
  2216. // name: 'VideoCenterSplitview',
  2217. // meta: {
  2218. // title: '分屏显示',
  2219. // hidden: false,
  2220. // icon: 'ep:full-screen'
  2221. // }
  2222. // },
  2223. // {
  2224. // path: 'channelManagement',
  2225. // component: () => import('@/views/pms/video_center/sip/index.vue'),
  2226. // name: 'VideoCenterProductList',
  2227. // meta: {
  2228. // title: '通道管理',
  2229. // hidden: false,
  2230. // icon: 'ep:box'
  2231. // }
  2232. // },
  2233. // {
  2234. // path: 'mediaServer',
  2235. // component: () => import('@/views/pms/video_center/sip/mediaServer.vue'),
  2236. // name: 'VideoCenterMediaServer',
  2237. // meta: {
  2238. // title: '视频配置',
  2239. // hidden: false,
  2240. // icon: 'ep:setting'
  2241. // }
  2242. // }
  2243. ]
  2244. },
  2245. // qhse事故事件上报详情
  2246. {
  2247. path: '/qhse',
  2248. component: Layout,
  2249. name: 'Qhse',
  2250. meta: {
  2251. hidden: true
  2252. },
  2253. children: [
  2254. {
  2255. path: 'qhse_faultReport/detail',
  2256. component: () => import('@/views/pms/qhse/faultReport/QhseFaultReportInfo.vue'),
  2257. name: 'QhseFaultReportDetail',
  2258. meta: {
  2259. title: '事故事件详情',
  2260. hidden: true
  2261. }
  2262. }
  2263. ]
  2264. }
  2265. ]
  2266. export default remainingRouter