Skip to content

Dialog 对话框 ​

覆盖在主窗口之上的窗口,使下方内容不可交互。可通过点击遮罩、返回手势 / 返回键、Esc 或 SDialogClose 关闭。

基础用法 ​

网页近似预览,真机效果以 HarmonyOS 渲染为准。

受控 ​

像 v-model:open 一样用 !! 绑定打开状态。

网页近似预览,真机效果以 HarmonyOS 渲染为准。

API ​

从组件库源码中的 @Param / @Event / @BuilderParam 声明自动提取。

SDialog ​

shadcn-vue 的 Dialog。

属性类型默认值说明
open!!boolean | undefinedundefined受控的展开状态(配合 !! 使用)。留空则为非受控。
defaultOpenbooleanfalse
事件类型默认值说明
onOpenChange(open: boolean) => void() => { }

插槽: 子组件(尾随闭包)

SDialogTrigger ​

点按内容区时打开对话框。

插槽: 子组件(尾随闭包)

SDialogClose ​

点按内容区时关闭对话框(在对话框内容中同样有效)。

插槽: 子组件(尾随闭包)

SDialogContent ​

对话框面板。原位不渲染任何内容;打开时显示在浮层中。

  • 指针 / 宽屏:居中的 bg-background rounded-lg border p-6 shadow-lg sm:max-w-lg
  • 触控 + 紧凑窗口(adaptive: 'auto'):带拖动手柄的底部 Drawer(语义上的转换)
属性类型默认值说明
showCloseButtonbooleantrue
dismissOnOutsidebooleantrue点击遮罩时关闭。
adaptiveSparkAdaptive
SparkAdaptive = 'auto' | 'pointer' | 'touch'
'auto''auto':紧凑的触控屏上使用 Drawer,其他情况下使用居中对话框。
tokensSparkSurfaceTokens{}实例级表面令牌覆盖(实例 → 主题令牌 → 配方),参见 {@link SparkSurfaceTokens}。

插槽: 子组件(尾随闭包)

SDialogHeader ​

插槽: 子组件(尾随闭包)

SDialogFooter ​

操作行;在紧凑宽度下纵向堆叠(主操作在上),与 shadcn 的 flex-col-reverse sm:flex-row 一致。

插槽: 子组件(尾随闭包)

SDialogTitle ​

属性类型默认值说明
textResourceStr''

SDialogDescription ​

属性类型默认值说明
textResourceStr''

MIT Licensed