hl-api-changelog/changelogs-v2/2026-07/77_房务最终确认成功后残留全屏遮罩-前端待处理.md
2026-07-21 16:53:30 +08:00

2.9 KiB

房务最终确认成功后残留全屏遮罩(前端待处理)

目标前端

  • 端类型管理后台Web
  • 目标仓库:mmg/hl-uihttps://git.1814.love:8443/mmg/hl-ui.git
  • 联调/验收环境:http://192.168.100.160:9527
  • 其他前端小程序、H5 无需处理

本问题属于管理后台交互状态清理,不要求修改后端接口。

现象

房务管理员在订单详情完成最后一晚“单日确认”后点击“最终确认”,业务操作成功,列表状态也已更新为“已完成”,但详情抽屉关闭后页面仍残留覆盖整个视口的 .n-modal-mask

遮罩使列表变暗并拦截鼠标操作,页面上没有可见对话框或关闭按钮;按 Escape 后遮罩消失,页面恢复操作。

复现记录

  • 测试订单:HL20260721142957939
  • 操作角色:房务管理员
  • 操作步骤:选单 -> 两晚配房 -> 两晚单日确认 -> 最终确认
  • 配房口径:第 1 晚扣系统库存,第 2 晚不扣系统库存
  • 页面结果:最终确认成功,列表显示“已完成”和“已配 2 / 共 2 晚”,但全屏遮罩残留
  • 运行观察:成功后观察 3 秒,无 console error 或 failed request
  • 截图证据:D:/work2/HL-v3/.tmp/house-final-200-browser-flow-final-transient-empty.png

Escape 清除遮罩后重新打开该订单,详情正常显示 2/2、两晚酒店与库存口径,说明后端状态和配房数据均已正确落库,问题集中在前端弹层/抽屉的关闭清理。

前端处理要求

  1. 最终确认成功后,关闭确认对话框和订单详情抽屉时同步卸载对应 teleport/modal 容器,不能遗留可见或可交互的 .n-modal-mask
  2. 无论最终确认请求成功、业务失败、网络异常或用户取消,都必须在结束路径中恢复页面滚动和 pointer events。
  3. 不得依赖用户按 Escape、刷新页面或重新进入菜单恢复操作。
  4. 避免用全局删除所有遮罩的方式修复;只清理本次最终确认流程拥有的弹层状态,不能影响站内信、全局搜索等其他弹层。
  5. 最终确认成功后若自动关闭详情,列表状态与统计应正常刷新;若保留详情,则应直接展示正确的完成态 2/2 数据。

验收

场景 预期
正常完成最终确认 成功提示后无残留遮罩,列表可立即点击、筛选和滚动
最终确认业务失败 错误提示可关闭,原详情仍可操作,无遮罩残留
最终确认网络失败 loading 结束,页面恢复交互,可重试
用户取消最终确认 对话框关闭,详情与列表交互正常
成功后重开订单 显示“已完成”、正确配房进度及全部配房行

接口边界

  • 最终确认沿用现有房务接口,无需新增字段或修改响应结构。
  • 本次浏览器复测确认成功后的列表和详情数据正确,不创建 wx/HL 后端 Issue。