← 交付目录查看原型

1.2 · CR-20260823-001

Shopee Listing 管理一期 · 前端实施契约

产品 PRD 版本:1.2
前端实施契约版本:2.0
来源变更:CR-20260823-001
确认依据:既有 Listing 一期功能 PRD;Freddy 已要求使用新的正式 Ant Design Pro 设计流程产出候选,未完成视觉验收。

来源与范围

权威输入是同目录产品 PRD、erp-ui-design-system.md、ant-design-pro-baseline.md 与正式 ui-library/react/business-filters.tsx。实现范围为 P-001 全球商品列表、P-002 站点 Listing 列表、P-003 Listing 编辑页,以及 P-002 快速价格/库存/Model Modal。

产品需求不因本次 UI 重构缩减。原型只使用本地数据,所有平台写入均为模拟反馈。

页面清单

页面 ID页面对象用户任务
P-001全球商品GlobalProduct查询商品并核对发布到哪些店铺/站点
P-002站点商品SiteListing定位 Listing,快速维护价格或库存
P-003编辑 ListingSiteListing + ListingModel完成全量字段修改并分域提交

产品功能覆盖矩阵

功能 ID页面/表面PRD 来源已确认产品功能实现目标覆盖状态排除变更
F-001P-001全球商品与发布关系Global Item 独立页面、查询和发布映射ProTable、映射 Modal、进入目标 Listing实现—
F-002P-002站点 Listing 列表对象独立、查询、状态 Tab、规格表达ProTable Search、Tabs、Model 明细实现—
F-003P-002/P-003三层价格原价/折扣价可编辑,当前售价只读分组列、价格 Modal、规格编辑表实现—
F-004P-002/P-003双库存与仓库Shopee/ERP 并列,仓库条件展示分组列、库存 Modal、规格编辑表实现—
F-005P-003Listing 编辑基本信息和类目属性长表单前两分区与校验实现—
F-006P-003Listing 编辑规格价格库存与批量设置勾选、禁用、批量 Modal、受影响数量实现—
F-007P-003Listing 编辑商品图、属性图和详细描述picture-card、属性图 Modal、描述编辑器实现—
F-008P-003Listing 编辑左长表单、右摘要/锚点、固定操作Grid、Affix、FooterToolbar实现—
F-009P-003提交与反馈内容/原价/折扣/库存分域确认确认 Modal、提交结果实现—
F-010P-001/P-002/P-003权限、状态与异常状态、只读、失败、部分成功Tag/Badge/Alert/禁用/反馈实现—

页面设计决策

P-001 全球商品

  • 产品范式:ERP 运营管理
  • 页面基线:Ant Design Pro List Page(ProLayout > PageContainer > ProTable)
  • 页面母版:ListPage
  • 页面目标:定位全球商品并核对它发布到了哪些店铺和站点
  • 主用户任务:按 Global Item、SPU、SKU 查询并打开发布关系
  • 信息优先级:一级为全球商品身份与发布覆盖;二级为规格结构和 SPU;三级为更新时间
  • 主操作:查看发布关系
  • 密度策略:compact
  • 视觉强调:data-first
  • 视觉强调对象:全球商品身份、发布站点数量与发布状态
  • 动效策略:minimal
  • 动效说明:只保留筛选、映射 Modal 与页面跳转反馈
  • 推荐组件:PageContainer、ProTable、Modal、Table、Badge、Image
  • 常驻信息:页面标题、查询、全球商品表、发布数量和更新时间
  • 渐进呈现:发布站点明细只在“发布关系” Modal 中出现;进入具体 Listing 后再展示站点字段
  • 页面结构预算:PageContainer + 一个 ProTable;映射为一层 Modal,不增加摘要卡或工作台
  • 禁止冗余:不重复页面标题;不与站点 Listing 共用表;不加无来源 KPI、批量写入或营销卡片
  • 必须避免:把 Global Item 当成站点 Listing、在首屏展开全部 Mapping

P-002 站点商品

  • 产品范式:ERP 运营管理
  • 页面基线:Ant Design Pro List Page(ProLayout > PageContainer > Tabs > ProTable)
  • 页面母版:ListPage
  • 页面目标:快速定位站点 Listing,并完成规格级价格或库存的高频维护
  • 主用户任务:按店铺、站点、SKU/SPU、规格和更新时间筛选,通过状态 Tab 聚焦结果并打开维护 Modal
  • 信息优先级:一级为 Listing 身份、状态、当前售价;二级为原价/折扣价、Shopee/ERP 库存;三级为规格结构与更新时间
  • 主操作:行级快速维护(改价或改库存);无页面级主按钮
  • 密度策略:compact
  • 视觉强调:decision-first
  • 视觉强调对象:当前售价、售罄/违规状态、库存差异和行级维护入口
  • 动效策略:minimal
  • 动效说明:Tabs、ProTable 查询与中央 Modal 使用组件默认反馈,不自行添加装饰动效
  • 推荐组件:PageContainer、Tabs、ProTable、TreeSelect、StandardDateRangeFilter、Modal、InputNumber、Dropdown、Tooltip
  • 常驻信息:页面标题、状态 Tab、常用查询、商品身份、状态、三层价格、双库存、更新时间与两项高频操作
  • 渐进呈现:多属性规格进入 Model 明细 Modal;价格和库存进入各自的中央 Modal;完整编辑收入“更多”;价格语义仅在 Tooltip 显示
  • 页面结构预算:PageContainer + Tabs + 一个 ProTable;查询与结果复用同一个 ProTable 表面,不手写 Query Card 或再嵌套 Card
  • 禁止冗余:禁止重复“站点商品/站点 Listing”标题;禁止把状态再放进查询表单;禁止三个价格或两个库存压成彩色堆叠标签;禁止添加汇总 KPI、任务条或无来源说明
  • 必须避免:隐藏当前售价、展示折扣活动对象、Drawer 快速编辑、页面级横向滚动

P-003 编辑 Listing

  • 产品范式:ERP 复杂对象编辑
  • 页面基线:Ant Design Pro Long Form Page(ProLayout > PageContainer > Form + Card sections + Affix + FooterToolbar)
  • 页面母版:LongFormPage
  • 页面目标:在稳定长表单中完成站点 Listing 的内容、规格、图片、包裹物流和描述修改
  • 主用户任务:逐区编辑并验证规格价格库存,最后提交一次分域修改
  • 信息优先级:一级为必填内容、规格价格库存和校验错误;二级为图片、属性和包裹字段;三级为只读平台身份与辅助说明
  • 主操作:提交修改
  • 密度策略:standard
  • 视觉强调:form-first
  • 视觉强调对象:当前编辑分区、必填校验、三层价格和唯一提交按钮
  • 动效策略:minimal
  • 动效说明:Anchor、Modal 与 FooterToolbar 只使用官方默认交互
  • 推荐组件:PageContainer、Form、Card、Table、Upload、Affix、Anchor、FooterToolbar、Modal、Alert
  • 常驻信息:左侧六个业务分区、右侧对象摘要和编辑锚点、底部取消/提交操作
  • 渐进呈现:批量设置、属性图绑定和提交确认使用 Modal;包裹字段核验说明使用一个 Alert;当前售价语义使用 Tooltip
  • 页面结构预算:PageContainer + 一张编辑主表单;六张 Card 只对应 PRD 的六个业务分区,右侧为一个独立摘要/锚点 Card,底部只用 FooterToolbar
  • 禁止冗余:禁止短描述、重复保存按钮、嵌套 Card、固定定位耦合页面壳、无来源的营销/任务模块
  • 必须避免:让当前售价可编辑、把包裹字段复制到 Model 行、整页 Drawer 或页面级横向溢出

页面-区域-组件映射

页面区域组件要点
P-001查询和结果ProTableGlobal Item、SPU、SKU、发布状态;发布数量打开 Mapping
P-001发布关系Modal + Table店铺、站点、Item ID、状态、进入 Listing
P-002查询和结果ProTable Search + ProTable查询包含 StandardDateRangeFilter;价格/库存按分组列横向扫描
P-002状态过滤Tabs全部、在线、已售完、审核中、未上架、违规、疑似删除及数量
P-002快速维护centered Modal + Table单规格 560px,多规格 960px;当前售价只读
P-003编辑主区Form + 六张业务 Card每张 Card 对应一个 PRD 分区,非装饰嵌套
P-003摘要与导航Affix + Card + Anchor对象身份、当前售价和区块锚点
P-003操作栏FooterToolbar取消与唯一主按钮“提交修改”

普通控件契约

控件 ID页面组件行为
C-001P-001/P-002Input.Search / ProTable Search回车查询、清空可恢复全部结果
C-002P-002StoreSelector / TreeSelect复用 getStoreSelectorFieldProps,多选、搜索、清空
C-003P-002Tabs只过滤平台状态,数量跟当前查询结果同步
C-004P-002StandardDateRangeFilter今天、昨天、近 7/30 天、本月、上月与自定义范围;无对比模式
C-005P-003Input / Cascader / Select必填校验;类目变更需二次确认(候选保留结构)
C-006P-003InputNumber原价/折扣价非负,目标库存为非负整数
C-007P-003Input.TextArea只维护详细描述,不出现短描述

复杂控件契约

X-001 三层价格与双库存规格表

原价、折扣价可编辑;当前售价只读并说明为平台生效价格。Shopee 库存为主值,ERP 库存为参考;ERP 未映射显示“未匹配”。勾选 Model 后才可批量设置;确认前说明受影响数量。

X-002 快速维护 Modal

使用 centered 且 maskClosable=false。价格 Modal 包含规格、SKU、原价、折扣价、当前售价;库存 Modal 包含规格、SKU、Shopee/ERP 库存、条件仓库和目标库存。多规格时表体内部滚动,禁止弹窗整体挤出视口。

X-003 商品图片

Upload 使用 listType="picture-card" 与 beforeUpload={() => false}。属性图的“增加”只打开已添加商品图片的选择 Modal,确认后绑定属性值;不上传外部文件。

表格与数据展示契约

P-002 使用两级表头:商品信息、价格信息、库存信息、更新时间、操作。价格与库存单独成列并右对齐,当前售价使用主文字,原价/折扣价使用常规文字;不把它们压成同一单元格的标签堆。操作列固定在容器右侧:改价、改库存常驻,编辑 Listing 进入“更多”。

表格在 1280px/1440px 视口内无页面级横向溢出;超出内容宽度时只在 ProTable 容器内滚动,固定操作列保持可见。

状态与权限矩阵

状态/权限查看快速修改完整编辑提交
查看权限是否只读否
编辑权限是是是是
审核中/违规且平台禁写是禁用并说明禁用受限字段阻断受限领域
接口读取失败错误态否否否
部分提交成功刷新成功域失败域可重试保留失败输入显示分域结果

交互与反馈

  1. P-001 发布关系 Modal 可进入目标站点 Listing。
  2. P-002 的状态 Tab、店铺树、日期快捷范围与查询可真实改变结果;快速改价/库存确认后更新本地数据并 Toast。
  3. P-002 的多属性入口打开 Model 明细 Modal;完整编辑进入 P-003。
  4. P-003 的 Anchor 定位区块;无选择时批量按钮禁用;属性图从图片池选择;提交前确认、完成后展示结果。
  5. 取消编辑且存在未提交修改时二次确认返回。

文案

  • 页面:全球商品、站点商品、编辑 Listing。
  • 操作:查看发布关系、改价、改库存、编辑 Listing、取消、提交修改、确认修改。
  • 字段:原价、折扣价、当前售价、Shopee 库存、ERP 可用库存、更新时间。
  • 禁止:店铺折扣活动、折扣商品、短描述、保存并刊登。

视觉契约

  • 继承 Ant Design 6.5 默认 Token、4px 间距和三层表面;只有根 ConfigProvider,不在页面内二次覆写 Table/Card Token。
  • P-001/P-002 采用 size="small" 的 Pro 列表密度,依靠 ProTable 查询和标准表格行高,而不通过魔法数压扁控件。
  • P-002 的 Tabs 是唯一状态切换面;查询、表格、分页由同一 ProTable 承载。
  • P-003 六张 Card 是产品分区,不再额外 Card 包 Card;右侧吸顶采用 Affix,底部操作采用 FooterToolbar,不写死与侧栏耦合的位置。
  • 状态使用 Tag/Badge 语义色,主色只用于当前 Tab、焦点和唯一主操作;不添加渐变、彩色 KPI、装饰插画或整列品牌色底。

来源追踪

来源落点
既有 Listing PRDP-001–P-003、F-001–F-010 的对象、字段、规则和验收范围
CR-20260823-001将漏实现的更新时间标准范围筛选回写到 P-002
Ant Design Pro 基线ProLayout、PageContainer、ProTable、FooterToolbar 与表面层级
business-filters.tsx店铺 TreeSelect 与不含对比模式的日期快捷项
UI 设计系统页面计划、常驻/渐进呈现、结构预算和反冗余约束

前端验收清单

  • [ ] P-001/P-002 是独立页面与独立对象。
  • [ ] P-002 的店铺、SKU、SPU、站点、规格、更新时间范围与状态 Tab 都能真实操作。
  • [ ] 日期范围具备今天、昨天、近 7 天、近 30 天、本月、上月快捷项,且没有对比模式。
  • [ ] 价格、库存以分组列横向扫描;当前售价只读;操作列固定。
  • [ ] 快速价格/库存和多属性 Model Modal 可操作。
  • [ ] P-003 六分区、右侧 Affix、FooterToolbar、规格批量、属性图绑定和分域提交可操作。
  • [ ] 没有重复标题、重复摘要、无理由 Card 嵌套、无来源 Tab/KPI 或历史静态依赖。
  • [ ] 1280×800、1440×900 无页面级横向溢出或遮挡。
  • [ ] TypeScript、生产构建、antd lint、prototype:guard、change:sync 通过。

待决策

折扣域生产活动策略、实时类目元数据、平台错误码和包裹字段能力等待后端联调。候选只验证页面结构、交互语义和本地数据反馈,不承诺生产写入。