diff --git a/changelogs-v2/2026-07/68_房务选择酒店误传preferredHotelId导致只显示1家-前端待处理.md b/changelogs-v2/2026-07/68_房务选择酒店误传preferredHotelId导致只显示1家-前端待处理.md new file mode 100644 index 0000000..d96271a --- /dev/null +++ b/changelogs-v2/2026-07/68_房务选择酒店误传preferredHotelId导致只显示1家-前端待处理.md @@ -0,0 +1,50 @@ +# 房务选择酒店误传 preferredHotelId 导致只显示 1 家(前端待处理) + +## 现象 + +订单 `2078739922130243586` 第 1 晚打开“选择酒店”弹窗,只显示定制师指定的“呼伦贝尔香格里拉大酒店”,分页显示“共 1 条”,页面提示“已限定定制师指定酒店”。 + +## 已确认原因 + +`192.168.100.160:9527` 当前 Vite 服务实际返回的 `PickHotelModal.vue` 仍在候选请求中传递: + +```js +preferredHotelId: + on.specifiedHotelIds?.length === 1 ? String(on.specifiedHotelIds[0]) : undefined +``` + +该参数会要求后端按指定酒店过滤,因此响应只剩 1 家。这与当前产品意图“定制师指定酒店置顶并标记,房务仍可选择其他酒店”冲突。 + +当前 `D:/work2/hl-ui` 源码已经不再传该参数,说明 `192.168.100.160:9527` 运行的是未同步的工作树或旧代码。 + +## 接口证据 + +接口:`GET /v3/admin/hotel-candidates` + +公共参数: + +- `orderId=2078739922130243586` +- `dayNumber=1` +- `stayDate=2026-07-22` +- `roomCount=2` +- `limit=50` + +结果: + +- 不传 `preferredHotelId`、无关键词:返回 21 家;香格里拉为 `isConsultantRecommended=true` 且排第 1。 +- 不传 `preferredHotelId`、`keyword=满洲里`:返回 3 家,包括香格里拉、满洲里凯旋大酒店、满洲里饭店(百年俄式)。 +- 当前截图环境传入唯一 `preferredHotelId`:只返回指定酒店 1 家。 + +## 前端处理要求 + +1. 房务候选请求不得传 `preferredHotelId`,无论 `specifiedHotelIds` 是 1 个还是多个。 +2. `specifiedHotelIds` 仅用于页面提示;推荐标记以接口 `isConsultantRecommended` 为准。 +3. 不输入关键词时展示后端返回的全部候选;跨城搜索继续使用 `keyword`。 +4. 确认 `192.168.100.160:9527` 的 Vite 进程工作目录与 `D:/work2/hl-ui` 当前目标分支一致,重启 Vite 后清除模块缓存并复测。 + +## 验收 + +- 打开本订单第 1 晚选择酒店,不输入关键词时不再显示“共 1 条”,可看到其他酒店。 +- 搜索“满洲里”返回 3 家。 +- 香格里拉仍显示“定制师推荐”,但不会阻止选择其他酒店。 +- Network 中 `/v3/admin/hotel-candidates` 请求不含 `preferredHotelId`。