pumpkin-ui
指南
组件
指南
组件
  • 基础组件

    • Button 按钮
    • Cell 单元格
    • Icon 图标
    • Popup 弹出层
    • Toast 轻提示
  • 表单组件

    • PickerView 选择器视图
    • Picker 选择器
    • DatePicker 日期时间选择器
    • Switch 开关
    • Field 输入项
    • Form 表单
    • Checkbox 复选框
    • Radio 单选框
  • 反馈组件

    • Overlay 遮罩
    • Loading 加载
    • ActionSheet 动作面板
    • Notify 消息提示
    • Skeleton 骨架屏
    • Dialog 对话框
  • 展示组件

    • Progress 进度条
    • Divider 分割线
    • Badge 徽标
    • Empty 空元素
    • Tag 标签

Dialog 对话框

基本使用

命令式调用

script
import { Dialog } from "@pumpkin-ui/mobile"

Dialog.show('基础用法').then(res=>{
    console.log(res)
})

代码示例

基础用法

通过show函数调用,第一个参数传入对话框内容的文本内容即可。第一个参数也支持传入对象,对象中可以传入message、overlay等属性。

template
    <div class="dialog-container">
        <pk-cell-group>
            <pk-cell is-link @click="Dialog.show('基础用法')">
                <template #title>基础用法</template>
            </pk-cell>
        </pk-cell-group>
    </div>
script
import { Dialog, PkCellGroup, PkCell } from '@pumpkin-ui/mobile'

style
.dialog-container {
    padding: 0;
}

对话框内容对齐

可通过messageAlign属性设置内容对齐方式,可选值为left、center、right。

template
    <div class="dialog-container">
        <pk-cell-group>
            <pk-cell is-link @click="Dialog.show({
                messageAlign: 'left',
                message: '我是内容'
            })">
                <template #title>内容左对齐</template>
            </pk-cell>
            <pk-cell is-link @click="Dialog.show({
                messageAlign: 'right',
                message: '我是内容'
            })">
                <template #title>内容右对齐</template>
            </pk-cell>
        </pk-cell-group>
    </div>
script
import { Dialog, PkCellGroup, PkCell } from '@pumpkin-ui/mobile'

style
.dialog-container {
    padding: 0;
}

标题

可通过title属性设置对话框标题。

template
    <div class="dialog-container">
        <pk-cell-group>
            <pk-cell is-link @click="Dialog.show({
                title: '标题',
                message: '我是内容'
            })">
                <template #title>标题</template>
            </pk-cell>
        </pk-cell-group>
    </div>
script
import { Dialog, PkCellGroup, PkCell } from '@pumpkin-ui/mobile'

style
.dialog-container {
    padding: 0;
}

关闭按钮

可通过设置showClose属性来显示关闭按钮。

template
    <div class="dialog-container">
        <pk-cell-group>
            <pk-cell is-link @click="Dialog.show({
                message: '我是内容',
                showClose: true
            })">
                <template #title>显示关闭按钮</template>
            </pk-cell>
            <pk-cell is-link @click="Dialog.show({
                message: '我是内容',
                showCancelButton: false
            })">
                <template #title>不显示取消按钮</template>
            </pk-cell>
        </pk-cell-group>
    </div>
script
import { Dialog, PkCellGroup, PkCell } from '@pumpkin-ui/mobile'

style
.dialog-container {
    padding: 0;
}

自定义确认/取消按钮文本

可通过confirmButtonText设置确认按钮文本,cancelButtonText设置取消按钮文本;通过confirmButtonColor设置确认按钮颜色,cancelButtonColor设置取消按钮颜色;通过showConfirmButton设置是否显示确认按钮,showCancelButton设置是否显示取消按钮。

template
    <div class="dialog-container">
        <pk-cell-group>
            <pk-cell is-link @click="Dialog.show({
                message: '我是内容',
                confirmButtonText: '确认按钮'
            })">
                <template #title>确认按钮文本</template>
            </pk-cell>
            <pk-cell is-link @click="Dialog.show({
                message: '我是内容',
                cancelButtonColor: 'red'
            })">
                <template #title>取消按钮颜色</template>
            </pk-cell>
        </pk-cell-group>
    </div>
script
import { Dialog, PkCellGroup, PkCell } from '@pumpkin-ui/mobile'

style
.dialog-container {
    padding: 0;
}

按钮位置反转

可通过buttonReverse设置按钮位置反转。默认是false,即确认按钮在右边,取消按钮在左边;设置为true时,确认按钮在左边,取消按钮在右边。

template
    <div class="dialog-container">
        <pk-cell-group>
            <pk-cell is-link @click="openEventDialog">
                <template #title>事件监听</template>
            </pk-cell>
        </pk-cell-group>
    </div>
script
import { Dialog, PkCellGroup, PkCell } from '@pumpkin-ui/mobile'

style
.dialog-container {
    padding: 0;
}

事件监听

template
    <div class="dialog-container">
        <pk-cell-group>
            <pk-cell is-link @click="openEventDialog">
                <template #title>事件监听</template>
            </pk-cell>
        </pk-cell-group>
    </div>
script
import { Dialog, PkCellGroup, PkCell } from '@pumpkin-ui/mobile'

const openEventDialog = () => {
    Dialog.show({
        message: '我是内容',
        onClose: () => {
            console.log('关闭了')
        },
        onClosed: () => {
            console.log('关闭动画结束了')
        },
        onOpen: () => {
            console.log('打开了')
        },
        onOpened: () => {
            console.log('打开动画结束了')
        },
        onConfirm: () => {
            console.log('点击了确定')
            Toast.show('点击了确定')
        },
        onCancel: () => {
            console.log('点击了取消')
            Toast.show('点击了取消')
        }
    }).then((res => {
        console.log(`promise结果:${JSON.stringify(res)}`)
    }))
}

style
.dialog-container {
    padding: 0;
}

点击遮罩关闭

可通过设置closeOnPressOverlay为true来开启点击遮罩关闭功能,默认为false。

template
    <div class="dialog-container">
        <pk-cell-group>
            <pk-cell is-link @click="Dialog.show({
                message: '我是内容',
                closeOnPressOverlay: true
            })">
                <template #title>点击遮罩层关闭</template>
            </pk-cell>
        </pk-cell-group>
    </div>
script
import { Dialog, PkCellGroup, PkCell } from '@pumpkin-ui/mobile'

style
.dialog-container {
    padding: 0;
}

API

命令式调用

方法

方法说明类型
Dialog.show显示对话框 (option: DialogOptions | string) => Promise<DialogCallbackParams>

DialogOptions

属性名说明类型默认值
title对话框标题string
message对话框内容string
messageAlign对话框内容对齐方式'left'|'center'|'right'center
showClose是否显示关闭按钮booleanfalse
showConfirmButton是否显示确认按钮booleantrue
confirmButtonText确认按钮文本string确认
confirmButtonColor确认按钮文本颜色string
showCancelButton是否显示取消按钮booleantrue
cancelButtonText取消按钮文本string取消
cancelButtonColor取消文本颜色string
buttonReverse按钮顺序反转booleanfalse
overlay是否显示遮罩层booleantrue
overlayBackgroundColor遮罩层背景颜色string
closeOnPressOverlay点击遮罩层是否关闭booleanfalse
onCancel对话框点击取消或触发点击遮罩关闭时触发的回调()=>void
onConfirm对话框点击确认时触发的回调()=>void
onClose对话框关闭时触发的回调()=>void
onClosed对话框关闭动画结束时触发的回调()=>void
onOpen对话框打开时触发的回调()=>void
onOpened对话框打开动画结束时触发的回调()=>void

DialogCallbackParams

属性名说明类型默认值
type类型'confirm'|'cancel'

Props

属性名说明类型默认值可选值
v-model对话框显示,双向绑定booleanfalse
overlay是否显示遮罩层booleantrue
overlay-background-color遮罩层背景颜色string
title对话框标题string
message对话框内容string
message-align对话框内容对齐方式'left'|'center'|'right'
show-close是否显示关闭按钮booleanfalse
show-confirm-button是否显示确认按钮booleantrue
confirm-button-text确认按钮文本string确认
confirm-button-color确认按钮文本颜色string
show-cancel-button是否显示取消按钮booleantrue
cancel-button-text取消按钮文本string取消
cancel-button-color取消文本颜色string
button-reverse按钮顺序反转booleanfalse
close-on-press-overlay点击遮罩层关闭booleanfalse

Events

事件名说明回调参数
onOpen打开时触发() => void
onClose打开时触发() => void
onOpened打开动画结束时触发() => void
onClosed关闭动画结束时触发() => void
onCancel点击取消时的回调()=>void
onConfirm确认时触发的回调()=>void

Slot

插槽名说明
title标题区域插槽
default内容区域插槽
action底部按钮区域插槽
close关闭按钮图标区域插槽

Exposes

名称说明类型说明
updateShow更新对话框显示(show:boolean = true)=>void

样式变量

名称默认值说明
--pk-dialog-padding-horizontal24px
--pk-dialog-padding-vertical16px
--pk-dialog-backgroundvar(--pk-bg-color)
--pk-dialog-width80vw
--pk-dialog-title-font-size18px
--pk-dialog-title-font-colorvar(--pk-text-color)
--pk-dialog-border-radius16px
--pk-dialog-content-padding-vertical16px
--pk-dialog-content-font-size16px
--pk-dialog-content-font-colorvar(--pk-text-color-secondary)
--pk-dialog-action-padding-vertical4px
--pk-dialog-close-top13px
--pk-dialog-close-right13px
--pk-dialog-close-size20px
Last Updated:
Contributors: yranky
Prev
Skeleton 骨架屏