2.9 KiB
2.9 KiB
房务详情「询房」按钮复制失败
模块:管理后台 · 房务工作台
/housekeeper/orders类型:前端修复(复制降级修正,无需新增后端接口) 日期:2026-07-03 关联工单:#4732 背景:房务详情弹窗中,房务点击每日行程右侧「询房」按钮后,页面提示「复制失败,请手动选中复制」。当前业务口径是“询房=复制话术”,不恢复记录式询房。
问题现象
测试页面:
- 页面:
http://192.168.100.160:9527/housekeeper/orders - 弹窗:房务订单详情
- 订单示例:
HL20260702232103376 - 操作:点击某天行程右侧「询房」
- 当前结果:右上角 toast 提示「复制失败,请手动选中复制」
后端当前口径
后端不需要新增接口。
询房话术仍使用既有 preview 能力:
POST /v3/admin/order/inquiry/preview
业务口径:
- 询房已经简化为“复制话术”。
- 不恢复记录式询房、询房历史、发起询房记录等已删除能力。
- 前端点击「询房」时,应先拿 preview 返回的话术,再完成复制。
【前端 · 管理后台】需改动
1. 复制逻辑需兼容 HTTP 测试环境
当前测试前端是 http://192.168.100.160:9527,属于非安全源。浏览器可能拒绝 navigator.clipboard.writeText,导致自动复制失败。
前端需要在 Clipboard API 不可用或被拒绝时,提供可靠降级,例如:
- 优先使用
navigator.clipboard.writeText - 失败后降级到临时
textarea+document.execCommand('copy') - 降级仍失败时,再提示用户手动复制,并展示可选中的话术内容
2. 不要把 Clipboard API 权限失败当成接口失败
需要区分两类错误:
| 场景 | 期望提示 |
|---|---|
/inquiry/preview 接口失败或返回空话术 |
提示“生成询房话术失败”或等价接口错误 |
| preview 成功但浏览器拒绝复制 | 尝试降级复制;降级失败后提示“复制失败,请手动复制” |
3. 复制内容为空要阻断
如果 preview 返回的文本为空、只有空白字符,前端不要执行复制,应提示话术为空或生成失败,避免误报“已复制”。
验收标准
| 场景 | 期望 |
|---|---|
http://192.168.100.160:9527/housekeeper/orders 点击「询房」 |
能复制 preview 话术,不再误报复制失败 |
| Clipboard API 被浏览器拒绝 | 自动走降级复制 |
| preview 接口失败 | 显示接口/生成失败,不显示复制成功 |
| preview 返回空文本 | 不复制,提示话术为空或生成失败 |
| 降级复制仍失败 | 弹出或展示可手动选中的询房话术 |
影响范围
| 页面/能力 | 说明 |
|---|---|
/housekeeper/orders |
房务订单详情弹窗每日行程「询房」按钮 |
/v3/admin/order/inquiry/preview |
仅作为现有话术生成接口使用,无后端改动 |