3.1 KiB
3.1 KiB
操作日志:气站合同附件上传
操作时间:2026-08-18 21:43:42 操作类型:扩展 影响模块:气站管理端 5175、气站 API 合同附件路由、气站需求文档
操作前状态
- 5175 配送合同表单把
file_uri渲染为“附件地址”文本输入框。 - 气站前端已存在从 5173 复制的附件控件和状态逻辑,但标准记录页未接线,附件客户端默认地址仍误指向平台主管
/heqi/platform/v1。 - 后端只有平台主管附件专用路由;气站合同创建和更新虽复用平台业务逻辑,但没有气站鉴权域的上传、清理与预览入口。
具体操作
- 将气站合同字段声明为
contract-file,在标准记录页接入选择、拖拽、预览、替换、移除、失败清理和未保存提示。 - 将气站附件客户端默认 API 前缀修正为
/heqi/gas/v1。 - 在气站 API 新增上传、临时清理和预览路由;上传与清理验证当前气站账号,预览额外校验合同归属。
- 新增气站附件路由回归测试,并同步气站需求和项目维护文档。
操作后状态
- 5175 合同新建和草稿编辑页显示单 PDF 上传控件,不再允许手填内部附件地址。
- 合同详情页可通过鉴权 Blob 预览附件;旧地址不可用时提示重新上传。
- 气站 JWT 只访问气站域附件接口,跨气站合同在下载前被归属校验拦截。
- 5173 平台总后台、合同数据库结构和公共合同接口保持兼容。
代码变更
backend/api/internal/logic/gas/gasorder.go:新增UploadGasorderContractAttachment、CleanupGasorderContractAttachment、ServeGasorderContractAttachment。backend/api/internal/routers/gas_business.go:新增 3 条合同附件路由。backend/api/internal/routers/gas_test.go:新增TestGasContractAttachmentRoutes。frontend/gas_admin/src/api/contract-attachment.ts:改用气站 API 前缀。frontend/gas_admin/src/api/resources.ts:合同附件改为专用文件字段。frontend/gas_admin/src/views/resource/ResourceRecordPage.vue:接入完整附件页面流程。
验证结果
go test ./...:通过。go vet ./...:通过。go build ./cmd/main/main.go:通过。pnpm type:check:通过。pnpm contract:check:通过,20 个资源。pnpm build:通过。pnpm lint:命令成功,报告 190 条仓库既有警告;本次改动未产生 lint 错误。- 浏览器只读检查:5175 服务和登录页正常、控制台无错误;因自动化会话没有气站登录态,未提交账号或读取受保护合同。
风险评估
- 风险:上传和绑定仍复用平台主管包中的既有实现,操作人名称在气站账号场景可能为空,但操作人 identity、合同 identity、动作和结果仍会记录。
- 缓解:气站路由受独立 JWT 中间件保护,入口验证有效气站账号,下载执行合同归属校验;签名收据继续绑定操作人 identity 并限制有效期。
- 后续人工边界验收:合法 PDF、非 PDF、空文件、超过 10 MiB、重复保存、编辑替换、移除、跨气站合同和旧地址不可用。