| 页面 | 路由 | 说明 |
|---|---|---|
| 项目详情 - 资料审核 Tab | /mes/pd/project/detail/{id}?tab=audit |
需新增「文件」列 |
审核人在「资料审核」列表中需要直接看到并打开被审核资料对应的文件,用于审核前查阅。当前列表只有审核单号、资料名称、版本、审核状态等,没有文件入口。
审核记录(mes_pd_document_audit)本身不存文件,文件挂在「设计资料」上,关联链路如下:
mes_pd_document_audit.document_id
└──> mes_pd_document.id (设计资料)
└──> system_storage_attachment(recordType = mes_pd_document, recordId = 设计资料 ID)
└──> 文件地址 / 文件名
文件仍然走 system 模块的 Storage Attachment 机制,未在业务表新增任何文件地址列。
| 方法 | 路径 | 说明 |
|---|---|---|
| GET | /mes/pd/document-audit/page |
资料审核分页(响应新增字段) |
| GET | /mes/pd/document-audit/get |
资料审核详情(响应新增字段) |
请求参数: 无变更。
响应字段新增:
| 字段 | 类型 | 说明 |
|---|---|---|
| fileName | String | 资料文件名,取该资料第一个附件的名称;无附件时为 null |
| fileUrl | String | 资料文件地址,取该资料第一个附件的可访问 URL;无附件时为 null |
响应示例:
{
"code": 0,
"data": {
"list": [
{
"id": 3023,
"auditNo": "AUD2024001",
"documentId": 1017,
"documentName": "产品设计图",
"documentVersion": "V1.0",
"fileName": "design_v1.pdf",
"fileUrl": "https://xxx/design_v1.pdf",
"auditStatus": 0,
"remark": null,
"createTime": "2026-10-15 02:26:28"
}
],
"total": 1
}
}
需要改动的文件:
| 文件 | 改动 |
|---|---|
src/api/mes/pd/document-audit/index.ts |
MesPdDocumentAuditApi.DocumentAudit 接口补 fileName、fileUrl 两个可选字段 |
src/views/mes/pd/project/modules/document-audit-list.vue |
grid 列增加「文件」列(slots.default = 'file'),并在模板中增加对应具名插槽 |
「文件」列的渲染规则与「设计资料」列表(document-list.vue 的 #file 插槽)保持完全一致,可直接复用同一写法。
| 字段 | 展示位置 | 说明 |
|---|---|---|
| fileUrl | 列表「文件」列 | 有值时渲染为可点击链接,新窗口打开 |
| fileName | 列表「文件」列 | 作为链接文案;为空时回退为「查看文件」 |
建议列宽 minWidth: 140,位置放在「资料版本」之后。
| 场景 | 规则 |
|---|---|
| 资料有多个附件 | 只取第一个附件的地址与名称(与设计资料列表口径一致) |
| 资料无附件 | fileUrl / fileName 均为 null,列内显示 -,不渲染链接 |
| 审核记录已删除资料 | documentId 查不到附件,同样显示 - |
| 未配置存储 / 附件读取失败 | 后端不抛异常,字段留空,列表照常返回 |
fileUrl 由后端拼接,前端**不要**再单独调用 /system/storage-attachment/list,避免每行一次额外请求。/mes/pd/document-audit/export-excel 同步新增了「文件」列(内容为文件名),无需前端改动。问题:**自动审批模式**下,document-audit-form.vue 中「审核结果」字段(原 fieldName = 'auditStatus')被 src/adapter/form.ts 的自动审批字段过滤逻辑(isAuditField 命中 auditStatus 正则)整条从表单 schema 中移除,导致:
1. 审核人看不到、也无法选择「审核通过/审核不通过」;
2. 提交时 auditStatus 缺省,后端拆箱产生 NPE。
已修复(前端 + 后端两侧):
| 侧 | 改动 |
|---|---|
前端 document-audit-form.vue |
字段名 auditStatus → auditResult(避开 isAuditField 正则),提交时映射回 auditStatus;表单打开时显式清空 auditResult |
后端 MesPdDocumentAuditServiceImpl#updateDocumentAudit |
auditStatus 为空时抛 PD_DOCUMENT_AUDIT_STATUS_REQUIRED(「审核结果不能为空:请选择「审核通过」或「审核不通过」后重新提交」);非 1/2 抛 PD_DOCUMENT_AUDIT_STATUS_INVALID;审核人、审核时间统一由后端记录 |
注意:其他表单若出现同名 auditStatus / auditTime / approvalStatus 等字段,同样会被自动审批模式过滤,需逐一核查。