generator-platform-routers.js 37 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772
  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. // upms
  20. 'Dept': () => import('@/views/upms/dept/Dept'),
  21. 'User': () => import('@/views/upms/user/User'),
  22. 'Role': () => import('@/views/upms/role/Role'),
  23. 'Menu': () => import('@/views/upms/menu/Menu'),
  24. 'Dict': () => import('@/views/upms/dict/Dict'),
  25. 'Notice': () => import('@/views/upms/notice/SysNotice'),
  26. 'Log': () => import('@/views/upms/log/Log'),
  27. 'Task': () => import('@/views/upms/task/Task'),
  28. 'Config': () => import('@/views/upms/config/Config'),
  29. 'SysTeam': () => import('@/views/upms/team/SysTeam'),
  30. // result
  31. 'ResultSuccess': () => import(/* webpackChunkName: "result" */ '@/views/result/Success'),
  32. 'ResultFail': () => import(/* webpackChunkName: "result" */ '@/views/result/Error'),
  33. // exception
  34. 'Exception403': () => import(/* webpackChunkName: "fail" */ '@/views/exception/403'),
  35. 'Exception404': () => import(/* webpackChunkName: "fail" */ '@/views/exception/404'),
  36. 'Exception500': () => import(/* webpackChunkName: "fail" */ '@/views/exception/500'),
  37. // account
  38. 'AccountCenter': () => import('@/views/account/center/Index'),
  39. 'AccountSettings': () => import('@/views/account/settings/Index'),
  40. // 其他组件
  41. 'SystemRoleList': () => import('@/views/role/RoleList'),
  42. // 设备类型
  43. 'SbType': () => import('@/views/sb/type/SbType'),
  44. // 项目类型
  45. 'Project': () => import('@/views/project/Project'),
  46. // 设备位置
  47. 'SbPosition': () => import('@/views/sb/position/SbPosition'),
  48. // 设备位置台账
  49. 'SbPositionCount': () => import('@/views/sb/count/SbPositionCount'),
  50. 'SbPositionNum': () => import('@/views/sb/position/SbPositionNum'),
  51. // 设备状态台账
  52. 'SbStatusCount': () => import('@/views/sb/count/SbStatusCount'),
  53. // 设备自定义类型台账
  54. 'SbUseTypeCount': () => import('@/views/sb/count/SbUseTypeCount'),
  55. // 设别规格
  56. 'SbGuige': () => import('@/views/sb/guige/SbGuige'),
  57. // 设别基础信息
  58. 'SbInfo': () => import('@/views/sb/info/SbInfo'),
  59. // 测量设备基础信息
  60. 'MeasureSbInfo': () => import('@/views/sb/info/MeasureSbInfo'),
  61. 'MeasureSbInfoAll': () => import('@/views/sb/info/MeasureSbInfoAll'),
  62. // 测量设备基础信息-需要检定-外部检定的
  63. 'MeasureSbInfoCheck': () => import('@/views/sb/info/MeasureSbInfoCheck'),
  64. // 测量设备基础信息-需要检定-自检的
  65. 'MeasureSbInfoCheckSelf': () => import('@/views/sb/info/MeasureSbInfoCheckSelf'),
  66. // 测量设备基础信息-不需要检定的
  67. 'MeasureSbInfoNotCheck': () => import('@/views/sb/info/MeasureSbInfoNotCheck'),
  68. // 测量设备预警台账
  69. 'MeasureSbInfoWarn': () => import('@/views/sb/info/MeasureSbInfoWarn'),
  70. // 测量设备基础信息-在库
  71. 'MeasureSbInfoInStore': () => import('@/views/sb/info/MeasureSbInfoInStore'),
  72. // 测量设备-检定记录
  73. 'MeasureLog': () => import('@/views/sb/measurelog/MeasureLog'),
  74. // 特种设备-检定记录
  75. 'MeasureLogSpecial': () => import('@/views/sb/measurelog/MeasureLogSpecial'),
  76. // 特种设备基础信息
  77. 'SpecialSbInfo': () => import('@/views/sb/info/SpecialSbInfo'),
  78. 'SpecialSbInfo2': () => import('@/views/sb/info/SpecialSbInfo2'),
  79. // 特种设备预警
  80. 'SpecialSbInfoWarn': () => import('@/views/sb/info/SpecialSbInfoWarn'),
  81. // 特种设备在库
  82. 'SpecialSbInfoInStore': () => import('@/views/sb/info/SpecialSbInfoInStore'),
  83. // 父子设备树
  84. 'ParentSbInfo': () => import('@/views/sb/info/ParentSbInfo'),
  85. // 设别型号库
  86. 'SbModel': () => import('@/views/sb/model/SbModel'),
  87. // 设备bom
  88. 'SbModelBom': () => import('@/views/sb/modelbom/SbModelBom'),
  89. // 设备型号筛选对应的备件bom
  90. 'SbModelSpareListBom': () => import('@/views/sb/modelbom/SbModelSpareListBom'),
  91. // 设备树
  92. 'SbInfoTree': () => import('@/views/sb/info/SbInfoTree'),
  93. // 部位类别
  94. 'PartType': () => import('@/views/part/type/PartType'),
  95. // 部位信息
  96. 'PartInfo': () => import('@/views/part/info/PartInfo'),
  97. // 设备部位信息
  98. 'SbInfoForPartInfo': () => import('@/views/sb/info/SbInfoForPartInfo'),
  99. // 位号信息
  100. 'Location': () => import('@/views/sb/location/Location'),
  101. // 设备位号信息
  102. 'SbInfoForLocation': () => import('@/views/sb/info/SbInfoForLocation'),
  103. // 设备履历
  104. 'SbResume': () => import('@/views/sb/resume/SbResume'),
  105. 'PositionNoResume': () => import('@/views/sb/resume/PositionNoResume'),
  106. // 备件类别
  107. 'SpareType': () => import('@/views/sqarepartmanage/sparetype/SpareType'),
  108. // 备件基础信息和报表
  109. 'SparePartInfo': () => import('@/views/sqarepartmanage/sparepartinfo/SparePartInfo'),
  110. 'SparePartInfoPrint': () => import('@/views/sqarepartmanage/sparepartinfo/SparePartInfoPrint'),
  111. 'SparePartMonthReport': () => import('@/views/sqarepartmanage/report/SparePartMonthReport'),
  112. // 备件库存汇总、备件库存汇总预警、备件保养预警(已废弃,改成备件更换预警)
  113. 'SparePartTotal': () => import('@/views/sqarepartmanage/sparepartinfo/SparePartTotal'),
  114. 'SparePartTotalMinStock': () => import('@/views/sqarepartmanage/sparepartinfo/SparePartTotalMinStock'),
  115. 'SparePartTotalCheckStock': () => import('@/views/sqarepartmanage/sparepartinfo/SparePartTotalCheckStock'),
  116. 'SpareUpdateAlert': () => import('@/views/sqarepartmanage/sparepartinfo/SpareUpdateAlert'),
  117. // 仓库汇总、仓库备件库存汇总(单个仓库的)
  118. 'SpareStoreTotal': () => import('@/views/store/sparestore/SpareStoreTotal'),
  119. 'SpareStoreTotalMinStock': () => import('@/views/store/sparestore/SpareStoreTotalMinStock'),
  120. // 备件使用信息
  121. 'SparePartUsed': () => import('@/views/sqarepartmanage/sparepartused/SparePartUsed'),
  122. 'SbInfoStopDetail': () => import('@/views/sb/stop-detail/SbInfoStopDetail'),
  123. // 点检
  124. 'SpotCheckStandard': () => import('@/views/check/checkstandard/SpotCheckStandard'),
  125. 'SpotCheckProject': () => import('@/views/check/checkproject/SpotCheckProject'),
  126. 'SpotCheckPlan': () => import('@/views/check/checkplan/SpotCheckPlan'),
  127. 'SpotCheckJobOverTime': () => import('@/views/check/checkjob/SpotCheckJobOverTime'),
  128. 'SpotCheckJob': () => import('@/views/check/checkjob/SpotCheckJob'),
  129. 'SpotCheckJobFinish': () => import('@/views/check/checkjob/SpotCheckJobFinish'),
  130. // 保养
  131. 'PollingCheckStandard': () => import('@/views/check/checkstandard/PollingCheckStandard'),
  132. 'PollingCheckProject': () => import('@/views/check/checkproject/PollingCheckProject'),
  133. 'PollingCheckPlan': () => import('@/views/check/checkplan/PollingCheckPlan'),
  134. 'PollingCheckJob': () => import('@/views/check/checkjob/PollingCheckJob'),
  135. 'PollingCheckJobOverTime': () => import('@/views/check/checkjob/PollingCheckJobOverTime'),
  136. 'PollingCheckJobFinish': () => import('@/views/check/checkjob/PollingCheckJobFinish'),
  137. // 润滑
  138. 'RunCheckStandard': () => import('@/views/check/checkstandard/RunCheckStandard'),
  139. 'RunCheckProject': () => import('@/views/check/checkproject/RunCheckProject'),
  140. 'RunCheckPlan': () => import('@/views/check/checkplan/RunCheckPlan'),
  141. 'RunCheckJob': () => import('@/views/check/checkjob/RunCheckJob'),
  142. 'RunCheckJobOverTime': () => import('@/views/check/checkjob/RunCheckJobOverTime'),
  143. 'RunCheckJobFinish': () => import('@/views/check/checkjob/RunCheckJobFinish'),
  144. // 工器具校准
  145. 'AdjustCheckStandard': () => import('@/views/check/checkstandard/AdjustCheckStandard'),
  146. 'AdjustCheckProject': () => import('@/views/check/checkproject/AdjustCheckProject'),
  147. 'AdjustCheckPlan': () => import('@/views/check/checkplan/AdjustCheckPlan'),
  148. 'AdjustCheckJob': () => import('@/views/check/checkjob/AdjustCheckJob'),
  149. // 特种设备定期检验
  150. 'SpecialCheckStandard': () => import('@/views/check/checkstandard/SpecialCheckStandard'),
  151. 'SpecialCheckProject': () => import('@/views/check/checkproject/SpecialCheckProject'),
  152. 'SpecialCheckPlan': () => import('@/views/check/checkplan/SpecialCheckPlan'),
  153. 'SpecialCheckJob': () => import('@/views/check/checkjob/SpecialCheckJob'),
  154. // 仓库信息
  155. 'Store': () => import('@/views/store/store/Store'),
  156. // 备件库存
  157. 'SpareStore': () => import('@/views/store/sparestore/SpareStore'),
  158. 'PurchaseStoreForm': () => import('@/views/store/purchaseform/PurchaseStoreForm'),
  159. // 备件二级库存
  160. 'SpareStoreSecond': () => import('@/views/store/sparestoresecond/SpareStoreSecond'),
  161. // 入库登记单
  162. 'InStoreForm': () => import('@/views/store/instoreform/InStoreForm'),
  163. // 出库登记单
  164. 'OutStoreForm': () => import('@/views/store/outstoreform/OutStoreForm'), // 出库
  165. 'OutStoreFormYY': () => import('@/views/store/outstoreform/OutStoreFormYY'), // 用友出库
  166. 'OutStoreFormBackYY': () => import('@/views/store/outstoreform/OutStoreFormBackYY'), // 用友退库
  167. // 调拨登记单
  168. 'TransferStoreForm': () => import('@/views/store/transferstoreform/TransferStoreForm'),
  169. // 备件领用详情
  170. 'SparePickDetail': () => import('@/views/store/sparepickdetail/SparePickDetail'),
  171. // 备件领用登记单
  172. 'SparePickForm': () => import('@/views/store/sparepickform/SparePickForm'),
  173. // 备件回收详情
  174. 'SpareRecoveryDetail': () => import('@/views/store/sparerecoverydetail/SpareRecoveryDetail'),
  175. // 备件回收登记单
  176. 'SpareRecoveryForm': () => import('@/views/store/sparerecoveryform/SpareRecoveryForm'),
  177. // 备件退库详情
  178. 'SpareRestoreDetail': () => import('@/views/store/sparerestoredetail/SpareRestoreDetail'),
  179. // 备件退库登记单
  180. 'SpareRestoreForm': () => import('@/views/store/sparerestoreform/SpareRestoreForm'),
  181. // 备件退货详情
  182. 'SpareBackDetail': () => import('@/views/store/sparebackdetail/SpareBackDetail'),
  183. // 备件退货登记单
  184. 'SpareBackForm': () => import('@/views/store/sparebackform/SpareBackForm'),
  185. // 入库详情
  186. 'InStoreDetail': () => import('@/views/store/instoredetail/InStoreDetail'),
  187. // 出库详情
  188. 'OutStoreDetail': () => import('@/views/store/outstoredetail/OutStoreDetail'),
  189. // 调拨详情
  190. 'TransferStoreDetail': () => import('@/views/store/transferstoredetail/TransferStoreDetail'),
  191. // 报修单
  192. 'RepairApplicationForm': () => import('@/views/repair/application-form/RepairApplicationForm'),
  193. 'RepairOut': () => import('@/views/repair/application-form/RepairOut'),
  194. // 验收单
  195. 'RepairCheckForm': () => import('@/views/repair/application-form/RepairCheckForm'),
  196. // 维修单
  197. 'RepairForm': () => import('@/views/repair/application-form/RepairForm'),
  198. 'Calendars': () => import('@/views/repair/calendar/Calendar'),
  199. 'AgainRepairForm': () => import('@/views/repair/application-form/AgainRepairForm'),
  200. 'RepairCloseForm': () => import('@/views/repair/application-form/RepairCloseForm'),
  201. 'MRepairForm': () => import('@/views/repair/application-form/MyRepairForm'),
  202. 'MyRepairForm': () => import('@/views/repair/form/MyRepairForm'),
  203. 'WaitRepairForm': () => import('@/views/repair/application-form/WaitRepairForm'),
  204. 'RepairCallerCheckForm': () => import('@/views/repair/application-form/RepairCallerCheckForm'),
  205. 'RepairManagerCheckForm': () => import('@/views/repair/application-form/RepairManagerCheckForm'),
  206. 'WaitAllocatedRepairForm': () => import('@/views/repair/application-form/WaitAllocatedRepairForm'),
  207. 'WaitDispatchRepairForm': () => import('@/views/repair/application-form/WaitDispatchRepairForm'),
  208. 'ReportRepairForm': () => import('@/views/repair/application-form/ReportRepairForm'),
  209. 'RepairFormPool': () => import('@/views/repair/application-form/RepairFormPool'),
  210. // 验收单
  211. 'RepairCheck': () => import('@/views/repair/check/RepairCheck'),
  212. // 故障类别
  213. 'ErrorType': () => import('@/views/repair/errortype/ErrorType'),
  214. // 维修费用单
  215. 'RepairFee': () => import('@/views/repair/fee/RepairFee'),
  216. // 维修项目
  217. 'RepairProject': () => import('@/views/repair/repairproject/RepairProject'),
  218. 'RepairReason': () => import('@/views/repair/repair-reason/RepairReason'),
  219. // 生产商
  220. 'FirmProducer': () => import('@/views/firm/producer/FirmProducer'),
  221. // 巡检管理
  222. 'FillInfo': () => import('@/views/fill/info/FillInfo'),
  223. 'FillGather': () => import('@/views/fill/gather/FillGather'),
  224. 'FillGatherTask': () => import('@/views/fill/task/FillGatherTask'),
  225. 'BackFillGatherTask': () => import('@/views/fill/task/BackFillGatherTask'),
  226. 'VerifyFillGatherTask': () => import('@/views/fill/task/VerifyFillGatherTask'),
  227. 'SbInspectionFill': () => import('@/views/sb/inspection-fill/SbInspectionFill'),
  228. 'MySbInspectionFill': () => import('@/views/sb/inspection-fill/MySbInspectionFill'),
  229. 'ZGSbInspectionFill': () => import('@/views/sb/inspection-fill/ZGSbInspectionFill'),
  230. 'AdminSbInspectionFill': () => import('@/views/sb/inspection-fill/AdminSbInspectionFill'),
  231. 'SbRunFill': () => import('@/views/sb/run-fill/SbRunFill'),
  232. 'ZGSbRunFill': () => import('@/views/sb/run-fill/ZGSbRunFill'),
  233. 'MySbRunFill': () => import('@/views/sb/run-fill/MySbRunFill'),
  234. 'AdminSbRunFill': () => import('@/views/sb/run-fill/AdminSbRunFill'),
  235. // 仓库月报表
  236. 'StoreMonthReport': () => import('@/views/report/store/StoreMonthReport'),
  237. // 出入库明细+汇总
  238. 'ReportInStoreDetail': () => import('@/views/report/instoredetail/InStoreDetail'),
  239. 'MyReportInStoreDetail': () => import('@/views/report/instoredetail/MyInStoreDetail'),
  240. 'ReportOutStoreDetail': () => import('@/views/report/outstoredetail/OutStoreDetail'),
  241. 'MyReportOutStoreDetail': () => import('@/views/report/outstoredetail/MyOutStoreDetail'),
  242. 'ReportInStoreCount': () => import('@/views/report/instorecount/InStoreCount'),
  243. 'ReportOutStoreCount': () => import('@/views/report/outstorecount/OutStoreCount'),
  244. 'ReportSparePartInfo': () => import('@/views/report/sparepartinfo/SparePartInfo'),
  245. 'ReportSparePickDetail': () => import('@/views/report/sparepickdetail/SparePickDetail'),
  246. 'MyReportSparePickDetail': () => import('@/views/report/sparepickdetail/MySparePickDetail'),
  247. 'ReportSparePickCount': () => import('@/views/report/sparepickcount/SparePickCount'),
  248. 'StatisticsRepairFormSb': () => import('@/views/statistics/repair/StatisticsRepairFormSb'),
  249. 'StatisticsRepairFormMonth': () => import('@/views/statistics/repair/StatisticsRepairFormMonthView'),
  250. 'StatisticsRepairFormErrorType': () => import('@/views/statistics/repair/StatisticsRepairFormErrorTypeView'),
  251. 'StatisticsSparePartUsedSpare': () => import('@/views/statistics/spare/StatisticsSparePartUsedSpare'),
  252. 'StatisticsRepairFormUser': () => import('@/views/statistics/repair/StatisticsRepairFormUserView'),
  253. 'WorkplaceBacklog': () => import('@/views/workplace/backlog/WorkplaceBacklog'),
  254. 'Workbench': () => import('@/views/workplace/backlog/Workbench'),
  255. 'StoreWorkplaceBacklog': () => import('@/views/workplace/backlog/StoreWorkplaceBacklog'),
  256. 'SbWorkplaceBacklog': () => import('@/views/workplace/backlog/SbWorkplaceBacklog'),
  257. 'NewWorkplaceBacklog': () => import('@/views/workplace/backlog/NewWorkplaceBacklog'),
  258. 'Supplier': () => import('@/views/purchase/supplier/Supplier'),
  259. 'SupplierApply': () => import('@/views/purchase/supplier/SupplierApply'),
  260. 'PurchaseDemandPlan': () => import('@/views/purchase/purchase-demand-plan/PurchaseDemandPlan'),
  261. 'PurchasePlan': () => import('@/views/purchase/purchase-plan/PurchasePlan'),
  262. 'PurchasePayment': () => import('@/views/purchase/purchase-payment/PurchasePaymentPage'),
  263. 'PurchaseReimburse': () => import('@/views/purchase/purchase-reimburse/PurchaseReimbursePage'),
  264. 'PurchaseOrder': () => import('@/views/purchase/purchase-order/PurchaseOrder'),
  265. 'PurchaseApply': () => import('@/views/purchase/purchase-apply/PurchaseApply'),
  266. 'PurchaseDispatchOrderPage': () => import('@/views/purchase/purchase-dispatch-order/PurchaseDispatchOrderPage'),
  267. // 审批
  268. 'Model': () => import('@/views/activiti/model/Model'),
  269. 'Flow': () => import('@/views/activiti/flow/Flow'),
  270. 'MyTask': () => import('@/views/activiti/task/MyTask'), // 我的待办
  271. 'MyTaskFinish': () => import('@/views/activiti/task/MyTaskFinish'), // 我的已办
  272. 'MyTaskClaim': () => import('@/views/activiti/task/MyTaskClaim'), // 我的签收
  273. 'MyStart': () => import('@/views/activiti/task/MyStart'), // 我的申请
  274. 'ActivitiUserModel': () => import('@/views/activiti/user-model/ActivitiUserModel'), // 流程审批节点设置
  275. 'DesignForm': () => import('@/views/design/designForm/DesignForm'),
  276. // 隐患 管理
  277. 'HiddenDangerWait': () => import('@/views/hidden/hidden/HiddenDangerWait'), // 隐患任务
  278. 'HiddenDangerHandle': () => import('@/views/hidden/hidden/HiddenDangerHandle'), // 隐患任务
  279. // 调拨申请
  280. 'SbAllocateApply': () => import('@/views/sb/allocate-apply/ProjectSbAllocateApply'),
  281. 'GroupToProjectSbAllocateApply': () => import('@/views/sb/allocate-apply/GroupToProjectSbAllocateApply'),
  282. 'ProjectToProjectSbAllocateApply': () => import('@/views/sb/allocate-apply/ProjectToProjectSbAllocateApply'),
  283. 'MySbAllocateApply': () => import('@/views/sb/allocate-apply/MySbAllocateApply'),
  284. 'ZGSbAllocateApply': () => import('@/views/sb/allocate-apply/ZGSbAllocateApply'),
  285. 'XmbZgSbAllocateApply': () => import('@/views/sb/allocate-apply/XmbZgSbAllocateApply'),
  286. 'FgsZgSbAllocateApply': () => import('@/views/sb/allocate-apply/FgsZgSbAllocateApply'),
  287. // 调拨审批
  288. 'SbAllocateTaskAudit': () => import('@/views/sb/allocate-task/SbAllocateTaskAudit'),
  289. // 我的功能
  290. 'ProjectStore': () => import('@/views/store/store/ProjectStore'),
  291. 'CompanyStore': () => import('@/views/store/store/CompanyStore'),
  292. 'MyStore': () => import('@/views/store/store/MyStore'),
  293. 'MyInStoreForm': () => import('@/views/store/instoreform/MyInStoreForm'),
  294. 'MyOutStoreForm': () => import('@/views/store/outstoreform/MyOutStoreForm'),
  295. 'MyTransferStoreForm': () => import('@/views/store/transferstoreform/MyTransferStoreForm'),
  296. 'MySparePickForm': () => import('@/views/store/sparepickform/MySparePickForm'),
  297. 'MySbInfo': () => import('@/views/sb/info/MySbInfo'),
  298. 'ProjectSbInfo': () => import('@/views/sb/info/ProjectSbInfo'),
  299. 'BanzuSbInfo': () => import('@/views/sb/info/BanzuSbInfo'),
  300. 'CompanySbInfo': () => import('@/views/sb/info/CompanySbInfo'),
  301. 'MySpareStore': () => import('@/views/store/sparestore/MySpareStore'),
  302. 'MySpareStoreTotal': () => import('@/views/store/sparestore/MySpareStoreTotal'),
  303. 'MyRunCheckJob': () => import('@/views/check/checkjob/MyRunCheckJob'),
  304. 'MyPollingCheckJob': () => import('@/views/check/checkjob/MyPollingCheckJob'),
  305. 'MyPollingCheckJobFinish': () => import('@/views/check/checkjob/MyPollingCheckJobFinish'),
  306. 'MyPollingCheckJobOverTime': () => import('@/views/check/checkjob/MyPollingCheckJobOverTime'),
  307. 'MySpotCheckJob': () => import('@/views/check/checkjob/MySpotCheckJob'),
  308. // 验收单
  309. 'SbCheckForm': () => import('@/views/sb/sbcheckform/SbCheckForm'),
  310. 'FillProjectQuantity': () => import('@/views/fill/project-quantity/FillProjectQuantity'),
  311. 'SbCheckDetail': () => import('@/views/sb/sbcheckdetail/SbCheckDetail'),
  312. // 资料管理
  313. 'Article': () => import('@/views/operate/article/Article'),
  314. 'CustomerInfo': () => import('@/views/operate/customer/CustomerInfo'),
  315. // 设备变动
  316. 'SbScrapForm': () => import('@/views/sb/scraps/SbScrapForm'), // 报废单
  317. // 设备变动记录
  318. 'SbChangeRecord': () => import('@/views/sb/change-record/SbChangeRecord'), // 设备变动记录
  319. // 备件盘点
  320. 'StoreCheckPlan': () => import('@/views/store/storecheckplan/StoreCheckPlan'),
  321. 'StoreCheckJob': () => import('@/views/store/storecheckjob/StoreCheckJob'),
  322. 'StoreCheckJobRecord': () => import('@/views/store/storecheckjob/StoreCheckJobRecord'),
  323. // 设备盘点
  324. 'SbStoreCheckPlan': () => import('@/views/sb/storecheckplan/StoreCheckPlan'),
  325. 'SbStoreCheckJob': () => import('@/views/sb/storecheckjob/StoreCheckJob'),
  326. // 保养任务日程表
  327. 'CheckJobCalendar': () => import('@/views/check/checkjob/CheckJobCalendar'),
  328. // 设备状态变更表
  329. 'SbStatusLog': () => import('@/views/sb/status-log/SbStatusLog'),
  330. // 设备停机记录表
  331. 'SbStopLog': () => import('@/views/sb/stop-logs/SbStopLog'),
  332. // 设备安装调试过程记录
  333. 'SbInfoDebug': () => import('@/views/sb/info/SbInfoDebug'),
  334. // 设备试车过程记录
  335. 'SbInfoTestRun': () => import('@/views/sb/info/SbInfoTestRun'),
  336. // 设备报废
  337. 'SbInfoScrap': () => import('@/views/sb/scrap/SbInfoScrap'),
  338. // 设备维护标准
  339. 'SbInfoStandard': () => import('@/views/sb/info/SbInfoStandard'),
  340. // 报表
  341. 'RepairDetail': () => import('@/views/report/repairdetail/RepairDetail'), // 维修报表
  342. 'AnalysisSbInfo': () => import('@/views/dashboard/AnalysisSbInfo'), // 保养任务完成率报表
  343. 'CheckJobReport': () => import('@/views/dashboard/CheckJobReport'), // 保养任务完成率报表
  344. 'MeasureLogReport': () => import('@/views/dashboard/MeasureLogReport'), // 检定记录月完成数量报表
  345. 'SbInfoTypeReport': () => import('@/views/dashboard/SbInfoTypeReport'), // 设备类型占比统计
  346. 'CheckJobReportWeek': () => import('@/views/dashboard/CheckJobReportWeek'), // 保养任务周工作负荷统计报表
  347. 'RepairReport': () => import('@/views/dashboard/RepairReport'), // >24小时停机次数按月统计
  348. 'RepairReportSbAll': () => import('@/views/dashboard/RepairReportSbAll'), // 设备故障次数按月统计
  349. 'RepairReportSbInfo': () => import('@/views/dashboard/RepairReportSbInfo'), // 设备维修报表
  350. 'RepairReportSbInfoFee': () => import('@/views/dashboard/RepairReportSbInfoFee'), // 设备维修费用报表
  351. 'RepairReportMttr': () => import('@/views/dashboard/RepairReportMttr'), // MTTR月统计报表
  352. 'RepairReportFee': () => import('@/views/dashboard/RepairReportFee'), // 费用按月统计
  353. 'StoreReport1': () => import('@/views/dashboard/StoreReport1'), // 仓库报表
  354. 'FillGatherReport': () => import('@/views/dashboard/FillGatherReport'), // 巡检任务月统计
  355. 'RepairReportFail': () => import('@/views/dashboard/RepairReportFail'), // 设备故障排行榜统计
  356. 'RepairScreen': () => import('@/views/big-screen/RepairScreen'), // 车间大屏
  357. // 工作台
  358. 'SbInfoWorkplaceBacklog': () => import('@/views/workplace/backlog/SbInfoWorkplaceBacklog'), // 设备工作台
  359. 'AssetsWorkplaceBacklog': () => import('@/views/workplace/backlog/AssetsWorkplaceBacklog'), // 设备工作台
  360. 'SpareWorkplaceBacklog': () => import('@/views/workplace/backlog/SpareWorkplaceBacklog'), // 设备工作台
  361. 'StoreWorkplaceBacklog2': () => import('@/views/workplace/backlog/StoreWorkplaceBacklog2'), // 设备工作台
  362. 'RepairWorkplaceBacklog': () => import('@/views/workplace/backlog/RepairWorkplaceBacklog'), // 设备工作台
  363. // 自定义管理
  364. 'CustomizeReport': () => import('@/views/customize/report/CustomizeReport'), // 自定义报表
  365. 'CustomFieldTemplate': () => import('@/views/customize/fieldTemplate/CustomFieldTemplate'), // 自定义模板
  366. 'CustomFieldTemplateData': () => import('@/views/customize/fieldTemplateData/CustomFieldTemplateData'), // 自定义模板数据
  367. 'CustomClassName': () => import('@/views/custom/className/CustomClassName'), // 配置类
  368. 'CustomRelation': () => import('@/views/custom/relation/CustomRelation'), // 配置类
  369. // 新增路由
  370. 'SparePartUsedSelectTable': () => import('@/views/sqarepartmanage/sparepartused/modules/SparePartUsedSelectTable'), // 备件使用记录
  371. // 电度和遥测数据
  372. 'DegreeManage': () => import('@/views/remote/Index.vue'),
  373. 'RemoteMeasure': () => import('@/views/remote/measure/RemoteMeasure'),
  374. 'RemoteMeasureLog': () => import('@/views/remote/measure-log/RemoteMeasureLog'),
  375. 'RemoteDegree': () => import('@/views/remote/degree/RemoteDegree'),
  376. 'RemoteDegreeLog': () => import('@/views/remote/degree-log/RemoteDegreeLog'),
  377. // opc
  378. 'RemoteOpc': () => import('@/views/remote/opc/RemoteOpc'), // 模拟+数字量+创建+未创建(全部的)
  379. 'OpcManage': () => import('@/views/remote/opc/Index.vue'), // 模拟+数字量+创建+未创建(全部的)
  380. 'RemoteOpcNotCreated': () => import('@/views/remote/opc/RemoteOpcNotCreated'), // 服务端未创建对应的点位
  381. 'RemoteOpcLog': () => import('@/views/remote/opc-log/RemoteOpcLog'), // 记录
  382. 'OpcPosition': () => import('@/views/remote/opc/OpcPosition'), // opc车间
  383. 'OpcPositionNot': () => import('@/views/remote/opc/OpcPositionNot'), // opc车间未配置
  384. 'OpcPositionForProducer': () => import('@/views/remote/opc/OpcPositionForProducer'), // opc车间生产入口
  385. 'OpcPositionForAh': () => import('@/views/remote/opc/OpcPositionForAh'), // opc车间生产-安环入口
  386. 'RemotePosition': () => import('@/views/remote/position/RemotePosition'), // opc车间配置
  387. // 初始化导入
  388. 'ImportExcel': () => import('@/views/excel/ImportExcel'),
  389. // 乾坤
  390. 'Plan': () => import('@/views/qykh/plan/Plan'),
  391. 'PlanDetail': () => import('@/views/qykh/plan-detail/PlanDetail'),
  392. 'Product': () => import('@/views/qykh/product/Product'),
  393. 'ProductHelp': () => import('@/views/qykh/product-help/ProductHelp'),
  394. 'Hotspot': () => import('@/views/qykh/hotspot/Hotspot'),
  395. 'HotspotHelp': () => import('@/views/qykh/hotspot-help/HotspotHelp'),
  396. 'Information': () => import('@/views/qykh/information/Information'),
  397. 'InformationHelp': () => import('@/views/qykh/information-help/InformationHelp'),
  398. // 筹建管理
  399. 'PreparationAll': () => import('@/views/preparation/preparation/PreparationAll'),
  400. 'PreparationMine': () => import('@/views/preparation/preparation/PreparationMine'),
  401. 'PreparationVerify': () => import('@/views/preparation/preparation/PreparationVerify'),
  402. 'PreparationReceive': () => import('@/views/preparation/preparation/PreparationReceive'),
  403. 'PreparationReport': () => import('@/views/preparation/report/PreparationReport'),
  404. 'PreparationReportPie': () => import('@/views/preparation/report/PreparationReportPie'),
  405. 'PreparationsPosition': () => import('@/views/preparation/report/PreparationsPosition'),
  406. 'Building': () => import('@/views/preparation/preparation/Building'),
  407. // 防雷检测
  408. 'Light': () => import('@/views/light/light/Light'),
  409. 'LightWaitCheck': () => import('@/views/light/light/LightWaitCheck'),
  410. 'LightLog': () => import('@/views/light/light-log/LightLog'),
  411. // 工器具管理
  412. 'Tool': () => import('@/views/tool/tool/Tool'),
  413. 'ToolWaitCheck': () => import('@/views/tool/tool/ToolWaitCheck'),
  414. 'ToolLog': () => import('@/views/tool/tool-log/ToolLog'),
  415. // 日历
  416. 'Calendar': () => import('@/views/calendar/Calendar'),
  417. // 采购
  418. 'PurchaseOrderPage': () => import('@/views/purchase/purchase-order-page/PurchaseOrderPage'),
  419. 'PurchaseOrderRecord': () => import('@/views/purchase/purchase-order-record/PurchaseOrderRecord'),
  420. 'PurchaseOrderReport': () => import('@/views/purchase/purchase-order-report/PurchaseOrderReport'),
  421. 'PurchaseOrderReportByTime': () => import('@/views/purchase/purchase-order-report/PurchaseOrderReportByTime'),
  422. 'PurchaseOrderReportByFifity': () => import('@/views/purchase/purchase-order-report/PurchaseOrderReportByFifity'),
  423. 'Inventory': () => import('@/views/purchase/inventory/Inventory.vue'),
  424. 'InventoryList': () => import('@/views/purchase/inventory-list/InventoryList.vue'),
  425. 'PurchaseOrderReportPie': () => import('@/views/purchase/purchase-order-report/PurchaseOrderReportPie.vue'),
  426. 'PurchaseMargePage': () => import('@/views/purchase/purchase-marge-page/PurchaseMargePage.vue'),
  427. // 设备闲置
  428. 'IdleAssets': () => import('@/views/idle-assets/IdleAssets.vue'),
  429. 'IdleAssetsMap': () => import('@/views/idle-assets-map/IdleAssetsMap.vue'),
  430. 'IdleAssetsStoreMap': () => import('@/views/idle-assets-map/IdleAssetsStoreMap.vue'),
  431. 'IdleAssetsSpareMap': () => import('@/views/idle-assets-map/IdleAssetsSpareMap.vue'),
  432. 'IdleAssetsRepairMap': () => import('@/views/idle-assets-map/IdleAssetsRepairMap.vue'),
  433. 'SbPositionImg': () => import('@/views/sb-position/SbPositionImg.vue'),
  434. // test
  435. 'Test': () => import('@/views/test/Test1.vue'),
  436. // 自定义
  437. /* 'CustomForm': () => import('@/views/custom/form/CustomForm.vue'),
  438. 'CustomForm': () => import('@/views/custom/form/CustomForm.vue'), */
  439. // threeJs
  440. 'Workflow': () => import('@/views/workflow/workflow/Workflow.vue')
  441. }
  442. // 前端未找到页面路由(固定不用改)
  443. const notFoundRouter = {
  444. path: '*', redirect: '/404', hidden: true
  445. }
  446. // 根级菜单
  447. const rootRouter = {
  448. key: 'RootIndex',
  449. path: '/',
  450. url: '/',
  451. name: 'index',
  452. component: 'BasicLayout',
  453. meta: { title: '首页' },
  454. redirect: '/WorkplaceBacklog',
  455. type: 1,
  456. children: []
  457. }
  458. /**
  459. * 基础路由
  460. * @type { *[] }
  461. */
  462. export const constantRouterMap = [
  463. {
  464. path: '/user',
  465. component: UserLayout,
  466. redirect: '/user/login',
  467. hidden: true,
  468. children: [
  469. {
  470. path: 'login',
  471. name: 'login',
  472. component: () => import(/* webpackChunkName: "user" */ '@/views/Login')
  473. },
  474. {
  475. path: '/work/scan',
  476. name: 'scan',
  477. component: () => import(/* webpackChunkName: "user" */ '@/views/Scan')
  478. },
  479. {
  480. path: 'register',
  481. name: 'register',
  482. component: () => import(/* webpackChunkName: "user" */ '@/views/Register')
  483. },
  484. {
  485. path: 'register-result',
  486. name: 'registerResult',
  487. component: () => import(/* webpackChunkName: "user" */ '@/views/RegisterResult')
  488. },
  489. {
  490. path: 'recover',
  491. name: 'recover',
  492. component: undefined
  493. }
  494. ]
  495. },
  496. {
  497. path: '/404',
  498. component: () => import(/* webpackChunkName: "fail" */ '@/views/exception/404')
  499. },
  500. {
  501. path: '/tree',
  502. component: () => import('@/views/sb/info/modules/SbTreeModal.vue')
  503. },
  504. {
  505. path: '/opc',
  506. component: () => import('@/views/opc/Opc.vue')
  507. },
  508. {
  509. path: '/opc/info',
  510. component: () => import('@/views/opc/OpcInfo.vue')
  511. },
  512. {
  513. path: '/toWorkplaceBacklog',
  514. component: () => import('@/views/statisticView/22')
  515. },
  516. {
  517. path: '/InfoBigScreen',
  518. component: () => import('@/views/statisticView/22')
  519. },
  520. {
  521. path: '/InfoDetailBigScreen',
  522. component: () => import('@/views/statisticView/44')
  523. },
  524. {
  525. path: '/RepairBigScreen',
  526. component: () => import('@/views/statisticView/100')
  527. },
  528. {
  529. path: '/SwitchingRoomBigScreen',
  530. component: () => import('@/views/statisticView/SwitchingRoom')
  531. },
  532. {
  533. path: '/TransformerDetailBigScreen',
  534. component: () => import('@/views/statisticView/TransformerDetail')
  535. },
  536. {
  537. path: '/TransformerHistoryBigScreen',
  538. component: () => import('@/views/statisticView/TransformerHistory')
  539. },
  540. {
  541. path: '/DayStatistics',
  542. component: () => import('@/views/statisticView/DayStatistics')
  543. },
  544. {
  545. path: '/MonthStatistics',
  546. component: () => import('@/views/statisticView/MonthStatistics')
  547. },
  548. {
  549. path: '/StoreBigScreen',
  550. component: () => import('@/views/statisticView/9')
  551. },
  552. {
  553. path: '/main',
  554. component: () => import('@/views/statisticView/Main')
  555. },
  556. {
  557. path: '/platformSystem',
  558. component: () => import('@/views/statisticView/PlatformSystem')
  559. },
  560. {
  561. path: '/single/login',
  562. name: 'SingleLogin',
  563. component: () => import('@/views/white-list/SingleLogin'),
  564. meta: {
  565. title: '单点登录',
  566. keepAlive: false,
  567. hiddenHeaderContent: true,
  568. target: null,
  569. permission: ''
  570. },
  571. hidden: true,
  572. hideChildrenInMenu: true
  573. },
  574. {
  575. path: '/result/success',
  576. name: 'ResultSuccess',
  577. component: () => import(/* webpackChunkName: "result" */ '@/views/result/Success'),
  578. meta: {
  579. title: '结果页',
  580. keepAlive: false,
  581. hiddenHeaderContent: true,
  582. target: null,
  583. permission: ''
  584. },
  585. hidden: true,
  586. hideChildrenInMenu: true
  587. }
  588. ]
  589. /**
  590. * 默认菜单
  591. */
  592. const defaultRouter = {
  593. key: 'RootDefault',
  594. path: '/default',
  595. url: '/default',
  596. name: 'default',
  597. component: BasicLayout,
  598. meta: { title: '默认' },
  599. redirect: '/account/settings',
  600. type: 1,
  601. children: [
  602. {
  603. path: '/account/center',
  604. name: 'center',
  605. component: constantRouterComponents['AccountCenter'],
  606. meta: {
  607. title: '个人中心',
  608. keepAlive: false,
  609. hiddenHeaderContent: false,
  610. target: null,
  611. permission: ''
  612. },
  613. hidden: true,
  614. hideChildrenInMenu: true
  615. },
  616. {
  617. path: '/account/settings',
  618. name: 'settings',
  619. component: constantRouterComponents['AccountSettings'],
  620. meta: {
  621. title: '个人设置',
  622. keepAlive: false,
  623. hiddenHeaderContent: true,
  624. target: null,
  625. permission: ''
  626. },
  627. hidden: true,
  628. hideChildrenInMenu: true
  629. }]
  630. }
  631. /**
  632. * 动态生成菜单
  633. * @param token
  634. * @returns {Promise<Router>}
  635. */
  636. export const generatorDynamicRouter = (menus) => {
  637. return new Promise((resolve, reject) => {
  638. try {
  639. const menuNav = []
  640. // 后端数据, 根级树数组, 根级 PID,后端已转为树型 解构
  641. // listToTree(result, childrenNav, 0)
  642. rootRouter.children = menus
  643. menuNav.push(rootRouter)
  644. const routers = generator(menuNav)
  645. routers.push(notFoundRouter)
  646. routers.push(defaultRouter)
  647. resolve(routers)
  648. } catch (e) {
  649. reject(e)
  650. }
  651. })
  652. }
  653. /**
  654. * 格式化树形结构数据 生成 vue-router 层级路由表
  655. *
  656. * @param routerMap
  657. * @param parent
  658. * @returns {*}
  659. */
  660. export const generator = (routerMap, parent) => {
  661. return routerMap.map(itemTree => {
  662. let item = itemTree.item
  663. if (BaseTool.Object.isBlank(item)) {
  664. item = itemTree
  665. }
  666. item.children = itemTree.children
  667. // 如果不是菜单则跳过
  668. if (GlobalConstant.MenuTypeMenu === item.type) {
  669. return null
  670. }
  671. // path: '/dashboard',
  672. // name: 'dashboard',
  673. // redirect: '/dashboard/workplace', // 可以做父路由到子路由的跳转
  674. // component: RouteView,
  675. // meta: { title: '仪表盘', keepAlive: true, icon: bxAnaalyse, permission: [ 'dashboard' ] },
  676. const { title, visible, hideChildren, hiddenHeaderContent, target, icon } = item || {}
  677. const myComponent = constantRouterComponents[item.component || item.name]
  678. const currentRouter = {
  679. // 如果路由设置了 path,则作为默认 path,否则 路由地址 动态拼接生成如 /dashboard/workplace
  680. path: item.url || `${parent && parent.url || ''}/${item.name}`,
  681. // 路由名称,建议唯一
  682. name: item.name,
  683. // 该路由对应页面的 组件 :方案1
  684. component: myComponent,
  685. // 该路由对应页面的 组件 :方案2 (动态加载)
  686. // component: constantRouterComponents[item.component || item.key] || () => import(`@/views/${item.component}`),
  687. // meta: 页面标题, 菜单图标, 页面权限(供指令权限用,可去掉)
  688. meta: { title: title, icon: icon || undefined, keepAlive: false, hiddenHeaderContent: hiddenHeaderContent || false, target: target, permission: item.permission }
  689. }
  690. // 是否设置了隐藏菜单
  691. if (visible === false) {
  692. currentRouter.hidden = true
  693. }
  694. // 是否设置了隐藏子菜单
  695. if (hideChildren || visible === false) {
  696. currentRouter.hideChildrenInMenu = true
  697. }
  698. // 为了防止出现后端返回结果不规范,处理有可能出现拼接出两个 反斜杠
  699. if (!currentRouter.path.startsWith('http')) {
  700. currentRouter.path = currentRouter.path.replace('//', '/')
  701. }
  702. // 重定向
  703. if (item.redirect) {
  704. currentRouter.redirect = item.redirect
  705. } else if (item.children && item.children.length > 0) {
  706. // console.log('item.children', item.children)
  707. const redirectChild = item.children.find(child => child.item.visible)
  708. if (redirectChild) {
  709. currentRouter.redirect = redirectChild.item.url
  710. }
  711. }
  712. // 是否有子菜单,并递归处理
  713. if (item.children && item.children.length > 0) {
  714. // Recursion
  715. currentRouter.children = generator(item.children, currentRouter)
  716. }
  717. return currentRouter
  718. })
  719. }
  720. /**
  721. * 数组转树形结构
  722. * @param list 源数组
  723. * @param tree 树
  724. * @param parentId 父ID
  725. */
  726. // const listToTree = (list, tree, parentId) => {
  727. // list.forEach(item => {
  728. // // 判断是否为父级菜单
  729. // if (item.parentId === parentId) {
  730. // const child = {
  731. // ...item,
  732. // key: item.key || item.name,
  733. // children: []
  734. // }
  735. // // 迭代 list, 找到当前菜单相符合的所有子菜单
  736. // listToTree(list, child.children, item.id)
  737. // // 删掉不存在 children 值的属性
  738. // if (child.children.length <= 0) {
  739. // delete child.children
  740. // }
  741. // // 加入到树中
  742. // tree.push(child)
  743. // }
  744. // })
  745. // }