Skip to content

[console] 新建/编辑弹窗无未保存内容保护:beforeunload 无人拦截,刷新即静默丢表单 #3114

Description

@baozhoutao

现象

console 新建/编辑弹窗没有任何未保存内容保护:表单填到一半刷新页面(F5)或导航离开,内容静默丢失——既不弹 beforeunload 确认,也没有草稿暂存/恢复。

实测证据(17.0.0-rc.0,真机 UI)

设备记录编辑弹窗填入备注后刷新:

  1. 派发可取消的 beforeunload 事件 → defaultPrevented === false(全链路无人拦截);
  2. 刷新全程零浏览器确认框;
  3. 刷新后弹窗被 URL 复原、但已填内容丢失。

影响

长表单(下游项目里 20~28 字段的表单不少)误刷新即全部白填。弹窗生命周期与卸载拦截都在渲染层,应用层元数据(view/formViews)无对应开关,自建插件也接不进表单卸载时机——应用层无对策。

建议

表单 dirty 时注册 beforeunload 守卫(React Router 场景加路由离开确认);进阶:localStorage 草稿暂存+恢复提示。

下游登记:os-project-titanwind-ehr PLAT-DEF-012(项目 #633 W-2)。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions