hl-api-changelog/changelogs-v2/2026-07/11_订单详情住宿卡片已回配展示条件错误-前端修复-管理后台.md

4.4 KiB

订单详情住宿卡片「已回配」展示条件错误

模块:管理后台 · 订单详情 /order-v2/detail/{orderId} · 行程安排 · 住宿安排 类型:前端修复(展示条件修正,无需新增后端接口) 日期2026-07-02 背景:订单详情住宿安排卡片在配房流程尚未完成时,底部酒店卡片错误显示「已回配」。实际房务工作台仍处于「配房中」,只有配房流程整体完成/最终确认后,定制师侧才应展示「已回配」。

问题现象

测试订单:

  • 订单号:HL20260702100458640
  • 页面:/order-v2/detail/2072501756742242305

当前现象:

  • 订单详情住宿安排卡片底部酒店行显示「已回配」
  • 但房务详情弹窗仍显示:
    • 配房中
    • 配房进度 1/3 或仍未最终确认
    • 配房流程未完成

这会让定制师误以为房务已经完整回传配房方案。

后端当前真实状态

经测试服接口核对,后端没有返回“整单已回配”语义。

1. 定制师订单详情行程接口

GET /v3/admin/order/2072501756742242305/itinerary

关键状态:

{
  "hotelGroup": {
    "requirement": {
      "status": "PROCESSING",
      "claimerId": "1001",
      "claimerName": "admin"
    },
    "assignments": [
      {
        "assignmentId": "2072515686428479490",
        "dayNumber": 1,
        "hotelName": "海拉尔嘉世豪酒店",
        "roomCount": 1
      }
    ]
  }
}

含义:

  • requirement.status = PROCESSING:整单用房需求仍在处理中,不是完成态。
  • hotelGroup.assignments 只代表已有部分已确认配房行,不能代表整单已回配。

2. 房务详情接口

GET /admin/house/orders/2072501756742242305

关键状态:

{
  "progress": {
    "houseStatus": "CLAIMING",
    "houseStatusLabel": "配房中",
    "currentStep": 2
  },
  "actions": {
    "canFinalize": {
      "enabled": false,
      "disabledReason": "存在未闭环询问/未进入待最终确认"
    },
    "canReopen": {
      "enabled": false,
      "disabledReason": "仅已最终确认的订单可回配"
    }
  }
}

含义:

  • 房务侧权威状态仍是 CLAIMING
  • 还不能最终确认。
  • 还不能回配/回配后修改。

【前端 · 管理后台】需改动

1. 不要用 assignments.length > 0 判断「已回配」

错误逻辑示例:

const isReturned = hotelGroup.assignments?.length > 0

这个只能说明“已有部分配房行”,不能说明“整单配房流程已完成”。

2. 「已回配」只能在整单完成态显示

建议判断口径:

const isHotelReturned =
  hotelGroup?.requirement?.status === 'DONE'

如果当前页面可拿到订单主流程/房控状态,也可以等价使用完成态字段:

const isHotelReturned =
  order?.roomControlStatus === 'DONE' ||
  hotelGroup?.requirement?.status === 'DONE'

但不要用单条酒店分配记录存在与否来判断。

3. 未完成时的展示建议

状态 展示
requirement.status = PENDING 待配房 / 待房务抢单
requirement.status = PROCESSING 配房处理中
存在部分 assignmentsstatus=PROCESSING 可展示已配房行,但标签应为「配房中」或「部分已配」,不能显示「已回配」
requirement.status = DONE 才显示「已回配」

4. 「查看已配房」按钮不等于「已回配」

如果存在 hotelGroup.assignments,可以展示「查看已配房」按钮或部分已配酒店卡片。

但酒店卡片右侧状态标签必须跟整单/需求状态区分:

  • 有已配房行:可以显示「已配房」或「已确认」
  • 整单流程完成:才显示「已回配」

验收标准

场景 期望
requirement.status=PROCESSING 且只有部分配房行 不显示「已回配」,显示「配房处理中」/「部分已配」
房务弹窗仍在 CLAIMING/配房中 定制师订单详情不得显示「已回配」
requirement.status=DONE / roomControlStatus=DONE 才允许显示「已回配」
点击「查看已配房」 可以看到已有配房行,但不改变整单回配状态判断

影响范围

页面 修复点
/order-v2/detail/{orderId} 行程安排 Tab 住宿安排卡片底部酒店行状态标签
房务详情弹窗 无需改动,当前后端状态已正确返回 CLAIMING/配房中