Files
medical-mall/pages/mall/delivery/doc/需求文档/前端字段清单.md
2026-02-06 15:10:18 +08:00

4.7 KiB
Raw Blame History

前端字段清单(订单详情页物流时间线|安卓 & Web

说明:本清单用于平台前端展示“物流关键节点时间线”。数据来源为平台后端消费 Mock Server或未来真实承运方的事件后形成的统一模型。

本文定位:只定义“平台后端 -> 客户端”的展示字段契约与规则Mock Server 的接口与字段以 接口规范.md 为准。

关联文档:

  • 配送模块需求文档.md:目标/范围/验收与故障注入
  • 接口规范.md:统一事件模型、平台接收 Webhook、Mock 控制面 API
  • 状态映射表.mdevent_code -> status_code 映射建议

适用端:

  • 安卓端App重点是用户体验弱网/图片预览/快速刷新)。
  • Web 端H5/PC重点是排障效率筛选/搜索/原始事件折叠展示)。
  1. 订单详情delivery block
  • order_no:订单号
  • tracking_no / waybill_no:运单号(可能为空)
  • carrier承运商标识YUNDA/YTO/KDN 等)
  • status平台统一状态码PENDING/IN_TRANSIT/ARRIVED_HUB/OUT_FOR_DELIVERY/DELIVERED/EXCEPTION/RETURNED
  • status_history:事件数组,元素结构 {event_id, event_time, event_code, event_text, status_code, node_name, location, description, evidence_urls, source}
  • eta预计到达时间ISO8601若承运方或 ETA 服务提供)
  • pod:签收凭证数组,元素 {type: photo|signature, url, timestamp, remark}
  • receiver_name:收件人姓名(仅客服可查看完整)
  • receiver_masked_phone:脱敏手机号(前端展示)
  • receiver_address:收货地址(可按需隐藏部分字段)
  • last_synced_at:最后同步时间(平台本地)
  • source来源mock / carrier / aggregator用于 UI 标注与排障
  1. 管理/调试视图字段(可选)
  • mock_enabled:是否开启 mock 数据
  • mock_carrier:当前模拟承运方
  • webhook_last_result:最近一次 webhook 推送结果摘要(仅调试页面)
  1. 行为与按钮映射(平台侧)
  • 刷新物流 -> GET /api/v1/delivery/express/track平台查询自身已入库事件或平台发起轮询
  • 上报异常 -> POST /api/v1/delivery/express/report-exception

(联调阶段可选)平台侧调试按钮(调用 Mock Server 控制面 API

  • 运行标准场景 -> POST /mock/v1/waybills/{tracking_no}/run-scenario
  • 触发推送 -> POST /mock/v1/waybills/{tracking_no}/push
  1. 展示规则 & 隐私
  • 所有时间使用 ISO8601含时区
  • 手机号必须脱敏(如 138****8000完整手机号仅在客服/运维界面显示并记录访问审计。
  • 证据 URL 应带鉴权或短期有效,前端需支持预览与下载。

4.1 同源数据,不同端展示颗粒度

  • 同一运单的轨迹事件(event_code/event_text/status_code/node_name/location)必须同源,保证事实与状态口径一致;不同端仅做“展示层过滤/脱敏”,不做口径改写。
  • 商家端B 端):只需展示大致进度(到达某地/中转/派送/签收/异常)与最新节点摘要;不展示配送员/快递员手机号等个人敏感信息。
  • 消费者端C 端):可展示更详细的节点文案;若提供“联系配送”能力,建议用按钮/虚拟号/中转号承载,而不是把第三方 event_text 中的手机号原文直接展示或通过消息推送透传。

4.2 event_text 使用建议(避免直接透传敏感信息)

  • event_text 属于第三方原文,可能包含手机号、网点内部信息等;建议前端展示使用“清洗后的文案”。
  • 最小实现:
    • 商家端优先展示 status_code + node_name/location 组合出的摘要;必要时展示清洗后的 event_text
    • 消费者端可展示清洗后的 event_text;仅在 OUT_FOR_DELIVERY 等末端节点按需提供脱敏联系方式。
  1. 安卓端适配要点
  • 缓存:将最近一次 status_history 缓存在本地(仅该用户的订单范围),离线可展示并提示“数据可能不是最新”。
  • 图片POD/证据图片支持大图预览与失败重试;弱网下优先加载文本节点。
  • 刷新:进入页面自动拉取;下拉刷新;显示 last_synced_at
  1. Web 端适配要点
  • 调试信息:raw_payload 默认折叠,仅客服/运维可展开查看。
  • 筛选搜索:按 status_code、时间范围、承运方 carrier 过滤;支持按 tracking_no 搜索。
  • 安全:避免在前端日志中打印 raw_payload 与敏感字段。
  1. 兼容性
  • 前端组件可接收 raw_payload(仅供客服/运维查看)并折叠显示。
  • 时间线组件需支持展开单条事件详情、证据大图预览与来源标注(承运方/聚合方)。

(以上为前端字段与契约建议,实际字段名可与后端协商最终确认)