--- 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` - 结构:`` 左侧放页签 - 页签配置:`` - 样式(同文件 `:217` 附近): ```less .product-tabs { width: 280px; } ``` #### 2. 页签内容:**去掉「全部」,仅保留核心、定制、团期,默认核心** ```vue 核心 定制 团期 ``` - 绑定方式与现有 `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 | `

小蒙马按班期招募...` | `

团期按班期招募...` | `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