跳到主要内容

弹窗 Dialog

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

安装使用

备注

小程序在机制上不允许动态插入 DOM。

当 API 调用时,需要在外层先引入 <ti-dialog id="titian-dialog" /> 组件,再使用 js 获取该组件实例、并设置该组件。

当使用声明式 DOM 调用时,跟常规组件一样,在 jsonwxml 中引入即可。

{
// 原生小程序
"usingComponents": {
"ti-dialog": "@titian-design/weapp/dialog/index"
},
// titan-cli 搭建的项目
"usingComponents": {
"ti-dialog": "platform://titian-mp/ti-dialog"
}
}

用法示例

常规 API 式调用

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

$tiDialog.close();

使用 selector

备注

selector: 用作 selectComponent API 的参数;指定 <ti-dialog> 元素的 id,默认为 titian-dialog

ctx: 指定 selector 选择器的上下文范围。

$tiDialog.show({
selector: "#titian-dialog",
title: "",
content: "",
cancelBtnText: "取消",
isTextButton: false,
hasCancelButton: true,
confirmBtnText: "确定",
onCancel() {},
onConfirm() {},
onClose() {}
});

$tiDialog.show({
ctx: this
selector: "#titian-dialog",
title: "",
content: "",
cancelBtnText: "取消",
isTextButton: false,
hasCancelButton: true,
confirmBtnText: "确定",
onCancel() {},
onConfirm() {},
onClose() {}
});

使用 DOM 和插槽

<ti-dialog title="标题" visible="{{visible}}" bind:cancel="onCancel" bind:confirm="onConfirm" bind:close="onClose">
<view>默认插槽</view>
</ti-dialog>

ti-dialog API

属性 Properties

名称类型必填默认值说明备注
titlestring-标题-
contentstring-内容-
z-indexnumber12000z-index-
has-cancel-buttonbooleanfalse是否展示取消按钮-
close-on-maskbooleantrue点击遮罩是否关闭对话框-
close-on-actionsbooleantrue点击确认取消按钮,是否关闭对话框-
is-text-buttonbooleanfalse是否为文字按钮-
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-

事件 Events

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

插槽 Slots

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

外部样式类 External Classes

名称说明备注
ext-class根节点样式类-
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-popup-mask-bg-color@popup-mask-bg-color遮罩背景色-
--dialog-popup-radius@popup-radius弹窗圆角-
--dialog-popup-box-bg-color@popup-box-bg-color弹窗背景色-
--dialog-width560rpx组件宽度-
--dialog-min-height300rpx组件最小高度-
--dialog-inner-padding-v58px 0 44px 0内容区垂直方向内边距-
--dialog-inner-padding-h48rpx内容区水平方向内边距-
--dialog-inner-title-colorvar(--neutral-color-1, #212121)内容区标题颜色-
--dialog-inner-content-colorvar(--neutral-color-1, #212121)内容区颜色-
--dialog-actions-height88rpx按钮区高度-
--dialog-actions-gap32rpx按钮区按钮间距-
--dialog-actions-border-top-colorvar(--neutral-color-6, #f2f2f2)按钮区上边线颜色-
--dialog-actions-space48rpx按钮区按钮内边距-
--dialog-actions-cancel-color#757575按钮区取消按钮颜色-
--dialog-actions-cancel-border-color#212121按钮区取消按钮边线颜色-
--dialog-actions-cancel-active-colorrgba(33, 33, 33, 0.1)按钮区取消按钮按压颜色-