From 1c53bcd22676ed181c2e2dce8aeafd5401e35a23 Mon Sep 17 00:00:00 2001 From: zlwu <704541015@qq.com> Date: Wed, 14 Oct 2026 10:49:03 +0800 Subject: [PATCH] docs: design JD-style status filter for mobile presign list Remove the redundant reset button and adopt a left-aligned lightweight dropdown under the search bar. Co-authored-by: Cursor --- ...14-presign-list-jd-status-filter-design.md | 89 +++++++++++++++++++ 1 file changed, 89 insertions(+) create mode 100644 docs/superpowers/specs/2026-10-14-presign-list-jd-status-filter-design.md diff --git a/docs/superpowers/specs/2026-10-14-presign-list-jd-status-filter-design.md b/docs/superpowers/specs/2026-10-14-presign-list-jd-status-filter-design.md new file mode 100644 index 00000000..02a245e5 --- /dev/null +++ b/docs/superpowers/specs/2026-10-14-presign-list-jd-status-filter-design.md @@ -0,0 +1,89 @@ +# 预签约订单列表:京东式状态筛选 — 设计说明 + +**日期:** 2026-10-14 +**状态:** 已确认(方案 B) +**范围:** `mobile-oa-h5` 预签约订单列表页;`mobile-h5` 经 webview 打开同一页,无需单独改 UI + +## 1. 背景与目标 + +市场专员 / 地区经理的【预签约订单】列表顶部为: + +1. 圆角搜索框(母亲姓名 / 协议编号) +2. 其下筛选行:`van-dropdown-menu`「全部状态」+ 「重置」按钮并排 + +「重置」与把状态改回「全部状态」功能重叠,视觉上也像两个控件,不符合常见电商 App(如京东)「搜索框下一条轻量下拉条」的习惯。 + +**目标:** + +- 去掉「重置」按钮 +- 将状态筛选改为京东式左侧轻量下拉条(文字 + 小三角,点开浮层选状态) +- 筛选语义与接口参数不变 + +## 2. 决策摘要 + +| 项 | 决策 | +|----|------| +| 视觉方案 | **B**:搜索框下方左侧轻量下拉条(非通栏居中) | +| 重置按钮 | **删除**;选「全部状态」即清空状态筛选 | +| 组件 | 继续使用 Vant `van-dropdown-menu` / `van-dropdown-item`,主要改布局样式 | +| 状态选项 | 不变:全部状态 / 草稿 / 进行中 / 已转正式 / 已作废 | +| 选中反馈 | 非「全部状态」时标题文案变为对应状态,可用品牌绿 `#0a9f6d` 高亮(Vant `active-color`) | +| 关键词 | 搜索框仍负责 keyword;清空搜索走 search 自带 clear,不设整页重置 | +| 范围 | 仅预签约专用列表;其他市场模块 `MarketModuleList` + `MarketFilterSheet` 不动 | +| 后端 | 无变更 | + +## 3. 界面结构 + +``` +┌─────────────────────────────┐ +│ 预签约订单 │ +├─────────────────────────────┤ +│ ⌕ 搜索母亲姓名 / 协议编号 │ +│ 全部状态 ▾ │ ← 轻量下拉条(左对齐) +├─────────────────────────────┤ +│ 列表卡片… │ +└─────────────────────────────┘ +``` + +点「全部状态 ▾」展开选项浮层;选中后收起并触发列表 `reload`。 + +## 4. 实现要点 + +### 4.1 `PresignOrderList.vue` + +- 删除筛选行中的「重置」`van-button` +- 删除仅服务该按钮的 `resetFilters`(清空 keyword + orderStatus 并 reload) +- 保留 `orderStatus` / `orderStatusOptions` / `@change="reload"` +- 筛选容器可保留或简化为单一下拉包装(类名可继续用 `__filter-row`,语义改为单列筛选条) + +### 4.2 `market.css` + +调整 `.presign-order-page__filter-row`: + +- 去掉 `grid-template-columns: minmax(0, 1fr) auto` 与按钮相关规则 +- 下拉菜单贴左、高度约 40–44px,去掉「带边框的整块按钮」观感 +- 覆盖 Vant dropdown title 样式:字号约 13–14px、左对齐、小三角;背景透明、无额外描边盒 +- 品牌色沿用 `--presign-primary: #0a9f6d` + +### 4.3 测试 + +`mobile-oa-h5/src/market/mobile-parity-ui.test.js` 中用例 +`dedicated presign list wires orderStatus filtering and reset on mobile`: + +- 去掉对 `resetFilters` 的断言 +- 保留 `orderStatus` / `orderStatusOptions` / `buildPresignListParams` 断言 +- 可增加:源码中不出现「重置」按钮文案(或不再匹配 `resetFilters`) + +## 5. 非目标 + +- 不改搜索占位符、列表卡片、FAB、分页逻辑 +- 不改后端列表 API 与状态枚举 +- 不把该样式推广到协议/运费等其他市场列表(除非另开需求) +- 不新增独立「清空全部条件」入口 + +## 6. 验收 + +1. 预签约列表搜索框下仅有状态轻量下拉,无「重置」按钮 +2. 可按状态筛选并刷新列表;选「全部状态」后恢复全部 +3. 视觉接近 demo 方案 B(左对齐文字 + 三角) +4. 相关 `mobile-parity-ui` 测试通过