组件
OneDialog
对话框默认挂载到 body;自定义容器模式不会锁定 body 滚动。
确认后将同步当前设置。
查看代码收起代码
import { OneDialog, oneDialog } from '@geektech/one';
new OneDialog({ title: '编辑资料', defaultOpen: true });
const confirmed = await oneDialog.confirm({
title: '保存更改?',
description: '确认后将立即生效。',
});异步确认
const saved = await oneDialog.confirm({ title: '保存更改?', onConfirm: async () => save() });API
| 名称 | 签名 | 说明 |
|---|---|---|
open | open?: boolean | 受控显示状态。 |
defaultOpen | defaultOpen?: boolean | 非受控初始状态。 |
title | title?: string | 标题;header 插槽优先。 |
description | description?: string | 说明;default 插槽优先。 |
closeOnOverlay | closeOnOverlay?: boolean | 是否允许点击遮罩关闭,默认 true。 |
closeOnEscape | closeOnEscape?: boolean | 是否允许 Escape 关闭,默认 true。 |
confirmLoading | confirmLoading?: boolean | 确认中的加载与禁用状态。 |
container | container?: OneOverlayContainer | 自定义挂载容器。 |
children | children?: Array<VNode | string> | default、header、footer 插槽。 |
| 名称 | 签名 | 说明 |
|---|---|---|
confirm | () => void | 点击默认确认按钮。 |
cancel | (reason) => void | 取消、遮罩或 Escape 请求。 |
openChange | (open: boolean) => void | 受控状态变更请求。 |
afterClose | () => void | 视图实际卸载后发出。 |
oneDialog.open | (options) => OneOverlayHandle | 创建可更新对话框。 |
oneDialog.confirm | (options) => Promise<boolean> | 创建可等待的确认对话框。 |
oneDialog.closeAll | () => void | 关闭全部 Dialog 并以 false 结算等待。 |
键盘与 ARIA
使用 role=dialog、aria-modal、aria-labelledby 和 aria-describedby。Tab / Shift+Tab 在最上层对话框内循环,Escape 按配置关闭,关闭后恢复原焦点。