12 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 | frontend | 房务订单列表产品维度改「常规订单 / 团期订单」两页签(取代 09-27 交接件的三页签口径) | admin | wx(GIT) | 前端优化 | not_required | not_required | verified | mmg | ce469f7830a50053e3070f379b05fb075e6cd9ef | v2.1 | 2026-09-28 | 本条取代 2026-09-27 交接件《房务订单列表「类型」改页签 + 「小蒙马」改「团期」文案 + 菜单改名后页面名同步》第二章的页签集合定义:页签数由三个(核心/定制/团期)改为两个(常规订单/团期订单),该章「去掉全部、默认 CORE」作废。该章其余要点(toolbar 左侧、@update:value 绑定、端点不变、?groupBatchId= 自动切团期、注释同步)全部继续有效。后端零改动:两个页签直接对应两个已上线的现成端点。前端已交付(ce469f78,与 27_frontend 房务件同一交付):两页签「常规订单/团期订单」,常规=all 走户级端点不带 productType(核心+定制合并),团期整团一行走 group-batches;orderTab 初值保持 all,切页签走 onOrderTabChange 重置状态桶;?groupBatchId= 自动切团期。 | 2026-09-28 | dev-v3 |
前端优化:房务订单列表产品维度改「常规订单 / 团期订单」两页签
⚠️ 关键变化
这是对 2026-09-27 交接件的口径修改,不是一个新需求。
2026-09-27 发出的 27_frontend_房务订单列表类型页签改造-小蒙马改团期全局文案-菜单改名同步-前端优化-管理后台.md
(下称「09-27 交接件」,frontend_status: pending,尚未实施)第二章要求把房务订单列表的「类型」由下拉改回页签,
并定为三个页签「核心 / 定制 / 团期」、去掉「全部」、默认 CORE。
wx 2026-09-28 把口径改成两个页签:
| 09-27 交接件第二章 | 本条(最新口径) | |
|---|---|---|
| 页签数 | 3 个 | 2 个 |
| 页签 | 核心 / 定制 / 团期 | 常规订单 / 团期订单 |
| 「全部」 | 去掉 | 保留,改名为「常规订单」 |
orderTab 初值 |
改成 ref('CORE') |
保持 ref('all') 不动 |
wx 原话两句:「房务也变成 tab 形式 也是 普通订单 团期订单 定制+核心就是普通订单」(2026-09-27 需求沟通)、 「也改成常规订单 团期订单」(2026-09-28,最终文案取这句,用「常规订单」不用「普通订单」)。
09-27 交接件第二章的其余要点全部继续有效(见下文「四、09-27 交接件中继续有效的要点」), 只有页签集合与初值这两处被本条取代。第三章(「小蒙马」→「团期」文案替换)、 第四章(菜单改名后页面名同步)完全不受影响,照原样执行。
一、背景
房务订单列表的产品维度在最近两天内被反复改过方向,这里按时间把事实列清,避免再次返工:
- 该位置原本是页签;
- 2026-09-27 当天被改成
n-select下拉(index.vue:34的注释自述「2026-09-27 由页签改为搜索条件下拉」); - 同日后端发出 09-27 交接件,按 wx 要求改回页签,定为三个(核心/定制/团期)——mmg 尚未实施;
- 2026-09-28 wx 把口径定为两个页签(常规订单 / 团期订单),即本条。
因为第 3 步还没动工,所以第 4 步不是二次返工,而是在同一次改造里换一个页签集合—— 直接按本条实施即可,不需要先做成三个再改成两个。
二、现状(ref gitea/v2.1 origin/v2.1,逐行核过)
文件:src/views/housekeeper/orders/index.vue
- 搜索区
:34-45:「类型」为n-select下拉,宽 120px,:value="orderTab"+@update:value="onOrderTabChange" - 状态变量
:365:const orderTab = ref('all') - 选项定义
:366-372:const orderTabOptions = [ { value: 'all', label: '全部' }, { value: 'CORE', label: '核心' }, { value: 'CUSTOM', label: '定制' }, { value: 'GROUP', label: '团期' }, ] - 团期判定
:388:const isGroupTab = computed(() => orderTab.value === 'GROUP') - 端点切换
:466:const fetcher = isGroupTab.value ? getHouseAllocationGroupBatches : getHouseAllocationHouseholds - 参数下推
:457:p.productType = orderTab.value,同行注释原文「GROUP 已被团期端点接管,户级端点拒收」 - 两套状态桶
:391-413:户级 7 个桶、团期 3 个桶,两套桶不同 - 两个表格组件:同目录
HouseholdTable.vue(户级)、GroupBatchTable.vue(整团一行),已经是分开的两个组件
三、改动要点
1. 页签集合:两个
<n-tabs
:value="orderTab"
type="line"
size="small"
class="product-tabs"
@update:value="onOrderTabChange"
>
<n-tab name="all">常规订单</n-tab>
<n-tab name="GROUP">团期订单</n-tab>
</n-tabs>
orderTab初值保持ref('all')(:365不动)。09-27 交接件说的「改成ref('CORE')」作废—— 「全部」这个取值不是被删掉,而是被改名成「常规订单」。orderTabOptions(:366-372)删除,改为两个n-tab。:456的orderTab.value !== 'all'这类判断保持原语义(all仍是合法且默认的取值), 09-27 交接件里「按『默认 CORE、恒有值』改」的那句同样作废。- 同文件的
scope、statusTab也有'all'取值,与本次无关,不要动。
2. 两个页签的取数(后端零改动,两个端点都已上线)
| 页签 | orderTab |
端点 | productType 传值 |
一行代表 |
|---|---|---|---|---|
| 常规订单 | all |
GET /v3/admin/order/house-allocation/households |
不传(或空串) | 一户 |
| 团期订单 | GROUP |
GET /v3/admin/order/house-allocation/group-batches |
不适用 | 一个团(整团一行) |
- 「常规订单」= 核心 + 定制合并,依据 wx 原话「定制+核心就是普通订单」。
不传
productType时户级端点不下推该条件,返回的就是核心 + 定制。 - 户级端点结构性地不接受团期:其入参
productType声明为@Pattern(regexp = "(CORE|CUSTOM)?")(后端HouseAllocationHouseholdPageReqVO.java:41, 错误提示原文「productType 只能是 CORE 或 CUSTOM」),传GROUP会被参数校验直接拒掉。 所以团期必须走group-batches,不能试图给households传GROUP。 - 现有的
:388isGroupTab与:466的fetcher三元切换逻辑原样保留即可,两个页签正好对应它已有的两个分支。 :457的p.productType = orderTab.value需要改:all时不要把字符串'all'传给后端(它不是合法取值), 按现有写法确认all分支是否已被:456的!== 'all'判断挡掉;若未挡掉,改成all时不带该参数。
3. 核心 / 定制细分怎么处理
wx 没有要求在「常规订单」里保留核心/定制的细分。默认按不细分实施。
如果页面上仍然需要区分,走搜索区的下拉,不要做成页签——后端 households 端点照旧接受
productType=CORE 与 productType=CUSTOM,契约不变,随时可加。
4. 🔴 切页签必须重置状态桶(两套桶不是同一套)
- 常规订单(户级)是 7 个状态桶,团期订单是 3 个状态桶(
index.vue:391-413),两套桶的取值与数量都不同。 - 切换页签时必须重置
statusTab,否则会把上一个页签的状态值带到新页签上,查出空列表或报参数错。 - 现有
onOrderTabChange已经有这段重置逻辑,改造时不要丢掉它——这也是绑定必须用@update:value而不能用v-model:value的原因(见下条)。 - ⚠️ 这一点与派单看板的两个页签相反:派单看板的「普通订单 / 团期订单」两个页签共用同一套派车状态桶, 切页签不需要重置状态。两个页面看起来是同一种改造,这里的行为不一样,别互相照抄。
四、09-27 交接件中继续有效的要点
以下来自 09-27 交接件第二章「改动要点」,本条不推翻,照原样执行:
- 样式与位置:页签置于 ProTable toolbar 左侧,参考
src/views/finance/settlement/index.vue:58-66, 结构<n-flex justify="space-between" class="table-summary">,页签用<n-tabs type="line" size="small" class="product-tabs">, 样式.product-tabs { width: 280px; }(两个页签可按实际宽度调小)。 - 绑定方式:
:value="orderTab"+@update:value="onOrderTabChange"。 不能照抄核单列表的v-model:value,否则切换会绕过onOrderTabChange,状态桶不重置。 - 通知链接:
?groupBatchId=仍自动切到「团期订单」页签并精确定位;?orderId=行为不变。 - 注释同步:
:34-35、:297-308、:366的注释里关于「下拉 / 全部」的描述同步改成「页签 / 常规订单·团期订单」。
第三章(「小蒙马」→「团期」全局文案替换,5 个文件 8 处)与第四章(菜单改名后页面名同步)与本条无关,照原样执行。
五、验证检查清单
- 页面默认落在「常规订单」页签,列表走
households且不带productType参数(Network 里确认) - 「常规订单」列表里同时能看到核心与定制的订单 (2026-09-28 测试环境读数为核心 104 条、定制 1 条,仅供参考——这是夹具的当时状态、不是契约; 定制只有 1 条,若它被别的验收清掉,改用「不带 productType 的结果条数 ≥ 带 CORE 的条数」来判)
- 切到「团期订单」,请求改为
group-batches,一个团一行,用GroupBatchTable.vue渲染 - 切换页签时状态桶随之切换(7 桶 ↔ 3 桶),且状态筛选被重置,不带上一个页签的状态值
- 任何情况下都没有把
productType=all或productType=GROUP发给households(前者不是合法取值,后者会被@Pattern拒绝并返回参数校验错误) - 带
?groupBatchId=xxx打开页面,自动切到「团期订单」并定位到该团 - 页签绑定用的是
@update:value,不是v-model:value
六、不影响范围
- 后端零改动:两个端点都已上线,参数、响应、错误码一律不变。本条不需要等任何后端部署。
HouseholdTable.vue/GroupBatchTable.vue两个表格组件的内部实现不变,本条只改外层的页签与取数分支选择。- 房务的其他筛选维度(
scope、statusTab、酒店、日期等)不变。 - 小程序端不涉及。
七、相关工单与文档
- 本条对应 wx 2026-09-27 / 2026-09-28 两次口径确认,属于
wx/HL#8464(派单看板与房务页签化)的前端部分; #8464 的后端改动(派单看板加「普通/团期」过滤、删除「团期配车」菜单)另有交接件,与本条互不依赖。 - 被本条部分取代:
changelogs-v2/2026-09/27_frontend_房务订单列表类型页签改造-小蒙马改团期全局文案-菜单改名同步-前端优化-管理后台.md(仅第二章的页签集合与初值两处;其余章节与要点继续有效) - 后端端点入参约束出处:
hl-order-service-v3/src/main/java/com/hulalv/house/controller/admin/vo/allocation/HouseAllocationHouseholdPageReqVO.java:41
联系人
后端:wx(管理者会话)|前端:mmg