文件
hl-api-changelog/changelogs-v2/2026-09/27_frontend_房务订单列表类型页签改造-小蒙马改团期全局文案-菜单改名同步-前端优化-管理后台.md
T

210 行
12 KiB
Markdown
原始文件 Blame 文件历史

此文件含有模棱两可的 Unicode 字符
此文件含有可能会与其他字符混淆的 Unicode 字符。 如果您是想特意这样的,可以安全地忽略该警告。 使用 Escape 按钮显示他们。
---
schema: "hl-changelog/v2"
ticket: "frontend"
title: "房务订单列表「类型」改页签 + 「小蒙马」改「团期」文案 + 菜单改名后页面名同步"
consumer: "admin"
author: "wx(GIT)"
change_type: "前端优化"
backend_status: "not_required"
gateway_status: "not_required"
frontend_status: "verified"
frontend_owner: "mmg"
frontend_ref: "ce469f7830a50053e3070f379b05fb075e6cd9ef"
target_release: "v2.1"
verified_at: "2026-09-28"
status_note: "后端菜单改名与字典改名已在测试服生效。前端三项改动互不依赖:房务订单列表「类型」改页签、写死的「小蒙马」改「团期」、出团管理/出团详情页面名同步。2026-09-27 订正:写死文案 5 个文件 8 处、菜单名同步补「返回班期看板」按钮与 spec 路径、页签绑定改 @update:value。前端已交付(ce469f78,与 28_frontend 同一交付):「类型」下拉改页签(28 口径两页签);「小蒙马」改「团期」5 文件 8 处写死文案;菜单改名同步(班期看板→出团管理、团期详情→出团详情等)及两 spec 断言;房务 11 例+菜单两 spec 38 例全绿。"
updated_at: "2026-09-27"
base: "dev-v3"
---
# 前端优化:房务订单列表与全局文案同步(第二期菜单与业务定案对齐)
## ⚠️ 关键变化
三项联动改动,无依赖关系,可独立完成但应同步推送:
1. **房务管家 › 订单列表:「类型」下拉改为页签**
- 改为三页签(核心 / 定制 / 团期),去掉「全部」选项,默认「核心」
- 样式照「财务管理 › 核单列表」(`src/views/finance/settlement/index.vue:58-66`)的「常规产品 / 团期产品」页签
- 端点不变:核心、定制走户级端点 `house-allocation/households`,团期走 `house-allocation/group-batches`
2. **全局文案替换:「小蒙马」→「团期」**
- 后端字典已改,走字典翻译的地方自动生效
- 写死的用户可见文案共 5 个文件 8 处需手改(见第三节表格)
3. **菜单改名后的前端页面名同步**
- 后端菜单改名,侧栏自动生效
- 前端写死的页面标题、按钮与提示文案共 4 个文件 4 处,另有 2 个 spec 断言跟着改(见第四节表格)
---
## 一、背景
wx 2026-09-27 确认三项协同改动,后端部分(菜单改名、字典值改动)已在测试服生效(PR #8450,#8444)。前端需消费这些变化以保持一致。
---
## 二、订单列表「类型」改为页签
> 🔴 **本章的页签集合已被 2026-09-28 的口径取代,实施前先看新条目。**
> 新条目:`changelogs-v2/2026-09/28_frontend_房务订单列表改常规与团期两页签-前端优化-管理后台.md`
>
> wx 2026-09-28 把页签定为**两个**:「常规订单 / 团期订单」。与本章的差别只有两处——
> ①页签由三个(核心/定制/团期)改为两个;②本章「去掉『全部』、`orderTab` 初值改成 `ref('CORE')`」**作废**,
> 「全部」保留并改名为「常规订单」,初值保持 `ref('all')` 不动。
>
> **本章其余要点全部继续有效**:页签置于 ProTable toolbar 左侧、绑定用 `:value` + `@update:value`
> (不能换成 `v-model:value`)、端点行为不变、`?groupBatchId=` 自动切团期页签、注释同步。
> 第三章(「小蒙马」→「团期」文案替换)与第四章(菜单改名后页面名同步)**完全不受影响,照原样执行**。
### 现状(ref `gitea/v2.1` origin/v2.1)
**文件**:`src/views/housekeeper/orders/index.vue`
- **搜索区** `:34-45`:「类型」使用 `n-select` 下拉框,宽度 120px,`:value="orderTab"` + `@update:value="onOrderTabChange"`。`:34` 的注释写明它是 2026-09-27 当天由页签改成下拉的,本次按 wx 要求改回页签
- **状态变量** `:365`:`const orderTab = ref('all')`
- **选项定义** `:366-372`:
```js
const orderTabOptions = [
{ value: 'all', label: '全部' },
{ value: 'CORE', label: '核心' },
{ value: 'CUSTOM', label: '定制' },
{ value: 'GROUP', label: '团期' },
]
```
### 改动要点
#### 1. 样式改为页签,置于 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">`
- 样式(同文件 `:217` 附近):
```less
.product-tabs {
width: 280px;
}
```
#### 2. 页签内容:**去掉「全部」,仅保留核心、定制、团期,默认核心**
```vue
<n-tabs
:value="orderTab"
type="line"
size="small"
class="product-tabs"
@update:value="onOrderTabChange"
>
<n-tab name="CORE">核心</n-tab>
<n-tab name="CUSTOM">定制</n-tab>
<n-tab name="GROUP">团期</n-tab>
</n-tabs>
```
- 绑定方式与现有 `n-select` 相同:`:value="orderTab"` + `@update:value="onOrderTabChange"`,仍由现有回调重置状态桶。核单列表用的是 `v-model:value`,这里不能照抄,否则切换时会绕过 `onOrderTabChange`
- `:365` 的初始值由 `ref('all')` 改为 `ref('CORE')`;`orderTabOptions` 删除;凡把 `orderTab` 置为或判断为 `'all'` 的地方(如 `:456` 的 `orderTab.value !== 'all'`)按「默认 CORE、恒有值」改。同文件 `scope`、`statusTab` 也有 `'all'`,与本改动无关,不动
#### 3. 端点行为不变
- 核心、定制:`GET house-allocation/households`,带 `productType=CORE|CUSTOM`
- 团期:`GET house-allocation/group-batches`(整团一行)
- 切换页签重置状态桶(现有 `onOrderTabChange` 逻辑)
#### 4. 通知链接行为
- `?groupBatchId=` 仍自动切到「团期」页签并精确定位
- `?orderId=` 行为不变
#### 5. 页面注释同步
- `:34-35`、`:297-308`、`:366` 的注释里「下拉 / 全部」的描述同步改成「页签 / 核心·定制·团期」
---
## 三、全局文案替换:「小蒙马」→「团期」
### 后端字典已改
后端 PR #8450(HL-#8444)部署完毕,字典值修改:
- `product_type/GROUP` label 为「团期」(原「小蒙马」)
- `vehicle_type/GROUP` label 为「团期专用」(原「小蒙马专用」)
- 走字典翻译的地方自动生效
### 前端需改的写死文案(5 个文件 8 处,均对 origin/v2.1 `1c555f5` 逐行核过)
| 文件 | 行号 | 改前 | 改后 |
|------|------|------|------|
| `src/views/grassland-guide/ProductPickerModal.vue` | 26 | placeholder="核心产品 / 小蒙马" | placeholder="核心产品 / 团期" |
| `src/views/grassland-guide/ProductPickerModal.vue` | 132 | { label: '小蒙马', value: 'GROUP' } | { label: '团期', value: 'GROUP' } |
| `src/views/housekeeper/_shared/constants.js` | 68 | GROUP: '小蒙马' | GROUP: '团期' |
| `src/views/housekeeper/_shared/constants.js` | 71 | xmm: '小蒙马' | xmm: '团期' |
| `src/views/order-v2/new/components/Step0Theme.vue` | 252 | GROUP: { label: '小蒙马', cls: ... | GROUP: { label: '团期', cls: ... |
| `src/views/order-v2/new/components/Step0Theme.vue` | 258 | { key: 'GROUP', label: '小蒙马' } | { key: 'GROUP', label: '团期' } |
| `src/views/product/batch/BatchEditModal.vue` | 195 | '小蒙马产品下单时需要...' | '团期产品下单时需要...' |
| `src/views/product/edit/components/steps/BatchPricingStep.vue` | 348 | `<p class="bps-desc">小蒙马按班期招募...` | `<p class="bps-desc">团期按班期招募...` |
`constants.js:71` 的 `xmm` 是旧产品类型键(同文件 `PRODUCT_TYPE.XMM = 'xmm'`),只改 label,键名不动。
### 注释(顺手改,不影响展示)
- `src/views/order-v2/new/components/Step0Theme.vue:249`:`CORE 核心产品 / GROUP 小蒙马 / CUSTOM 私人定制` → `GROUP 团期`
- 其余注释命中:`src/constants/productType.js:14,33`、`src/stores/productEdit.js:139`、`housekeeper/components/orderDetailAdapter.js:507`、`housekeeper/ledger/index.vue:183`、`housekeeper/todos/index.vue:273`、`product/edit/` 下 `DayEditor.vue:39`、`HotelCard.vue:12`、`HotelPickerModal.vue:36,308`、`config/product-type-config.js:2,5`、`index.vue:3`、`product/line/components/MiniappShareModal.vue:189`
### 不在本次替换范围
- `src/views/product/edit/config/block-type-config.js:97,101,129,307,311,313`:产品详情页营销模块的默认文案(「小蒙马领队团队」「今年,小蒙马 2 岁了」「小蒙马亲子营」)。这里的「小蒙马」是品牌名,不是产品类型名,替换成「团期」语义不通,保持原样。
---
## 四、菜单改名后的前端页面名同步
后端已改名的菜单及对应前端页面标题:
| 菜单变化 | 前端文件 | 改前 | 改后 |
|---------|---------|------|------|
| 订单管理v2 › 团期订单 → 出团管理 | `src/views/order-v2/batch/index.vue:3` | title="班期看板" | title="出团管理" |
| 隐藏页:团期详情 → 出团详情 | `src/views/order-v2/batch/detail/index.vue:3` | title="团期详情" | title="出团详情" |
| 同上(详情页空态按钮) | `src/views/order-v2/batch/detail/index.vue:348` | action-text="返回班期看板" | action-text="返回出团管理" |
| 同上(订单详情里的引导提示) | `src/views/order-v2/detail/_shared/orderDetailActions.js:32` | '…请到团期详情完成团期确认后…' | '…请到出团详情完成团期确认后…' |
| 同上(测试断言) | `src/views/order-v2/detail/_shared/__tests__/orderDetailActions.spec.js:73` | toContain('团期详情') | toContain('出团详情') |
| 同上(测试断言) | `src/views/order-v2/detail/components/__tests__/BottomActionBar.spec.js:73` | toContain('团期详情') | toContain('出团详情') |
| 车务管理 › 团期配车 › 团期配车 → 车务管理 › 团期配车(拍平) | `src/views/fleet/group-dispatch/index.vue` | —— | **无需改** |
#### 特别说明
- 「班期看板」页面标题改为「出团管理」,与侧栏菜单同名
- 「团期详情」页面标题改为「出团详情」,引导提示与测试断言一起改。后端 581065 的 message 是「团期单随团期确认,不可单独确认」,不含页面名,前端改提示不会和后端文案对不上
- 团期配车页面路由与菜单 path 都没变,只是菜单少了一层目录,前端无需改动
- 代码注释里的「团期详情」(`src/api/`、`stores/`、`notification/` 等处)指的是接口或数据,不是页面名,不用改
---
## 五、验证检查清单
改完后逐项核对(无需部署,仅检查代码变更):
- [ ] 房务订单列表的「类型」改为三页签(核心 / 定制 / 团期),去掉「全部」
- [ ] 页签默认「核心」,样式同「财务管理 › 核单列表」;切换页签时状态桶照常重置
- [ ] `?groupBatchId=` 通知链接仍自动切到「团期」页签并定位
- [ ] 5 个文件 8 处写死文案「小蒙马」改「团期」
- [ ] 「班期看板」页面标题 →「出团管理」,详情页空态按钮「返回班期看板」→「返回出团管理」
- [ ] 「团期详情」页面标题 →「出团详情」
- [ ] 订单详情里的团期确认引导提示改「出团详情」
- [ ] `orderDetailActions.spec.js`、`BottomActionBar.spec.js` 断言同步,单测绿
---
## 六、不影响范围
- 后端接口零改动
- 小程序、H5 不涉及
- 团期详情页除标题外的其它区域不涉及
- 房务配房列表的其它筛选条件不涉及
---
## 七、相关工单与文档
- 后端菜单改名:PR #8450(HL-#8444),已部署测试服
- 字典值改动:同上 PR
- 前端对接无新的接口契约变更
---
## 联系人
- **后端负责人**: @wx
- **前端负责人**: @mmg