跳到主要内容

弹窗 Dialog

弹出对话窗,常用于确认、提示等场景。支持 API 式调用和 DOM 式调用。

安装使用​

import { $tiDialog } from '@titian-design/mobile-vue';

用法示例​

基本使用
codesanbox
copy
code
使用 DOM 和插槽
codesanbox
copy
code

常规 API 式调用​

<template>
</template>

<script lang="ts" setup>
import { $tiDialog } from '@titian-design/mobile-vue'

$tiDialog.show({
title: "Confirm标题",
content: "内容",
cancelBtnText: "取消",
isTextButton: false,
hasCancelButton: true,
confirmBtnText: "确定",
onCancel() {},
onConfirm() {},
onClose() {}
});

$tiDialog.close()
</script>

使用 DOM 和插槽​

<template>
<TiDialog
:title="attrs.title"
:use-content-slot="attrs.useContentSlot"
:content="attrs.content"
:cancel-btn-text="attrs.cancelBtnText"
:is-text-button="attrs.isTextButton"
:has-cancel-button="attrs.hasCancelButton"
:confirm-btn-text="attrs.confirmBtnText"
:visible="visible"
@cancel="onCancel"
@confirm="onConfirm"
@close="onClose"
>
<div>插槽</div>
</TiDialog>
</template>

<script lang="ts" setup>
import { TiDialog, ref } from '@titian-design/mobile-vue'

const visible = ref(false);

const attrs = ref({
title: "Show标题",
content: "内容",
useContentSlot: "",
cancelBtnText: "取消",
isTextButton: false,
hasCancelButton: true,
confirmBtnText: "确定",
});

const onConfirm = () => {
console.log('声明式调用 - dialog onConfirm!');
visible.value = false;;
};

const onCancel = () => {
console.log('声明式调用 - dialog onCancel!');
visible.value = false;;
};

const onClose = () => {
console.log('声明式调用 - dialog onClose!');
visible.value = false;;
};
</script>

TiDialog API​

属性 Properties​

名称类型必填默认值说明备注
titlestring否-标题-
contentstring否-内容,支持使用 \n 换行-
z-indexnumber否12000zIndex-
has-cancel-buttonboolean否false是否展示取消按钮-
close-on-maskboolean否true点击遮罩是否关闭对话框-
close-on-actionsboolean否true点击确认和取消按钮,是否关闭对话框-
is-text-buttonboolean否false是否为文字按钮-
cancel-btn-textstring否取消取消按钮的文案-
confirm-btn-textstring否确定确定按钮的文案-
confirm-button-colorstring否-确认按钮的颜色-
confirm-button-bg-colorstring否-确认按钮的背景颜色-
cancel-button-colorstring否-取消按钮的颜色-
cancel-button-bg-colorstring否-取消按钮的背景颜色 -
use-content-slotstring否-使用自定义内容的 slot-
use-actions-slotstring否-使用自定义按钮的 slot-
teleportElement否document.bodyDOM 挂载节点-
prevent-scrollboolean否true是否锁定背景滚动;实现上采用 document.body.style.overflow = 'hidden' 方式,内部可以滚动。-

事件 Events​

名称参数列表描述备注
cancel-点击取消按钮时触发-
confirm-点击确认按钮时触发-
close-当关闭时触发-

插槽 Slots​

名称说明备注
default内容-
actions自定义按钮插槽当 use-actions-slot 为 true 时可用
before-title标题前插槽当 title 为 true 时可用

外部样式类 External Classes​

名称说明备注
extClass根节点样式类-
ext-popup-classpopup/ext-class-
ext-popup-mask-classpopup/ext-mask-class-
ext-popup-content-classpopup/ext-content-class-
ext-inner-class内部样式-
ext-title-class标题样式-
ext-content-class内容样式-
ext-actions-class行为区样式-
ext-actions-confirm-class确认样式-
ext-actions-cancel-class取消样式-

CSS 变量 CSS Variables​

变量默认值说明默认
--dialog-actions-border-top-colortheme.color.gray.border.50按钮区域分割线颜色(textbutton模式下)
--dialog-actions-cancel-border-colortheme.color.gray.border.250取消按钮描边颜色(button模式下)
--dialog-actions-cancel-colortheme.color.gray.texticon.550取消按钮文字颜色
--dialog-actions-gaptheme.spacing.gap.g4按钮间距(button模式下)
--dialog-actions-space-bottomtheme.spacing.vertical.v12按钮区域 - 底部间距
--dialog-actions-space-horizontaltheme.spacing.horizontal.h12按钮区域 - 左右边距
--dialog-content-colortheme.color.gray.texticon.900内容文字,颜色
--dialog-content-font-sizetheme.fontSize.t7内容文字,字号
--dialog-content-font-weighttheme.fontWeight.regular内容文字,字重
--dialog-content-line-heighttheme.lineHeight.multiline.t7内容文字,行高
--dialog-inner-padding-bottomtheme.spacing.vertical.v11容器内下Padding
--dialog-inner-padding-htheme.spacing.horizontal.h12容器内左右Padding(不包括确认按钮)
--dialog-inner-padding-toptheme.spacing.vertical.v14容器内上Padding
--dialog-popup-box-bg-colortheme.color.gray.background.default弹窗容器背景色
--dialog-popup-mask-bg-colortheme.color.gray.mask.800遮罩背景颜色
--dialog-popup-radiustheme.borderRadius.r4弹窗圆角
--dialog-title-colortheme.color.gray.texticon.900标题颜色
--dialog-title-font-sizetheme.fontSize.t9标题字号
--dialog-title-font-weighttheme.fontWeight.semibold标题字重
--dialog-title-line-heighttheme.lineHeight.multiline.t8标题行高
--dialog-title-margin-bottomtheme.spacing.gap.g5标题与内容文字间距gap
--dialog-width560px组件宽度-
--dialog-min-height300px组件最小高度-
--dialog-actions-height88px按钮区高度-