附件体系从独立的 quality_inspect_file 表改为使用系统统一的 storage_attachment 表,通过 recordType + recordId 关联。前端附件上传/回显方式和系统其他模块(如采购台账、设备维修等)保持一致。
| 接口 | 变更说明 |
|---|---|
POST /quality/qualityInspect/add |
请求体新增 storageBlobDTOs 字段 |
POST /quality/qualityInspect/update |
请求体新增 storageBlobDTOs 字段 |
GET /quality/qualityInspect/{id} |
响应新增 storageBlobVOs 字段 |
| 接口 | 变更说明 |
|---|---|
POST /quality/qualityUnqualified/add |
请求体新增 storageBlobDTOs 字段 |
POST /quality/qualityUnqualified/update |
请求体新增 storageBlobDTOs 字段 |
GET /quality/qualityUnqualified/{id} |
响应新增 storageBlobVOs 字段 |
{
"id": "临时文件ID(字符串)",
"name": "文件名",
"url": "文件路径",
"fileSize": 1024
}
{
"id": 1,
"name": "检验报告.pdf",
"url": "/upload/20260613/xxx.pdf",
"fileSize": 102400,
"application": "FILE"
}
<!-- 附件上传组件(使用系统已有的文件上传组件) -->
<file-upload
v-model="form.storageBlobDTOs"
:file-list="form.storageBlobVOs"
@change="handleFileChange"
/>
<el-form-item label="附件">
<template v-if="form.storageBlobVOs && form.storageBlobVOs.length > 0">
<div v-for="file in form.storageBlobVOs" :key="file.id">
<a :href="file.url" target="_blank">{{ file.name }}</a>
<span style="margin-left: 10px; color: #999">{{ (file.fileSize / 1024).toFixed(1) }}KB</span>
</div>
</template>
<span v-else>无附件</span>
</el-form-item>
<file-upload
v-model="form.storageBlobDTOs"
:file-list="form.storageBlobVOs"
/>
<el-form-item label="附件">
<template v-if="form.storageBlobVOs && form.storageBlobVOs.length > 0">
<div v-for="file in form.storageBlobVOs" :key="file.id">
<a :href="file.url" target="_blank">{{ file.name }}</a>
</div>
</template>
<span v-else>无附件</span>
</el-form-item>
data() {
return {
form: {
storageBlobDTOs: [], // 上传时传入
storageBlobVOs: [], // 查询时返回
// ... 其他字段
}
}
}
quality_inspect_file 表废弃,数据已迁移到 storage_attachment 表POST /quality/qualityInspectFile/add 等接口,需移除相关代码执行文件:doc/sql/20260613_quality_attachment_optimize.sql
/file/upload),将返回的临时文件ID通过 storageBlobDTOs 传入storageBlobDTOs 或传空数组,不会删除已有附件;需要删除附件时传空数组即可