Skip to content

确认删除 (Confirm Delete)

在生产级编辑器或需要严谨性的业务场景中,仅仅因为误触了一个 DeleteBackspace 失去配置完备的整片节点集群往往是灾难性的。

默认情况下,yh-flow 的引擎搭载了快捷的键盘按键监听功能。要实现带有前置 UI 确认弹窗的删除拦截操作,我们可以干净利落地关停内置操作并接管控制流。

拦截删除示例

请选中下方的一个或者多个节点,按下删除按钮或键盘上的 Backspace/Delete(鼠标要在区域焦点内)。观察系统是如何弹出原生的窗口来安全提示的。

请先在画布上选择元素以启用删除功能
节点 1
节点 2
节点 3
安全删除工作流

实现策略

  1. 禁用内部处理:向 <yh-flow> 组件传递 :keyboard-shortcuts="false"。这可以防止引擎自动处理 DeleteBackspaceCtrl+C 等。
  2. 顶层拦截:将流程组件包装在一个容器中,并添加 @keydown 监听器,以捕获您想要拦截的特定按键。确保容器是可聚焦的(例如,使用 tabindex="0")。
  3. 过滤变动:在验证用户意图后(例如,通过 Modal 弹窗),只需过滤您的 nodesedges 数组以移除选中的 ID。响应式机制会自动处理余下的工作。

Released under the MIT License.