6.9 KiB
schema, ticket, title, consumer, author, change_type, backend_status, gateway_status, frontend_status, frontend_owner, frontend_ref, target_release, verified_at, status_note, updated_at, base
| schema | ticket | title | consumer | author | change_type | backend_status | gateway_status | frontend_status | frontend_owner | frontend_ref | target_release | verified_at | status_note | updated_at | base |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| hl-changelog/v2 | 8446 | 订单列表「订单类型」下拉改为「核心 / 定制 / 团期」页签 | admin | wx(GIT) | 前端优化 | deployed | verified | verified | mmg | ab3b6be1268721e56ed809da9329b367d8b890e9 | v2.1 | 2026-09-28 | 后端查询参数 productType 已部署测试服并实测(#8446,PR #8454)。前端:订单列表「订单类型」下拉改为「核心 / 定制 / 团期」页签,默认核心;列表与状态计数请求传 productType,不再传 orderKind。与 27_8446 接口件同一交付(ab3b6be1):页签落 ProTable 工具条,:value+@update:value 触发列表+计数同刷(不用 v-model);默认核心页签。 | 2026-09-27 | dev-v3 |
前端优化:订单列表「订单类型」下拉改为「核心 / 定制 / 团期」页签
⚠️ 关键变化
- 订单管理v2 › 订单列表:删除搜索区「订单类型」下拉(散客 / 团单 / 全部,默认散客),改为表格工具栏左侧的页签「核心 / 定制 / 团期」,默认「核心」。样式同「财务管理 › 核单列表」的「常规产品 / 团期产品」页签。
- 列表请求与状态计数请求都传当前页签的
productType=CORE|CUSTOM|GROUP,不再传orderKind。- 限定:如果请求里还带着
orderKind=NORMAL,后端会与productType取 AND,「团期」页签恒为空(团期订单都挂了团期)。
- 限定:如果请求里还带着
一、背景
wx 2026-09-27:「把订单列表的页面的类型也换成tab 也是 核心/定制/团期」。页签按订单产品类型切分,与同日房务管家订单列表的页签口径一致。原「散客 / 团单」按「订单有没有挂团期」切分,和产品类型不是一回事。
后端新增查询参数 productType(#8446,PR #8454),契约详见同日接口 changelog 27_8446_订单列表按产品类型筛选-修改接口-管理后台.md。
二、现状(hl-ui origin/v2.1 @ 1c555f5,逐行核过)
文件 src/views/order-v2/list/index.vue:
| 位置 | 现状 |
|---|---|
:55-64 |
搜索区「订单类型」n-select:v-model:value="searchForm.orderKind"、:options="orderKindOptions"、@update:value="handleSearch" |
:139 |
import { …, ORDER_KIND_OPTIONS } from '@/api/orderV2' |
:234-235 |
const orderKindOptions = ORDER_KIND_OPTIONS 及 #7635 注释 |
:236-255 |
adaptedApi.getPage:searchForm 除日期 / 定制师 / 标签外的字段经 ...rest 原样透传给 getOrderPage |
:279-280 |
useListPage 的 searchFields:{ key: 'orderKind', default: 'NORMAL' } |
:306-308、:322-323 |
fetchGroupCounts 手工拼参数:if (searchForm.orderKind) params.orderKind = searchForm.orderKind,以及描述入参的注释 |
:344-347 |
handleSearch():doSearch() 刷列表 + fetchGroupCounts() 刷状态计数 |
:103-120 |
ProTable #toolbar:左「共 N 条」,右「新增订单」按钮 |
src/api/orderV2.js::25-33 定义 ORDER_KIND / ORDER_KIND_OPTIONS;getOrderPage(:114)与 getOrderStatusGroupCounts(:137)的 jsdoc 列了 orderKind(:108、:133)。
三、改动要点
-
删除下拉:删掉
index.vue:55-64整个「订单类型」form-item、:234-235的orderKindOptions、:139的ORDER_KIND_OPTIONSimport。 -
搜索字段:
:279-280的{ key: 'orderKind', default: 'NORMAL' }改为{ key: 'productType', default: 'CORE' }。列表请求经...rest自动带上productType,adaptedApi.getPage不用改。 -
状态计数:
:322-323改为if (searchForm.productType) params.productType = searchForm.productType,:306-308注释里的orderKind同步改成productType。 -
页签:放在 ProTable
#toolbar左侧,写法照核单列表src/views/finance/settlement/index.vue:52-66:外层<n-flex justify="space-between" align="center" class="table-summary">,左边页签,右边放现有的「共 N 条」和「新增订单」按钮。样式照该文件:213-219:.table-summary { width: 100%; }、.product-tabs { width: 280px; }。<n-tabs :value="searchForm.productType" type="line" size="small" class="product-tabs" @update:value="onProductTypeChange" > <n-tab name="CORE">核心</n-tab> <n-tab name="CUSTOM">定制</n-tab> <n-tab name="GROUP">团期</n-tab> </n-tabs>// 切页签 = 原下拉的 @update:value="handleSearch":列表与状态计数一起刷新 function onProductTypeChange(v) { searchForm.productType = v handleSearch() }核单列表用的是
v-model:value,切换时不发请求,这里不能照抄。 -
重置:「重置」走
doReset,按searchFields默认值把页签恢复为「核心」,与原下拉重置回「散客」同构,不用额外处理。 -
src/api/orderV2.js:getOrderPage与getOrderStatusGroupCounts的 jsdoc 补productType。ORDER_KIND/ORDER_KIND_OPTIONS列表页不再使用;如果删除,同步删src/api/__tests__/orderV2.spec.js:444-448的断言,保留也不影响功能。
四、调用时会撞上的限定
productType取CORE/CUSTOM/GROUP。后端还接受ROUTE(自驾路书),本次不设页签。非法值返回 HTTP 200 +code=100001。- 不传
orderKind时,后端不再按「是否挂团期」过滤,只按产品类型分。状态计数「全部」的取消口径与不传productType时一致。 - 「团期」关键词输入框(
groupBatchKeyword,index.vue:67-76):填了关键词时,后端只查挂了命中团期的订单,再与productType取 AND。在「核心 / 定制」页签下填团期关键词,结果基本为空(测试服当前没有「核心产品却挂了团期」的订单)。建议该输入框只在「团期」页签显示,由前端决定。 - 响应结构不变:列表后端返回
{ records, total, page, pageSize },src/utils/request.js:445拦截器已映射为list,前端照旧读res.list;状态计数[{ group, label, orderCount }]固定 6 项。
五、验证清单(前端改完自查)
- 订单列表不再有「订单类型」下拉,工具栏左侧出现「核心 / 定制 / 团期」页签,默认「核心」
- 切换页签时,列表与顶部状态分组计数一起刷新;两个请求的 query 都带
productType,不带orderKind - 「团期」页签有数据;「核心」页签不再混入团期订单
- 点「重置」回到「核心」
- 若删了
ORDER_KIND_OPTIONS,orderV2.spec.js断言同步删除,单测绿
六、不影响范围
- 订单详情、出团管理、房务管家订单列表不涉及
- 小程序、H5 不涉及