西藏巴青项目

设备实施作业标准管理前端技术方案.md 11KB

设备实施作业标准管理 — 前端技术方案

依据:设备实施作业标准管理技术方案.md(同目录,下称总方案)。本文描述 Vue 管理端页面接口封装权限字交互与校验与总方案 §2 / §3 的对应关系;库表、状态机与知识库编排以后端总方案为准。


1. 技术架构

说明
工程 若依 RuoYi-Vue 前端(Vue 2.x + Element UI + Vue Router + Vuex
页面路径 ruoyi-ui/src/views/breedingStandards/equipmentOperation/index.vue
组件名 EquipmentOperationStandard
布局参考 ruoyi-ui/src/views/breedingStandards/breedingManage/index.vue(双 el-card:查询区 + 表格区;新增/编辑弹窗 + 查看弹窗)
HTTP @/utils/request 封装 Axios,自动拼接 VUE_APP_BASE_API、携带 Authorization
时间格式化 全局 parseTime(若依 utils/ruoyi 注入)
分页 公共组件 pagination,与列表 TableDataInfototalrows 对齐

与总方案关系:列表/详情/写操作均调用总方案 §3 所列 REST;行内操作显隐与 publish_statuskb_sync_status 合法组合一致(总方案 §2.1 合法组合)。


2. 源码与路由

类型 路径
页面 ruoyi-ui/src/views/breedingStandards/equipmentOperation/index.vue
API 模块 ruoyi-ui/src/api/breedingStandards/equipmentWorkStandard.js

菜单(若依后台配置)

配置项 建议值
组件路径 breedingStandards/equipmentOperation/index(与 views 下相对路径一致,无前缀 @/
路由名 自定,不与现有路由冲突即可
权限标识 §5 表一致,子菜单按钮 SQL 与总方案交付清单对齐

3. 页面结构

3.1 查询区(首卡片)

UI 绑定/说明
关键词 queryParams.keyword,占位「名称或简介模糊查询」,回车触发搜索;与后端实体检索字段 keyword 对应
标准类型 queryParams.standardType,下拉可清空;选项在 created 中调用 §7.1 接口动态加载
搜索 handleQuerypageNum = 1getList
重置 resetQuery:清空 keywordstandardTyperesetForm('queryForm') 后再查询
新增 v-hasPermi="['equipment:workStandard:add']"handleAdd

3.2 列表区(次卡片)

数据来源 备注
标准名称 standardName show-overflow-tooltip
标准类型 standardType typeLabel(code):由 standardTypeOptions§6.1)按编码映射名称
简介 introduction
正文附件 contentFileUrl / contentFileName el-link 新窗口打开
上架状态 publishStatus publishStatusText
知识库同步 kbSyncStatus kbSyncStatusText
发布日期 publishTime parseTime(..., '{y}-{m}-{d}'),空为「—」
创建时间 createTime parseTime 完整格式
操作 多个 el-button type="text" 权限 + 行状态双条件,见 §5

分页pageNumpageSize 默认 1 / 20,与总方案 §3.1 一致;v-show="total > 0"

3.3 新增 / 编辑弹窗

字段 表单控件 校验(前端)
standardName 输入框,maxlength=20,字数统计 必填;长度 1~20(与总方案 §3 校验摘要一致)
standardType 下拉 必填;选项来自 listInformationCategoryChildren('001', 3)value=codelabel=name
introduction 多行文本,maxlength=50 选填;最多 50
正文附件 el-upload/common/upload 必填(以 contentFilePath 为校验 prop);后缀白名单、≤30MB、文件名不含英文逗号
封面 picture-card 上传,最多 1 张 选填;jpg/jpeg/png、≤10MB

编辑态:仅当详情返回 publishStatus === 0kbSyncStatus === 0 时允许修改表单字段及替换/删除正文与封面(canEditFormRow);与总方案 §3.4「仅未发布未同步可改」一致。已同步记录点击编辑时提示 ruleSyncedNoEdit,不打开弹窗。

提交 Body(小驼峰)

说明
standardName / standardType / introduction 与总方案 §3.3 / §3.4 一致;introduction 可省略或 undefined
contentFileUrl / contentFilePath / contentFileName 上传成功回写
coverFileUrl / coverFilePath 可选
id 仅修改时携带

弹窗标题:[新增]设备实施作业标准 / [编辑]设备实施作业标准

3.4 查看弹窗

GET /equipment/workStandard/{id} 拉全量展示:标准名称、类型、简介、正文链接、封面(image-preview)、上架状态、知识库同步、发布时间、下架时间。


4. 上传与鉴权

说明
上传地址 VUE_APP_BASE_API + '/common/upload'
请求头 Authorization: Bearer <token>@/utils/auth getToken
成功回调 code === 200 时取 urlfileNameoriginalFilename(正文名优先 originalFilename,否则取本地 file.name
失败 on-error 关闭 loading 并 msgError

正文允许后缀(与页面一致):pdfmddocdocxxlsxlsxpptpptx。物理文件删除、知识库联动由后端在修改/删除等接口内完成(总方案 §4),前端不直接调用知识库 HTTP。


5. 操作按钮与权限

权限字与总方案 §3 一致;按钮同时受 v-hasPermi行状态方法 控制。

按钮 权限标识 显示条件(与行数据)
查看 equipment:workStandard:query 有权限即显
同步知识库 equipment:workStandard:syncKb publishStatus === 0kbSyncStatus === 0
移出知识库 equipment:workStandard:removeKb publishStatus === 0kbSyncStatus === 1
编辑 equipment:workStandard:edit publishStatus === 0kbSyncStatus === 0(与总方案 §3.4 一致)
删除 equipment:workStandard:remove publishStatus === 0kbSyncStatus === 0
发布 equipment:workStandard:publish publishStatus === 0kbSyncStatus === 1
下架 equipment:workStandard:offline publishStatus === 1

说明(publishStatus, kbSyncStatus) = (1, 0) 为非法组合,前端不单独分支;若后端脏数据,以接口 msg 为准。

二次确认:同步、移出、删除、发布、下架均使用 this.$modal.confirm;下架说明与总方案「下架 vs 移出」语义一致。


6. 枚举与展示映射

6.1 standardType(标准类型)

页面维护 standardTypeOptions: []created 调用 loadStandardTypeOptions()

import { listInformationCategoryChildren } from '@/api/category/informationCategory'
// listInformationCategoryChildren('001', 3) → data[],项字段 code、name

列表/详情展示:typeLabel(code)standardTypeOptions 中查找 item.code === code 后取 item.name;找不到时回退 存量迁移 映射 LEGACY_STANDARD_TYPE_LABELS14 → 国际化 breedingStd.eqp.type1type4,对应总方案 §2.2 迁移脚本 10010074001010);仍无则回显编码。

编码(示例) 界面文案
001007 设备操作
001008 设备保养
001009 设备排障
001010 设备维修

6.2 publishStatus(上架状态)

界面文案
0 未发布
1 已发布

6.3 kbSyncStatus(知识库同步)

界面文案
0 未同步
1 已同步

7. API 模块与后端 URI 对应

7.1 标准类型选项(资讯类别)

文件:ruoyi-ui/src/api/category/informationCategory.js

方法 HTTP URI 参数 / 响应
listInformationCategoryTree GET /category/informationCategory/tree Query 可选 categoryTypedata[] 项字段 codenamecategoryTypechildren
listInformationCategoryChildren GET /category/informationCategory/children parentCode=001categoryType=3data[] 项字段 codename

7.2 设备实施作业标准 CRUD

文件:ruoyi-ui/src/api/breedingStandards/equipmentWorkStandard.js。请求/响应字段采用 小驼峰(与 BizEquipmentWorkStandard 及 Jackson 序列化一致)。

方法(导出) HTTP URI
listEquipmentWorkStandard GET /equipment/workStandard/list
getEquipmentWorkStandard GET /equipment/workStandard/{id}
addEquipmentWorkStandard POST /equipment/workStandard
updateEquipmentWorkStandard PUT /equipment/workStandard
delEquipmentWorkStandard DELETE /equipment/workStandard/{ids}
syncKbEquipmentWorkStandard POST /equipment/workStandard/syncKb/{id}
removeKbEquipmentWorkStandard POST /equipment/workStandard/removeKb/{id}
publishEquipmentWorkStandard POST /equipment/workStandard/publish/{id}
offlineEquipmentWorkStandard POST /equipment/workStandard/offline/{id}

列表查询参数pageNumpageSizekeywordstandardType(与页面 queryParams 一致)。


8. 错误与交互约定

场景 前端行为
列表/表单接口非 200 走全局 request 拦截器提示(若依默认)
标准类型选项加载失败 loadStandardTypeOptions 捕获异常,msgError(errStdTypeLoad),下拉为空
已同步记录点编辑 msgWarning(ruleSyncedNoEdit),不请求详情
已发布记录点编辑 msgWarning(rulePublishedNoEdit)
上传失败 msgError,关闭 loading
删除 单行传 iddelEquipmentWorkStandard(与总方案 {ids} 兼容)

不在前端重复实现知识库重试;失败以后端 msg 为准。


9. 交付与联调清单

  • 菜单路由指向 breedingStandards/equipmentOperation/index,按钮权限 SQL 与 §5 一致
  • 标准类型下拉:GET /category/informationCategory/children?parentCode=001&categoryType=3
  • 后端 /equipment/workStandard/** 与总方案 §3 对齐,分页字段 rows / total
  • 存量环境执行 sql/biz_equipment_work_standard_alter_standard_type.sql 后列表类型展示正常
  • /common/upload 可访问且返回 urlfileNameoriginalFilename
  • 联调:新增 → 同步知识库 → 发布 → 下架 → 移出 → 删除(及未发布仅本地删除等路径)
  • 联调:已同步记录编辑被前端拦截;未同步修改成功;已同步修改被后端拒绝(双端一致)

10. 文档修订记录

版本 日期 说明
v1.0 2026-05-11 初稿,与 equipmentOperation/index.vueequipmentWorkStandard.js 及总方案 §2~§3 对齐
v1.1 2026-06-01 标准类型改资讯类别编码:动态加载 parentCode=001&categoryType=3;筛选/表单传 code;存量 14 回退展示;编辑/上传仅 未发布+未同步;补充类型加载失败与已同步编辑提示