2.4 KiB
2.4 KiB
操作日志:配送点合同附件管理
操作时间:2026-08-22 操作类型:扩展、修改 影响模块:配送合同列表、独立记录页、配送域附件接口、项目文档
操作前状态
配送合同列表直接展示 /uploads/contracts/...,新建和编辑页允许手填 file_uri;配送域没有附件上传、清理和鉴权读取路由。合同列表 API 也会返回内部附件路径。
具体操作
- 在配送域增加上传、临时清理和正式附件读取包装,并在读取前校验当前配送点合同归属。
- 复用平台合同附件的 10 MiB PDF 校验、30 分钟签名收据、并发版本和安全响应头。
- 配送合同列表经过统一敏感字段保护,删除
file_uri,增加has_attachment。 - 5176 新增 PDF 选择、拖拽、替换、确认移除、预览、下载和失败清理流程。
- 新版前端保存时主动删除
file_uri,仅提交签名收据和附件版本。 - 更新独立资源项目文档,纠正与原始敏感数据保护要求冲突的文本 URI 边界。
行为变化
- 变更前:页面和网络响应暴露内部存储路径,管理员可手填任意 URI。
- 变更后:列表只显示附件状态和鉴权入口;详情可预览、下载;草稿可上传、替换和移除;非草稿只读。
- 兼容性:数据库字段、合同 CRUD 路径和后端旧
file_uri输入保持兼容,5176 不再使用旧输入。
验证结果
go test ./internal/logic/common ./internal/logic/delivery ./internal/logic/platform/gasorder ./internal/routers ./cmd/cli:通过。npm.cmd run type:check:通过。npm.cmd run resource-pages:check:通过,详情 17、新建 9、编辑 5,并覆盖附件三条路由和前端签名收据编排。npm.cmd run contract:check、npm.cmd run profile:check:通过。npm.cmd run build:通过,2639 个模块完成生产构建。- 后端已重建并监听
12426;浏览器会话当前停留在登录页,登录后的视觉回归待补。
风险评估
- 临时上传成功但合同保存失败:前端调用签名清理接口,服务端仍有有效期兜底。
- 历史附件缺失或格式异常:详情显示需重传,启用操作继续由服务端拒绝。
- 并发编辑附件:附件版本与旧 URI 双重条件防止覆盖他人变更。
- 5173 列表响应的同类潜在泄露未在本次扩大处理,已登记为后续安全债务。