generator-platform-routers.js 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661
  1. // eslint-disable-next-line
  2. import * as loginService from '@/api/upms/login'
  3. // eslint-disable-next-line
  4. import { UserLayout, BasicLayout, BlankLayout, RouteView, PageView } from '@/layouts'
  5. import { GlobalConstant } from '@/constant'
  6. import BaseTool from '../utils/tool'
  7. // 前端路由表
  8. const constantRouterComponents = {
  9. // 基础页面 layout 必须引入
  10. 'UserLayout': UserLayout,
  11. 'BasicLayout': BasicLayout,
  12. 'BlankLayout': BlankLayout,
  13. 'RouteView': RouteView,
  14. 'PageView': PageView,
  15. '403': () => import(/* webpackChunkName: "error" */ '@/views/exception/403'),
  16. '404': () => import(/* webpackChunkName: "error" */ '@/views/exception/404'),
  17. '500': () => import(/* webpackChunkName: "error" */ '@/views/exception/500'),
  18. 'IndexView': () => import(/* webpackChunkName: "error" */ '@/views/index/Index'),
  19. // form
  20. 'BasicForm': () => import('@/views/form/BasicForm'),
  21. 'StepForm': () => import('@/views/form/stepForm/StepForm'),
  22. 'AdvanceForm': () => import('@/views/form/advancedForm/AdvancedForm'),
  23. // list
  24. 'TableList': () => import('@/views/list/TableList'),
  25. 'StandardList': () => import('@/views/list/StandardList'),
  26. 'CardList': () => import('@/views/list/CardList'),
  27. 'SearchLayout': () => import('@/views/list/search/SearchLayout'),
  28. 'SearchArticles': () => import('@/views/list/search/Article'),
  29. 'SearchProjects': () => import('@/views/list/search/Projects'),
  30. 'SearchApplications': () => import('@/views/list/search/Applications'),
  31. 'ProfileBasic': () => import('@/views/profile/basic/Index'),
  32. 'ProfileAdvanced': () => import('@/views/profile/advanced/Advanced'),
  33. // upms
  34. 'Dept': () => import('@/views/upms/dept/Dept'),
  35. 'User': () => import('@/views/upms/user/User'),
  36. 'Role': () => import('@/views/upms/role/Role'),
  37. 'Menu': () => import('@/views/upms/menu/Menu'),
  38. 'Dict': () => import('@/views/upms/dict/Dict'),
  39. 'Notice': () => import('@/views/upms/notice/SysNotice'),
  40. 'Log': () => import('@/views/upms/log/Log'),
  41. 'Task': () => import('@/views/upms/task/Task'),
  42. 'Config': () => import('@/views/upms/config/Config'),
  43. 'SysTeam': () => import('@/views/upms/team/SysTeam'),
  44. 'BaseImg': () => import('@/views/upms/baseImg/BaseImg'),
  45. // result
  46. 'ResultSuccess': () => import(/* webpackChunkName: "result" */ '@/views/result/Success'),
  47. 'ResultFail': () => import(/* webpackChunkName: "result" */ '@/views/result/Error'),
  48. // exception
  49. 'Exception403': () => import(/* webpackChunkName: "fail" */ '@/views/exception/403'),
  50. 'Exception404': () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'),
  51. 'Exception500': () => import(/* webpackChunkName: "fail" */ '@/views/exception/500'),
  52. // account
  53. 'AccountCenter': () => import('@/views/account/center/Index'),
  54. 'AccountSettings': () => import('@/views/account/settings/Index'),
  55. // 其他组件
  56. 'IconSelectorView': () => import('@/views/other/IconSelectorView'),
  57. 'TreeList': () => import('@/views/other/TreeList'),
  58. 'TableInnerEditList': () => import('@/views/other/TableInnerEditList'),
  59. 'UserList': () => import('@/views/other/UserList'),
  60. 'RoleList': () => import('@/views/other/RoleList'),
  61. 'SystemRoleList': () => import('@/views/role/RoleList'),
  62. 'PermissionList': () => import('@/views/other/PermissionList'),
  63. // 设备类型
  64. 'SbType': () => import('@/views/sb/type/SbType'),
  65. // 设备位置
  66. 'SbPosition': () => import('@/views/sb/position/SbPosition'),
  67. // 设别规格
  68. 'SbGuige': () => import('@/views/sb/guige/SbGuige'),
  69. // 设别基础信息
  70. 'SbInfo': () => import('@/views/sb/info/SbInfo'),
  71. // 测量设备基础信息
  72. 'MeasureSbInfo': () => import('@/views/sb/measure/MeasureSbInfo'),
  73. 'TestMeasureSbInfo': () => import('@/views/sb/measure/TestMeasureSbInfo'),
  74. // 测量设备预警台账
  75. 'MeasureSbInfoWarn': () => import('@/views/sb/measure/MeasureSbInfoWarn'),
  76. // 测量设备-检定记录
  77. 'MeasureLog': () => import('@/views/sb/measurelog/MeasureLog'),
  78. // 特种设备基础信息
  79. 'SpecialSbInfo': () => import('@/views/sb/info/SpecialSbInfo'),
  80. // 父子设备树
  81. 'ParentSbInfo': () => import('@/views/sb/info/ParentSbInfo'),
  82. // 设别型号库
  83. 'SbModel': () => import('@/views/sb/model/SbModel'),
  84. // 设备bom
  85. 'SbModelBom': () => import('@/views/sb/modelbom/SbModelBom'),
  86. // 设备型号筛选对应的备件bom
  87. 'SbModelSpareListBom': () => import('@/views/sb/modelbom/SbModelSpareListBom'),
  88. // 设备树
  89. 'SbInfoTree': () => import('@/views/sb/info/SbInfoTree'),
  90. // 部件类别
  91. 'PartType': () => import('@/views/part/type/PartType'),
  92. // 部件信息
  93. 'PartInfo': () => import('@/views/part/info/PartInfo'),
  94. // 部件信息
  95. 'SbInfoForPartInfo': () => import('@/views/sb/info/SbInfoForPartInfo'),
  96. // 备件类别
  97. 'SpareType': () => import('@/views/sqarepartmanage/sparetype/SpareType'),
  98. // 备件基础信息和报表
  99. 'SparePartInfo': () => import('@/views/sqarepartmanage/sparepartinfo/SparePartInfo'),
  100. 'SparePartInfoCheckWarn': () => import('@/views/sqarepartmanage/sparepartinfo/SpareStoreTotalCheckStock'),
  101. 'SparePartInfoPrint': () => import('@/views/sqarepartmanage/sparepartinfo/SparePartInfoPrint'),
  102. 'SparePartMonthReport': () => import('@/views/sqarepartmanage/report/SparePartMonthReport'),
  103. 'SpareStoreBom': () => import('@/views/store/storesparebom/SpareStoreBom.vue'),
  104. 'SpareBomRecord': () => import('@/views/store/storesparebom/SpareBomRecord.vue'),
  105. // 备件库存汇总
  106. 'SpareStoreTotal': () => import('@/views/sqarepartmanage/sparepartinfo/SpareStoreTotal'),
  107. // 备件库存汇总预警
  108. 'SpareStoreTotalMinStock': () => import('@/views/sqarepartmanage/sparepartinfo/SpareStoreTotalMinStock'),
  109. // 备件使用信息
  110. 'SparePartUsed': () => import('@/views/sqarepartmanage/sparepartused/SparePartUsed'),
  111. // 点检
  112. 'SpotCheckStandard': () => import('@/views/check/checkstandard/SpotCheckStandard'),
  113. 'SpotCheckProject': () => import('@/views/check/checkproject/SpotCheckProject'),
  114. 'SpotCheckPlan': () => import('@/views/check/checkplan/SpotCheckPlan'),
  115. 'SpotCheckJob': () => import('@/views/check/checkjob/SpotCheckJob'),
  116. // 保养
  117. 'PollingCheckStandard': () => import('@/views/check/checkstandard/PollingCheckStandard'),
  118. 'BatchCheckStandard': () => import('@/views/check/checkstandard/BatchCheckStandard'),
  119. 'PollingCheckProject': () => import('@/views/check/checkproject/PollingCheckProject'),
  120. 'PollingCheckPlan': () => import('@/views/check/checkplan/PollingCheckPlan'),
  121. 'PollingCheckJob': () => import('@/views/check/checkjob/PollingCheckJob'),
  122. 'PollingCheckJobOverTime': () => import('@/views/check/checkjob/PollingCheckJobOverTime'),
  123. 'PollingCheckJobFinish': () => import('@/views/check/checkjob/PollingCheckJobFinish'),
  124. 'CheckStatistics': () => import('@/views/check/checkstatistics/CheckStatistics'),
  125. 'CheckDetail': () => import('@/views/check/check-detail/CheckDetail'),
  126. // 润滑
  127. 'RunCheckStandard': () => import('@/views/check/checkstandard/RunCheckStandard'),
  128. 'RunCheckProject': () => import('@/views/check/checkproject/RunCheckProject'),
  129. 'RunCheckPlan': () => import('@/views/check/checkplan/RunCheckPlan'),
  130. 'RunCheckJob': () => import('@/views/check/checkjob/RunCheckJob'),
  131. // 工器具校准
  132. 'AdjustCheckStandard': () => import('@/views/check/checkstandard/AdjustCheckStandard'),
  133. 'AdjustCheckProject': () => import('@/views/check/checkproject/AdjustCheckProject'),
  134. 'AdjustCheckPlan': () => import('@/views/check/checkplan/AdjustCheckPlan'),
  135. 'AdjustCheckJob': () => import('@/views/check/checkjob/AdjustCheckJob'),
  136. // 特种设备定期检验
  137. 'SpecialCheckStandard': () => import('@/views/check/checkstandard/SpecialCheckStandard'),
  138. 'SpecialCheckProject': () => import('@/views/check/checkproject/SpecialCheckProject'),
  139. 'SpecialCheckPlan': () => import('@/views/check/checkplan/SpecialCheckPlan'),
  140. 'SpecialCheckJob': () => import('@/views/check/checkjob/SpecialCheckJob'),
  141. // 仓库信息
  142. 'Store': () => import('@/views/store/store/Store'),
  143. // 备件库存
  144. 'SpareStore': () => import('@/views/store/sparestore/SpareStore'),
  145. // 备件二级库存
  146. 'SpareStoreSecond': () => import('@/views/store/sparestoresecond/SpareStoreSecond'),
  147. // 入库登记单
  148. 'InStoreForm': () => import('@/views/store/instoreform/InStoreForm'),
  149. // 出库登记单
  150. 'OutStoreForm': () => import('@/views/store/outstoreform/OutStoreForm'),
  151. // 调拨登记单
  152. 'TransferStoreForm': () => import('@/views/store/transferstoreform/TransferStoreForm'),
  153. // 备件领用详情
  154. 'SparePickDetail': () => import('@/views/store/sparepickdetail/SparePickDetail'),
  155. // 备件领用登记单
  156. 'SparePickForm': () => import('@/views/store/sparepickform/SparePickForm'),
  157. // 备件回收详情
  158. 'SpareRecoveryDetail': () => import('@/views/store/sparerecoverydetail/SpareRecoveryDetail'),
  159. // 备件回收登记单
  160. 'SpareRecoveryForm': () => import('@/views/store/sparerecoveryform/SpareRecoveryForm'),
  161. // 备件退库详情
  162. 'SpareRestoreDetail': () => import('@/views/store/sparerestoredetail/SpareRestoreDetail'),
  163. // 备件退库登记单
  164. 'SpareRestoreForm': () => import('@/views/store/sparerestoreform/SpareRestoreForm'),
  165. // 备件退货详情
  166. 'SpareBackDetail': () => import('@/views/store/sparebackdetail/SpareBackDetail'),
  167. // 备件退货登记单
  168. 'SpareBackForm': () => import('@/views/store/sparebackform/SpareBackForm'),
  169. // 入库详情
  170. 'InStoreDetail': () => import('@/views/store/instoredetail/InStoreDetail'),
  171. // 出库详情
  172. 'OutStoreDetail': () => import('@/views/store/outstoredetail/OutStoreDetail'),
  173. // 调拨详情
  174. 'TransferStoreDetail': () => import('@/views/store/transferstoredetail/TransferStoreDetail'),
  175. // 报修单
  176. 'RepairApplicationForm': () => import('@/views/repair/application-form/RepairApplicationForm'),
  177. 'RepairOut': () => import('@/views/repair/application-form/RepairOut'),
  178. // 转派审批
  179. 'TransferApproval': () => import('@/views/repair/application-form/TransferApproval'),
  180. // 验收单
  181. 'RepairCheckForm': () => import('@/views/repair/application-form/RepairCheckForm'),
  182. // 维修单
  183. 'RepairForm': () => import('@/views/repair/application-form/RepairForm'),
  184. 'MRepairForm': () => import('@/views/repair/application-form/MyRepairForm'),
  185. 'MyRepairForm': () => import('@/views/repair/form/MyRepairForm'),
  186. // 验收单
  187. 'RepairCheck': () => import('@/views/repair/check/RepairCheck'),
  188. // 故障类别
  189. 'ErrorType': () => import('@/views/repair/errortype/ErrorType'),
  190. // 维修费用单
  191. 'RepairFee': () => import('@/views/repair/fee/RepairFee'),
  192. // 维修项目
  193. 'RepairProject': () => import('@/views/repair/repairproject/RepairProject'),
  194. 'RepairReason': () => import('@/views/repair/repair-reason/RepairReason'),
  195. // 生产商
  196. 'FirmProducer': () => import('@/views/firm/producer/FirmProducer'),
  197. // 报表管理
  198. 'MonthlySbThreeRate': () => import('@/views/monthly/sb-three-rate/MonthlySbThreeRateView'),
  199. // 工作票管理
  200. 'Ticket': () => import('@/views/ticket/ticket/Ticket'),
  201. 'TicketSafe': () => import('@/views/ticket/ticketsafe/TicketSafe'),
  202. 'TicketExecute': () => import('@/views/ticket/ticketexecute/TicketExecute'),
  203. 'TicketSafeExecute': () => import('@/views/ticket/ticketsafeexecute/TicketSafeExecute'),
  204. // 日常管理
  205. 'FillInfo': () => import('@/views/fill/info/FillInfo'),
  206. 'FillGather': () => import('@/views/fill/gather/FillGather'),
  207. 'SbInspectionFill': () => import('@/views/sb/inspection-fill/SbInspectionFill'),
  208. 'MySbInspectionFill': () => import('@/views/sb/inspection-fill/MySbInspectionFill'),
  209. 'ZGSbInspectionFill': () => import('@/views/sb/inspection-fill/ZGSbInspectionFill'),
  210. 'AdminSbInspectionFill': () => import('@/views/sb/inspection-fill/AdminSbInspectionFill'),
  211. 'SbRunFill': () => import('@/views/sb/run-fill/SbRunFill'),
  212. 'ZGSbRunFill': () => import('@/views/sb/run-fill/ZGSbRunFill'),
  213. 'MySbRunFill': () => import('@/views/sb/run-fill/MySbRunFill'),
  214. 'AdminSbRunFill': () => import('@/views/sb/run-fill/AdminSbRunFill'),
  215. // 仓库月报表
  216. 'StoreMonthReport': () => import('@/views/report/store/StoreMonthReport'),
  217. // 出入库明细+汇总
  218. 'ReportInStoreDetail': () => import('@/views/report/instoredetail/InStoreDetail'),
  219. 'MyReportInStoreDetail': () => import('@/views/report/instoredetail/MyInStoreDetail'),
  220. 'ReportOutStoreDetail': () => import('@/views/report/outstoredetail/OutStoreDetail'),
  221. 'MyReportOutStoreDetail': () => import('@/views/report/outstoredetail/MyOutStoreDetail'),
  222. 'ReportInStoreCount': () => import('@/views/report/instorecount/InStoreCount'),
  223. 'ReportOutStoreCount': () => import('@/views/report/outstorecount/OutStoreCount'),
  224. 'ReportSparePartInfo': () => import('@/views/report/sparepartinfo/SparePartInfo'),
  225. 'ReportSparePickDetail': () => import('@/views/report/sparepickdetail/SparePickDetail'),
  226. 'MyReportSparePickDetail': () => import('@/views/report/sparepickdetail/MySparePickDetail'),
  227. 'ReportSparePickCount': () => import('@/views/report/sparepickcount/SparePickCount'),
  228. 'StatisticsRepairFormSb': () => import('@/views/statistics/repair/StatisticsRepairFormSb'),
  229. 'StatisticsRepairFormMonth': () => import('@/views/statistics/repair/StatisticsRepairFormMonthView'),
  230. 'StatisticsRepairFormErrorType': () => import('@/views/statistics/repair/StatisticsRepairFormErrorTypeView'),
  231. 'StatisticsSparePartUsedSpare': () => import('@/views/statistics/spare/StatisticsSparePartUsedSpare'),
  232. 'StatisticsRepairFormUser': () => import('@/views/statistics/repair/StatisticsRepairFormUserView'),
  233. 'WorkplaceBacklog': () => import('@/views/workplace/backlog/WorkplaceBacklog'),
  234. 'Supplier': () => import('@/views/purchase/supplier/Supplier'),
  235. 'SupplierApply': () => import('@/views/purchase/supplier/SupplierApply'),
  236. 'PurchaseDemandPlan': () => import('@/views/purchase/purchase-demand-plan/PurchaseDemandPlan'),
  237. 'PurchasePlan': () => import('@/views/purchase/purchase-plan/PurchasePlan'),
  238. 'PurchasePayment': () => import('@/views/purchase/purchase-payment/PurchasePaymentPage'),
  239. 'PurchaseReimburse': () => import('@/views/purchase/purchase-reimburse/PurchaseReimbursePage'),
  240. 'PurchaseOrder': () => import('@/views/purchase/purchase-order/PurchaseOrder'),
  241. 'PurchaseApply': () => import('@/views/purchase/purchase-apply/PurchaseApply'),
  242. 'PurchaseDispatchOrderPage': () => import('@/views/purchase/purchase-dispatch-order/PurchaseDispatchOrderPage'),
  243. 'Model': () => import('@/views/activiti/model/Model'),
  244. 'Flow': () => import('@/views/activiti/flow/Flow'),
  245. 'MyTask': () => import('@/views/activiti/task/MyTask'),
  246. // 调拨申请
  247. 'SbAllocateApply': () => import('@/views/sb/allocate-apply/ProjectSbAllocateApply'),
  248. 'GroupToProjectSbAllocateApply': () => import('@/views/sb/allocate-apply/GroupToProjectSbAllocateApply'),
  249. 'ProjectToProjectSbAllocateApply': () => import('@/views/sb/allocate-apply/ProjectToProjectSbAllocateApply'),
  250. 'MySbAllocateApply': () => import('@/views/sb/allocate-apply/MySbAllocateApply'),
  251. 'ZGSbAllocateApply': () => import('@/views/sb/allocate-apply/ZGSbAllocateApply'),
  252. 'XmbZgSbAllocateApply': () => import('@/views/sb/allocate-apply/XmbZgSbAllocateApply'),
  253. 'FgsZgSbAllocateApply': () => import('@/views/sb/allocate-apply/FgsZgSbAllocateApply'),
  254. // 调拨审批
  255. 'SbAllocateTaskAudit': () => import('@/views/sb/allocate-task/SbAllocateTaskAudit'),
  256. 'SbOilUser': () => import('@/views/sb/oil/SbOilUser'),
  257. 'SbOilTask': () => import('@/views/sb/oil/SbOilTask'),
  258. 'SbOilAudit': () => import('@/views/sb/oil/SbOilAudit'),
  259. 'MySbOil': () => import('@/views/sb/oil/MySbOil'),
  260. 'ZGSbOil': () => import('@/views/sb/oil/ZGSbOil'),
  261. 'AdminSbOil': () => import('@/views/sb/oil/AdminSbOil'),
  262. // 我的功能
  263. 'ProjectStore': () => import('@/views/store/store/ProjectStore'),
  264. 'CompanyStore': () => import('@/views/store/store/CompanyStore'),
  265. 'MyStore': () => import('@/views/store/store/MyStore'),
  266. 'MyInStoreForm': () => import('@/views/store/instoreform/MyInStoreForm'),
  267. 'MyOutStoreForm': () => import('@/views/store/outstoreform/MyOutStoreForm'),
  268. 'MyTransferStoreForm': () => import('@/views/store/transferstoreform/MyTransferStoreForm'),
  269. 'MySparePickForm': () => import('@/views/store/sparepickform/MySparePickForm'),
  270. 'FastOutStore': () => import('@/views/store/fastoutstore/FastOutStore'),
  271. 'MySbInfo': () => import('@/views/sb/info/MySbInfo'),
  272. 'ProjectSbInfo': () => import('@/views/sb/info/ProjectSbInfo'),
  273. 'BanzuSbInfo': () => import('@/views/sb/info/BanzuSbInfo'),
  274. 'CompanySbInfo': () => import('@/views/sb/info/CompanySbInfo'),
  275. 'MySpareStore': () => import('@/views/store/sparestore/MySpareStore'),
  276. 'MySpareStoreTotal': () => import('@/views/store/sparestore/MySpareStoreTotal'),
  277. 'MyRunCheckJob': () => import('@/views/check/checkjob/MyRunCheckJob'),
  278. 'MyPollingCheckJob': () => import('@/views/check/checkjob/MyPollingCheckJob'),
  279. 'MyPollingCheckJob2': () => import('@/views/check/checkjob/MyPollingCheckJob2'),
  280. 'MyPollingCheckJobFinish': () => import('@/views/check/checkjob/MyPollingCheckJobFinish'),
  281. 'MyPollingCheckJobOverTime': () => import('@/views/check/checkjob/MyPollingCheckJobOverTime'),
  282. 'MySpotCheckJob': () => import('@/views/check/checkjob/MySpotCheckJob'),
  283. // 验收单
  284. 'SbCheckForm': () => import('@/views/sb/sbcheckform/SbCheckForm'),
  285. 'FillProjectQuantity': () => import('@/views/fill/project-quantity/FillProjectQuantity'),
  286. 'SbCheckDetail': () => import('@/views/sb/sbcheckdetail/SbCheckDetail'),
  287. 'Article': () => import('@/views/operate/article/Article'),
  288. 'Announcement': () => import('@/views/upms/announcement/Announcement'),
  289. // 备件盘点
  290. 'StoreCheckPlan': () => import('@/views/store/storecheckplan/StoreCheckPlan'),
  291. 'StoreCheckJob': () => import('@/views/store/storecheckjob/StoreCheckJob'),
  292. // 设备盘点
  293. 'SbStoreCheckPlan': () => import('@/views/sb/storecheckplan/StoreCheckPlan'),
  294. 'SbStoreCheckJob': () => import('@/views/sb/storecheckjob/StoreCheckJob'),
  295. // 保养任务日程表
  296. 'CheckJobCalendar': () => import('@/views/check/checkjob/CheckJobCalendar'),
  297. // 设备状态变更表
  298. 'SbStatusLog': () => import('@/views/sb/status-log/SbStatusLog'),
  299. // 设备停机记录表
  300. 'SbStopLog': () => import('@/views/sb/stop-logs/SbStopLog'),
  301. // 设备安装调试过程记录
  302. 'SbInfoDebug': () => import('@/views/sb/info/SbInfoDebug'),
  303. // 设备试车过程记录
  304. 'SbInfoTestRun': () => import('@/views/sb/info/SbInfoTestRun'),
  305. // 设备报废
  306. 'SbInfoScrap': () => import('@/views/sb/scrap/SbInfoScrap'),
  307. // 设备维护标准
  308. 'SbInfoStandard': () => import('@/views/sb/info/SbInfoStandard'),
  309. // 导入
  310. 'Imp': () => import('@/views/upms/impExcel/Imp'),
  311. // 低值易耗品管理
  312. 'InStoreFormDZ': () => import('@/views/dz/InStoreFormDZ'), // 入库登记单
  313. 'OutStoreFormDZ': () => import('@/views/dz/OutStoreFormDZ'), // 出库登记单
  314. 'TransferStoreFormDZ': () => import('@/views/dz/TransferStoreFormDZ'), // 调拨登记单
  315. 'SparePickFormDZ': () => import('@/views/dz/SparePickFormDZ'), // 领用登记单
  316. 'SpareBackFormDZ': () => import('@/views/dz/SpareBackFormDZ'), // 退库登记单
  317. // 报表
  318. 'AnalysisSbInfo': () => import('@/views/dashboard/AnalysisSbInfo'), // 保养任务完成率报表
  319. 'CheckJobReport': () => import('@/views/dashboard/CheckJobReport'), // 保养任务完成率报表
  320. 'CheckJobReportWeek': () => import('@/views/dashboard/CheckJobReportWeek'), // 保养任务周工作负荷统计报表
  321. 'RepairReport': () => import('@/views/dashboard/RepairReport'), // >24小时停机次数按月统计
  322. 'RepairReportSbAll': () => import('@/views/dashboard/RepairReportSbAll'), // 设备故障次数按月统计
  323. 'RepairReportSbInfo': () => import('@/views/dashboard/RepairReportSbInfo'), // 设备维修报表
  324. 'RepairReportSbInfoFee': () => import('@/views/dashboard/RepairReportSbInfoFee'), // 设备维修费用报表
  325. 'RepairReportMttr': () => import('@/views/dashboard/RepairReportMttr'), // MTTR月统计报表
  326. 'RepairReportTime': () => import('@/views/dashboard/RepairReportTime'), // 维修工时统计报表
  327. 'RepairWorkHourReport': () => import('@/views/report/repairworkhour/RepairWorkHour'), // 维修工时统计(按维修人/按设备)
  328. 'RepairReportFee': () => import('@/views/dashboard/RepairReportFee'), // 费用按月统计
  329. 'OutStoreStatistics': () => import('@/views/dashboard/OutStoreStatistics'), // 出库统计报表
  330. 'InStoreStatistics': () => import('@/views/dashboard/InStoreStatistics'), // 入库统计报表
  331. // 自定义管理
  332. 'CustomizeReport': () => import('@/views/customize/report/CustomizeReport'), // 自定义报表
  333. // 自定义
  334. 'CustomForm': () => import('@/views/custom/form/CustomForm.vue'),
  335. 'CustomClassName': () => import('@/views/custom/className/CustomClassName'), // 配置类
  336. 'CustomRelation': () => import('@/views/custom/relation/CustomRelation'), // 配置类
  337. 'CustomWorkflowRelation': () => import('@/views/custom/flowrelation/CustomWorkflowRelation'), // 业务流程关联
  338. //
  339. 'WaitPublish': () => import('@/views/workplace/publish/WaitPublish'),
  340. 'WaitWork': () => import('@/views/workplace/publish/WaitWork'),
  341. 'Executed': () => import('@/views/workplace/publish/Executed'),
  342. 'MyPublish': () => import('@/views/workplace/publish/MyPublish'),
  343. //
  344. 'HitchScreen': () => import('@/views/hitch-screen/index'),
  345. // threeJs
  346. 'Workflow': () => import('@/views/workflow/workflow/Workflow.vue')
  347. }
  348. // 前端未找到页面路由(固定不用改)
  349. const notFoundRouter = {
  350. path: '*', redirect: '/404', hidden: true
  351. }
  352. // 根级菜单
  353. const rootRouter = {
  354. key: 'RootIndex',
  355. path: '/',
  356. url: '/',
  357. name: 'index',
  358. component: 'BasicLayout',
  359. meta: { title: '首页' },
  360. redirect: '/WorkplaceBacklog',
  361. type: 1,
  362. children: []
  363. }
  364. /**
  365. * 基础路由
  366. * @type { *[] }
  367. */
  368. export const constantRouterMap = [
  369. {
  370. path: '/user',
  371. component: UserLayout,
  372. redirect: '/user/login',
  373. hidden: true,
  374. children: [
  375. {
  376. path: 'login',
  377. name: 'login',
  378. component: () => import(/* webpackChunkName: "user" */ '@/views/Login')
  379. },
  380. {
  381. path: '/work/scan',
  382. name: 'scan',
  383. component: () => import(/* webpackChunkName: "user" */ '@/views/Scan')
  384. },
  385. {
  386. path: 'register',
  387. name: 'register',
  388. component: () => import(/* webpackChunkName: "user" */ '@/views/Register')
  389. },
  390. {
  391. path: 'register-result',
  392. name: 'registerResult',
  393. component: () => import(/* webpackChunkName: "user" */ '@/views/RegisterResult')
  394. },
  395. {
  396. path: 'recover',
  397. name: 'recover',
  398. component: undefined
  399. }
  400. ]
  401. },
  402. {
  403. path: '/demo',
  404. component: BlankLayout,
  405. redirect: '/demo/test',
  406. hidden: true,
  407. children: [
  408. {
  409. path: 'test',
  410. name: 'test',
  411. component: () => import(/* webpackChunkName: "user" */ '@/views/test/BaseFormBak')
  412. }
  413. ]
  414. },
  415. {
  416. path: '/screen',
  417. component: BlankLayout,
  418. redirect: '/screen/leader',
  419. children: [
  420. {
  421. path: 'leader',
  422. name: 'LeaderScreen',
  423. component: () => import('@/views/big-screen/LeaderScreen')
  424. }
  425. ]
  426. },
  427. {
  428. path: '/repairScreen',
  429. component: BlankLayout,
  430. redirect: '/screen/repair',
  431. children: [
  432. {
  433. path: 'RepairScreen',
  434. name: 'RepairScreen',
  435. component: () => import('@/views/big-screen/RepairScreen')
  436. }
  437. ]
  438. },
  439. {
  440. path: '/chartReport',
  441. component: BlankLayout,
  442. redirect: '/chart/report',
  443. children: [
  444. {
  445. path: 'ChartReport',
  446. name: 'ChartReport',
  447. component: () => import('@/views/dashboard/template/ChartReport')
  448. }
  449. ]
  450. },
  451. {
  452. path: '/404',
  453. component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
  454. },
  455. {
  456. path: '/single/login',
  457. name: 'SingleLogin',
  458. component: () => import('@/views/white-list/SingleLogin'),
  459. meta: {
  460. title: '单点登录',
  461. keepAlive: false,
  462. hiddenHeaderContent: true,
  463. target: null,
  464. permission: ''
  465. },
  466. hidden: true,
  467. hideChildrenInMenu: true
  468. },
  469. {
  470. path: '/result/success',
  471. name: 'ResultSuccess',
  472. component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'),
  473. meta: {
  474. title: '结果页',
  475. keepAlive: false,
  476. hiddenHeaderContent: true,
  477. target: null,
  478. permission: ''
  479. },
  480. hidden: true,
  481. hideChildrenInMenu: true
  482. }
  483. ]
  484. /**
  485. * 默认菜单
  486. */
  487. const defaultRouter = {
  488. key: 'RootDefault',
  489. path: '/default',
  490. url: '/default',
  491. name: 'default',
  492. component: BasicLayout,
  493. meta: { title: '默认' },
  494. redirect: '/account/settings',
  495. type: 1,
  496. children: [
  497. {
  498. path: '/account/center',
  499. name: 'center',
  500. component: constantRouterComponents['AccountCenter'],
  501. meta: {
  502. title: '个人中心',
  503. keepAlive: false,
  504. hiddenHeaderContent: false,
  505. target: null,
  506. permission: ''
  507. },
  508. hidden: true,
  509. hideChildrenInMenu: true
  510. },
  511. {
  512. path: '/account/settings',
  513. name: 'settings',
  514. component: constantRouterComponents['AccountSettings'],
  515. meta: {
  516. title: '个人设置',
  517. keepAlive: false,
  518. hiddenHeaderContent: true,
  519. target: null,
  520. permission: ''
  521. },
  522. hidden: true,
  523. hideChildrenInMenu: true
  524. }]
  525. }
  526. /**
  527. * 动态生成菜单
  528. * @param token
  529. * @returns {Promise<Router>}
  530. */
  531. export const generatorDynamicRouter = (menus) => {
  532. return new Promise((resolve, reject) => {
  533. try {
  534. const menuNav = []
  535. // 后端数据, 根级树数组, 根级 PID,后端已转为树型 解构
  536. // listToTree(result, childrenNav, 0)
  537. rootRouter.children = menus
  538. menuNav.push(rootRouter)
  539. const routers = generator(menuNav)
  540. routers.push(notFoundRouter)
  541. routers.push(defaultRouter)
  542. resolve(routers)
  543. } catch (e) {
  544. reject(e)
  545. }
  546. })
  547. }
  548. /**
  549. * 格式化树形结构数据 生成 vue-router 层级路由表
  550. *
  551. * @param routerMap
  552. * @param parent
  553. * @returns {*}
  554. */
  555. export const generator = (routerMap, parent) => {
  556. return routerMap.map(itemTree => {
  557. let item = itemTree.item
  558. if (BaseTool.Object.isBlank(item)) {
  559. item = itemTree
  560. }
  561. item.children = itemTree.children
  562. // 如果不是菜单则跳过
  563. if (GlobalConstant.MenuTypeMenu === item.type) {
  564. return null
  565. }
  566. // path: '/dashboard',
  567. // name: 'dashboard',
  568. // redirect: '/dashboard/workplace', // 可以做父路由到子路由的跳转
  569. // component: RouteView,
  570. // meta: { title: '仪表盘', keepAlive: true, icon: bxAnaalyse, permission: [ 'dashboard' ] },
  571. const { title, visible, hideChildren, hiddenHeaderContent, target, icon } = item || {}
  572. const myComponent = constantRouterComponents[item.component || item.name]
  573. const currentRouter = {
  574. // 如果路由设置了 path,则作为默认 path,否则 路由地址 动态拼接生成如 /dashboard/workplace
  575. path: item.url || `${parent && parent.url || ''}/${item.name}`,
  576. // 路由名称,建议唯一
  577. name: item.name,
  578. // 该路由对应页面的 组件 :方案1
  579. component: myComponent,
  580. // 该路由对应页面的 组件 :方案2 (动态加载)
  581. // component: constantRouterComponents[item.component || item.key] || () => import(`@/views/${item.component}`),
  582. // meta: 页面标题, 菜单图标, 页面权限(供指令权限用,可去掉)
  583. meta: { title: title, icon: icon || undefined, keepAlive: false, hiddenHeaderContent: hiddenHeaderContent || false, target: target, permission: item.permission }
  584. }
  585. // 是否设置了隐藏菜单
  586. if (visible === false) {
  587. currentRouter.hidden = true
  588. }
  589. // 是否设置了隐藏子菜单
  590. if (hideChildren || visible === false) {
  591. currentRouter.hideChildrenInMenu = true
  592. }
  593. // 为了防止出现后端返回结果不规范,处理有可能出现拼接出两个 反斜杠
  594. if (!currentRouter.path.startsWith('http')) {
  595. currentRouter.path = currentRouter.path.replace('//', '/')
  596. }
  597. // 重定向
  598. item.redirect && (currentRouter.redirect = item.redirect)
  599. // 是否有子菜单,并递归处理
  600. if (item.children && item.children.length > 0) {
  601. // Recursion
  602. currentRouter.children = generator(item.children, currentRouter)
  603. }
  604. return currentRouter
  605. })
  606. }
  607. /**
  608. * 数组转树形结构
  609. * @param list 源数组
  610. * @param tree 树
  611. * @param parentId 父ID
  612. */
  613. // const listToTree = (list, tree, parentId) => {
  614. // list.forEach(item => {
  615. // // 判断是否为父级菜单
  616. // if (item.parentId === parentId) {
  617. // const child = {
  618. // ...item,
  619. // key: item.key || item.name,
  620. // children: []
  621. // }
  622. // // 迭代 list, 找到当前菜单相符合的所有子菜单
  623. // listToTree(list, child.children, item.id)
  624. // // 删掉不存在 children 值的属性
  625. // if (child.children.length <= 0) {
  626. // delete child.children
  627. // }
  628. // // 加入到树中
  629. // tree.push(child)
  630. // }
  631. // })
  632. // }