# 125 Admin:采购任务详情独立展示 PDD 核单结果 - 类型:需求 / 易用性改进 - 父级大工单:#14 - 所属 MVP / 版本:#15 Admin 四模块可用闭环 - 状态:已完成,用户验收通过 - 日期:2026-08-10 - Gitea 工单:http://ilaer.eicp.net:8418/chengma/cmautobuy/issues/125 ## 背景与目标 Client 已在真实采购核单成功结果中提交 PDD 订单编号、下单时间和付款状态,但 Admin 原先只能展开完整 `result_data` JSON 查找。目标是在采购任务详情中结构化展示这些字段, 并明确它们不同于顺运宝货运单号,付款状态也不是 PDD 实时查询结果。 ## 最终方案 - Service 从现有 `tasks.result_data.purchase` 解析核单摘要,不改变数据结构和 Client 接口。 - 只有满足已匹配、已提交、订单编号非空、下单时间为带时区 ISO 8601、付款状态为 `unpaid` 的结果,才显示结构化订单字段。 - 下单时间转换为 Admin 所在机器的本地时区。 - 采购任务详情增加只读“PDD 核单结果”分组,显示订单编号、下单时间和 “未付款(Client 上报时)”,并说明 Admin 不查询实时付款状态。 - 等待上报、需人工、未匹配、非法 JSON、缺少采购对象和非法时间分别显示明确文字。 - 原始完整结果折叠区保留;采集任务不显示核单结果分组。 实现与建单方案一致。UI/UX 检查采用现有紧凑型详情视觉体系、顺序标题、文字状态和 渐进展开原则,没有增加颜色编码、动画或额外交互。 ## 改了哪些 - `admin/service/task.go`:增加采购核单结果解析、验证、时间转换和展示字段。 - `admin/service/task_test.go`:覆盖成功结果、不同等待/异常状态和采集任务隔离。 - `admin/templates/task/detail_modal.html`:增加只读 PDD 核单结果分组。 - `admin/main_test.go`:增加模板结构回归检查。 - `docs/admin/01-requirements.md`:记录核单结果展示业务规则。 - `docs/admin/05-ui-specification.md`:补充详情布局和状态文案规范。 ## 验收结果 | 验收标准 | 结果 | |---|---| | 采购成功结果独立显示订单编号、下单时间和上报时付款状态 | 通过 | | 订单编号使用可选择复制的普通文本 | 通过 | | 带时区时间转换为 Admin 本地时区,非法时间不伪造 | 通过 | | 付款状态明确为 Client 上报时快照 | 通过 | | 等待、人工处理、未匹配和格式异常使用不同文字 | 通过 | | 采集任务不显示核单分组 | 通过 | | 原始结果继续保留并可展开诊断 | 通过 | | 数据库和 Client 四接口不变 | 通过 | | Go build、test、vet 通过 | 通过 | ## 测试 - 执行的命令:`GOTOOLCHAIN=go1.23.0 go build ./...`、`go test ./... -count=1`、`go vet ./...`、`git diff --check` - 结果:Admin 全部包构建成功,全部自动化测试通过,vet 和差异检查无报错。 - **没验证到的部分**:未在真实浏览器中使用生产采购结果人工核对视觉效果和订单编号复制;未查询 PDD,付款状态按设计仅展示 Client 上报快照。 ## 相关提交 - `a7bc9a9` feat: 采购详情展示 PDD 核单结果 (#125)