DirectSurface UIDirectSurface UI
开始使用
文档/业务指南

弹窗编辑

import { RenderModal } from 'ds-ui'

弹窗编辑用于处理小范围、临时性、需要确认的编辑流程。它不能替代页面级编辑,也不应该承载长时间复杂业务状态。

适用场景

  • 新增或编辑少量字段。
  • 选择辅助值。
  • 二次确认。
  • 查看对象详情或诊断信息。

不适合:

  • 大型表单。
  • 多步骤流程。
  • 长时间占用的复杂业务单据。
  • 需要频繁与主页面联动的大区域编辑。

基本确认框

const modal = new RenderModal({  title: '删除确认',  content: '确认删除当前记录吗?',  buttons: [    { label: '取消', key: 'cancel' },    { label: '删除', key: 'delete', danger: true, primary: true },  ],  onClose: key => {    if (key === 'delete') remove()  },}) modal.show()

RenderModal 适合简单文本确认。复杂内容建议用应用 Overlay 服务或专门窗口组合。

上下文继承

弹窗来自某个页面时,应继承调用页面上下文,而不是只挂到应用根。这样弹窗内命令、权限、当前患者或当前单据都能按调用来源解析。

如果弹窗有临时状态,可以创建浮层级上下文,并在弹窗关闭时释放。

关闭规则

  • 确认:校验、提交、关闭、刷新主页面。
  • 取消:放弃临时值,关闭。
  • 点击外部:只在轻量 popup 中允许;编辑型弹窗应谨慎。
  • Escape:通常等价于取消,但要考虑脏数据确认。

使用建议

  • 弹窗打开时不要复制大型业务对象,传 id 或轻量参数即可。
  • 弹窗关闭后必须释放临时上下文、订阅和计时器。
  • 弹窗内按钮也应绑定命令或共享权限判断。
  • 需要停靠、浮动、最大化的复杂内容,应使用 RenderWindow 或工作区文档,而不是普通 Modal。