hl-api-changelog/changelogs-v2/2026-07/16_房务详情询房提示已复制但剪贴板为空-前端待处理-管理后台.md
2026-07-03 10:54:35 +08:00

3.2 KiB

房务详情「询房」提示已复制但剪贴板为空

模块:管理后台 · 房务工作台 /housekeeper/orders 类型:前端待处理(后端无接口变更) 日期2026-07-03 说明:仅通知前端处理;本问题不需要后端新增接口,也不需要恢复记录式询房。

问题现象

测试页面:

  • 页面:http://192.168.100.160:9527/housekeeper/orders
  • 弹窗:房务订单详情
  • 订单示例:HL20260702232103376
  • 操作:点击某天行程右侧「询房」
  • 当前结果:右上角 toast 提示「已复制询房话术,去微信粘贴发给酒店」
  • 实际结果:系统剪贴板为空,去微信粘贴没有内容

后端当前口径

后端不需要新增接口、不改字段。

询房话术仍使用既有 preview 能力:

POST /v3/admin/order/inquiry/preview

业务口径:

  • 询房已经简化为“复制话术”。
  • 不恢复记录式询房、询房历史、发起询房记录等已删除能力。
  • 前端点击「询房」时,应先拿 preview 返回的话术,再完成复制。

【前端 · 管理后台】处理要求

1. 不要在复制未可信成功时提示“已复制”

当前现象说明前端复制链路存在误判:页面提示已复制,但系统剪贴板实际为空。

请前端检查复制实现,不要只根据 document.execCommand('copy') 返回值、按钮点击成功、或接口成功就展示“已复制”。

2. 复制逻辑需兼容 HTTP 测试环境

当前测试前端是 http://192.168.100.160:9527,属于非安全源。浏览器可能拒绝或限制 navigator.clipboard.writeText

建议处理口径:

  • 安全源且 Clipboard API 可用时,优先使用 navigator.clipboard.writeText
  • Clipboard API 不可用或被拒绝时,再降级到临时 textarea + document.execCommand('copy')
  • 降级复制无法确认写入成功时,不要提示“已复制”,应展示可选中的询房话术并提示用户手动复制。

3. 区分接口失败和复制失败

需要区分两类错误:

场景 期望提示
/inquiry/preview 接口失败或返回空话术 提示“生成询房话术失败”或等价接口错误
preview 成功但浏览器拒绝复制 尝试降级复制;无法确认成功时提示手动复制

4. 复制内容为空要阻断

如果 preview 返回的文本为空、只有空白字符,前端不要执行复制,应提示话术为空或生成失败,避免误报“已复制”。

验收标准

场景 期望
http://192.168.100.160:9527/housekeeper/orders 点击「询房」 复制成功时剪贴板实际有 preview 话术
浏览器限制 Clipboard API 不误报“已复制”,提供可手动选中的话术
preview 接口失败 显示接口/生成失败,不显示复制成功
preview 返回空文本 不复制,提示话术为空或生成失败
去微信粘贴 内容应与 preview 话术一致

影响范围

页面/能力 说明
/housekeeper/orders 房务订单详情弹窗每日行程「询房」按钮
/v3/admin/order/inquiry/preview 仅作为现有话术生成接口使用,无后端改动