前端对接仓库配货 / 打包
质检配货页分页
配货列表改分页 + 早班/待补/子货位标记与筛选;含 need/prepared 语义变化与分页破坏性变更说明
Markdown 原文(给 AI 用):https://doc.xfun.fun/distribution-page-api.md
配货列表接口改为轻表分页(全部分区由 7-8s 降至毫秒级),并新增早班货位、待补货位标记与对应筛选。本页覆盖接口的分页方式、新增字段与渲染规则。
供应商端 · 质检配货页
POST/zone/info/new配货货位列表(分页)
状态:已上测试环境(supplier/test)。有 2 处破坏性变更:接口改为分页、need/ prepared 语义变化,见「破坏性变更」。
破坏性变更 —— 先读这两条
① 接口改为分页,不再一次返回全部货位
请求需传 pageNo(从 1 开始)、pageSize(默认 20);响应新增 total(当前筛选条件下的货位总数)。shelfSnList 现在只返回 当前页,翻页请自行按 total 计算页数。
不传 pageNo/pageSize 时后端按第 1 页、每页 20 条兜底 —— 老前端不改会只看到前 20 个货位,务必接入分页。
② need / prepared 语义由「扎数」改为「货位数」
need = 当前筛选条件下 可配货货位数(status=0),prepared = 配货完成货位数(status=1)。用于两个 tab 的角标计数。若原来按扎数展示汇总,需改按货位数。
货位卡片视觉状态
列表 一行一个货位号(不再拆子货位)。同一张卡片可叠加多种状态,配色与打包页统一,前端直接取用。
| 状态 | 驱动字段 | 视觉 |
|---|---|---|
| 普通货位 | restockStatus 为 0 / 2 | 默认卡片 |
| 待补 | restockStatus === 1 | 卡片正上方居中「待补」橙色徽标 |
| 早班 | earlyShiftFlag === true | 整卡红底 |
| 有子货位 | hasSubShelf === 1 | 右上角「子」徽标 |
| 叠加 | 以上任意组合 | 早班红底 + 待补 + 子 可同时出现 |
颜色值(与打包页一致,请勿改)
待补徽标:底色 #FF6A00,字体 #FFFFFF,卡片正上方居中,restockStatus === 1 时显示。
早班背景:整卡背景 #FF000F 透明度 70%(rgba(255,0,15,.7)),earlyShiftFlag === true 时染红。
子货位徽标:hasSubShelf === 1 时右上角展示「子」标;点货位进详情看子货位(见「货位级列表 + 子货位详情」)。
响应结构(PrepareShelfSnVo)
顶层计数 + 当前页货位列表。
| 字段 | 类型 | 说明 |
|---|---|---|
total 新增 | long | 当前筛选条件下货位总数,用于分页。 |
need 语义变更 | int | 可配货货位数(status=0)。原为扎数。 |
prepared 语义变更 | int | 配货完成货位数(status=1)。原为扎数。 |
shelfSnList | array | 当前页货位列表,元素为 ShelfSnStatus(下表)。 |
列表元素 ShelfSnStatus(一行一货位):
| 字段 | 类型 | 说明 |
|---|---|---|
shelfSn | int | 货位号,卡片主标题。 |
status | int | 配货完成状态:0 可配货 · 1 配货完成(货位级:所有子货位都配完才为 1)。 |
restockStatus 新增 | int | 待补状态:0 无待补 · 1 存在待补货(→「待补」徽标)· 2 补货已完成。徽标仅 === 1 显示。 |
earlyShiftFlag 新增 | boolean | 是否早班。后端已按口径算好,true 直接染红,前端无需自行判断时间(口径见「早班口径」)。 |
hasSubShelf 新增 | int | 是否有子货位:0 无 · 1 有(→「子」徽标)。 |
subShelfSn | string | 列表层 恒为空串 ""(列表是货位级)。子货位明细走详情接口,见「货位级列表 + 子货位详情」。 |
total / prepared / notRestock / progress | int / decimal | 该货位进度:应配 / 已配 / 退缺 / 进度(0~1,封顶 1)。跨子货位汇总。 |
zone / zoneShelf / segmentName | string | 分区 / 区-货架 / 分段。既有字段。 |
deliveryType | int | 配送方式 1 物流 · 2 自提。既有字段。 |
limitDistribution / wareType / wareId | int | 限制配货标识 / 仓库类型 / 仓库 id。既有字段。 |
请求参数(ZoneInfoQo)
| 参数 | 类型 | 说明 |
|---|---|---|
date 必填 | string | 场次日期,如 2026-08-17。必填。 |
type | int | tab:0 可配货 · 1 配货完成 · -1 全部。默认 0。 |
pageNo 新增 | int | 页码,从 1 开始。默认 1。 |
pageSize 新增 | int | 每页条数。默认 20。 |
onlyRestock 新增 | boolean | 只看待补。true 仅展示 restockStatus=1 的货位;null/ false 不限。 |
onlyEarlyShift 新增 | boolean | 只看早班。true 仅展示早班货位;null/ false 不限。 |
deliveryType | int | 配送方式筛选:1 物流 · 2 自提。既有参数(自提 tab/筛选)。 |
zone / zoneShelf | string | 分区 / 货架号筛选。既有参数。全部分区即不传 zone。 |
segmentNameList | array | 分段筛选,传分段时必须同时传 zone。既有参数。 |
cityFlag | int | 是否城配区。既有参数。 |
货位级列表 + 子货位详情
列表 一行一个货位号;一个货位有多个子货位时,只出一张卡片并打「子」标(hasSubShelf === 1)。点货位进详情看子货位,走既有详情接口:
POST/subShelfSn/info入参货位号 shelfSn,返回该货位的子货位明细
完成状态是 货位级:一个货位只要还有任意子货位没配完,整货位就算未完成(留在「可配货」),全部子货位配完才整体进「配货完成」。
早班口径 —— 后端已算好
前端直接用 earlyShiftFlag,不用自己算时间
后端口径:**deliveryTime >= 22:00 或 deliveryTime <= 01:00(跨零点)**即早班。此口径与打包页一致,且已在服务端算入 earlyShiftFlag,前端 直接取布尔值染红即可。
「只看早班」 onlyEarlyShift 用的是同一口径,与卡片染红天然一致。
// 渲染时(字段均由后端返回,前端不再自行判断时间):
// 早班背景 -> row.earlyShiftFlag === true 背景 rgba(255,0,15,.7)
// 待补徽标 -> row.restockStatus === 1 底 #FF6A00 / 字 #FFFFFF
// 子货位标 -> row.hasSubShelf === 1 右上角「子」Tab 与筛选映射
| Tab | type | 只看待补 | 只看早班 | 自提 |
|---|---|---|---|---|
| 可配货 | 0 | onlyRestock | onlyEarlyShift | deliveryType=2 |
| 配货完成 | 1 | onlyRestock | onlyEarlyShift | deliveryType=2 |
筛选项可自由组合,后端 AND 叠加,且两个 tab 均支持。「配货完成」tab 勾「只看待补」返回的是 已配货完成但仍有待补记录的货位(待补与完成是两个独立维度)。
接口 POST /zone/info/new · 供应商端 · 测试分支 supplier/test。字段口径以后端返回为准;earlyShiftFlag/ restockStatus/ hasSubShelf 均已由服务端算好,前端直接取用。