Skip to content

维护管理模块

**本文引用的文件** - [maintain.vue](file://app/devicemate-app/modules/maintain/maintain.vue) - [execute.vue](file://app/devicemate-app/modules/maintain/execute.vue) - [apply.vue](file://app/devicemate-app/modules/maintain/apply.vue) - [checkDetail.vue](file://app/devicemate-app/modules/maintain/checkDetail.vue) - [assign.vue](file://app/devicemate-app/modules/common/assign.vue) - [history.vue](file://app/devicemate-app/modules/common/history.vue) - [basicInfo.vue](file://app/devicemate-app/modules/maintain/components/basicInfo.vue) - [check.vue](file://app/devicemate-app/modules/maintain/components/check.vue) - [spareParts.vue](file://app/devicemate-app/modules/maintain/components/spareParts.vue) - [safety.vue](file://app/devicemate-app/modules/maintain/components/safety.vue) - [maintain.js](file://app/devicemate-app/store/modules/maintain.js) - [dictMixins.js](file://app/devicemate-app/utils/dictMixins.js)

目录

  1. 简介
  2. 项目结构
  3. 核心组件
  4. 架构总览
  5. 详细组件分析
  6. 依赖关系分析
  7. 性能与可用性考量
  8. 故障排查指南
  9. 结论
  10. 附录

简介

本文件面向“维护管理模块”的前端实现,系统性梳理其业务架构与工作流程,覆盖维保计划管理、维护任务执行、维护申请处理等核心功能;并详细说明维护工单的创建、分配、执行与验收流程,包括任务列表展示、任务详情查看、执行进度跟踪、检查项详情查看、部件申请、组件化页面设计等。同时解释维护数据的采集、记录与统计分析方法(维护记录保存、附件上传、安全检查、备件管理、质量检查等),并给出组件设计思路、状态管理与数据同步机制的最佳实践与用户体验优化建议。

项目结构

维护管理模块位于前端工程 app/devicemate-app 的 modules/maintain 目录下,采用按功能域划分的组织方式,结合公共模块 common 与组件化设计,形成清晰的页面-组件-状态三层结构。

图表来源

章节来源

核心组件

  • 工单列表页:负责展示维护工单、筛选、扫码查询、状态确认与跳转至执行/指派/维修/历史等子流程。
  • 执行页:集中承载基础信息、检查项、备件、耗材、工具、安全提示、文档等多标签页,支持拍照上传、保存草稿、提交验收。
  • 部件申请页:基于标准作业指导书生成申请清单,支持仓库选择、数量校验、批量提交。
  • 检查项详情页:展示检查模块、项目、内容、参考图示等。
  • 公共指派页:从部门用户中选择执行人并回写工单。
  • 公共历史/异常登记页:登记异常项并关联到对应工单来源。
  • 组件库:基础信息、检查项、备件、安全提示等可复用UI与交互。

章节来源

架构总览

维护管理模块采用“页面-组件-状态”分层设计:

  • 页面层:负责路由导航、参数传递、调用接口与触发动作。
  • 组件层:封装通用UI与交互,如检查项列表、备件列表、安全提示等。
  • 状态层:通过Vuex模块维护页面状态(如页面类型、已选部件列表)与跨页面共享数据(如指派URL、历史工单信息)。

图表来源

详细组件分析

工单列表页(maintain.vue)

职责与流程

  • 展示维护工单列表,支持按状态筛选、设备编码查询、扫码查询。
  • 提供“指派”“执行”“转维修”“历史记录”等入口按钮,依据工单状态动态显示。
  • 支持“驳回/确认”状态变更弹窗确认。
  • 分页加载与下拉刷新,集成字典渲染状态标签。

关键交互

  • 点击“指派”:将指派URL与参数写入公共状态,跳转至指派页。
  • 点击“执行”:进入执行页,携带工单ID。
  • 点击“转维修/历史记录”:写入公共状态并跳转。
  • 点击“扫码”:读取设备编码并刷新列表。

图表来源

章节来源

执行页(execute.vue)

职责与流程

  • 多标签页承载:基础信息、检查项、在用备件、耗材、工具、安全提示、文档。
  • 初始化时加载工单详情、检查项、备件、耗材、工具、安全提示、文档列表。
  • 支持选择验收人、保存检查结果、提交执行完成。
  • 在用备件支持“更换/变更”数量,调用后端接口更新设备部件明细或删除部件。

关键交互

  • 切换标签:根据当前标签渲染对应组件。
  • 选择验收人:弹窗选择用户,提交时写入验收人信息。
  • 保存/提交:保存当前检查结果草稿,最终提交完成执行。

图表来源

章节来源

部件申请页(apply.vue)

职责与流程

  • 基于标准作业指导书生成申请清单,区分耗材、工具等类型。
  • 支持仓库选择、数量输入、数量规则校验(整数、≥1)。
  • 支持“立即申请”跳转到更多部件选择页。
  • 提交后返回上一页并提示成功。

关键交互

  • 规则校验:数量为空、小于1、小数点均提示错误。
  • 数据格式化:将标准清单映射为申请表单,合并已选部件。
  • 提交:组装参数并调用申请接口。

图表来源

章节来源

检查项详情页(checkDetail.vue)

职责与流程

  • 展示检查模块、项目、内容、工作方法、参考图示、提示图等信息。
  • 用于在检查页点击某一项时查看详细说明。

章节来源

公共指派页(assign.vue)

职责与流程

  • 从当前部门用户中检索并选择执行人。
  • 将所选执行人信息回写到工单,触发状态更新。

章节来源

公共历史/异常登记页(history.vue)

职责与流程

  • 展示工单基本信息,并允许登记异常项。
  • 提交后将异常项与工单来源类型关联。

章节来源

组件库

  • 基础信息组件(basicInfo.vue):以只读列表形式展示工单基础信息。
  • 检查组件(check.vue):支持拍照上传、填写实测值、判定OK/NG/NA、保存草稿。
  • 备件组件(spareParts.vue):在用备件与申请两个标签页,支持“更换/变更”数量与跳转申请。
  • 安全提示组件(safety.vue):展示危险源、状态、因素、损伤类型、等级、防护措施与图示。

章节来源

依赖关系分析

  • 页面对组件的依赖:执行页聚合多个组件,体现“页面即编排”的思想。
  • 页面对状态的依赖:执行页通过公共状态控制页面类型(只读/可编辑),维护页通过公共状态写入指派URL与历史信息。
  • 页面对工具的依赖:统一使用字典混入获取字典列表与名称转换。
  • 页面对HTTP的依赖:所有页面通过统一的$http发起请求,避免分散的网络层。

图表来源

章节来源

性能与可用性考量

  • 列表分页与无限滚动:使用mescroll-body实现上拉加载与下拉刷新,避免一次性加载大量数据。
  • 图片上传:检查页支持拍照与相册选择,上传采用单文件直传,减少并发压力。
  • 表单校验:在输入框失焦时进行即时校验,减少无效提交。
  • 只读态控制:通过公共状态pageType控制页面编辑能力,避免误操作。
  • 字典缓存:统一通过字典混入获取字典列表,减少重复请求。

故障排查指南

常见问题与定位

  • 提交失败:检查网络请求返回码与提示,确认必填字段与校验规则。
  • 图片上传失败:确认上传接口地址、Token头与文件路径正确。
  • 状态不可变更:确认当前工单状态与操作权限,以及是否满足前置条件。
  • 备件数量异常:检查“更换/变更”数量是否超过可用库存或已出库数量。

定位步骤

  • 查看页面日志与Toast提示。
  • 检查$store中公共状态(如assignUrl、history、pageType、partList)是否正确设置。
  • 核对后端接口返回码与消息体。

章节来源

结论

维护管理模块通过清晰的页面-组件-状态分层,实现了从工单列表到执行验收的完整闭环。页面间通过公共状态与工具混入解耦,组件化设计提升了复用性与可维护性。建议在后续迭代中进一步完善离线缓存、批量操作与报表导出能力,持续优化用户体验与数据一致性。

附录

  • 组件化页面设计要点
    • 页面作为编排者,聚焦路由与状态流转。
    • 组件作为原子能力,封装UI与交互,保持无副作用。
    • 状态模块集中管理跨页面共享数据与页面类型。
  • 状态管理与数据同步
    • 使用Vuex命名空间模块隔离维护相关状态。
    • 通过公共状态在页面间传递临时数据(如指派URL、历史工单)。
  • 最佳实践
    • 统一使用字典混入进行字典获取与名称转换。
    • 对关键操作增加确认弹窗与Toast反馈。
    • 对上传与提交等异步操作增加Loading与错误兜底。