Yt-UI
首页
快速开始
组件文档
首页
快速开始
组件文档
  • 表单组件

    • 输入框 Input
    • 多行输入框 Textarea
    • 开关 Switch
    • 多选框组 CheckboxGroup
    • 单选框组 RadioGroup
    • 滑块 Slider
    • 选择器 Picker
    • 日历 Calendar
    • 表单 Form
  • 展示组件

    • 头像 Avatar
    • 徽标 Badge
    • 卡片 Card
    • 标签 Tag
    • 步骤条 Steps
    • 结果页 Result
    • 空状态 Empty
    • 虚拟列表 VirtualList
  • 交互组件

    • 按钮 Button
    • 悬浮按钮 FAB
    • 图标 Icon
    • 搜索 Search
    • 分段器 Segment
    • 轮播 Swiper
    • 指示点 Dots
  • 反馈组件

    • 加载 Loading
    • 弹窗 Popup
    • 遮罩层 Overlay
    • 通告栏 NoticeBar
  • 导航组件

    • 标签栏 Tabbar
    • 顶部标签栏 TopTabbar
    • 折叠面板 Collapse
    • 课程表 Schedule
  • 布局组件

    • 分割线 Divider
    • 链接 Line
    • 可移动视图 MovableView

yt-popup 弹窗组件

属性

属性名类型默认值说明
widthnumber | string'70vw'弹窗宽度
heightnumber | string'70vh'弹窗高度
maxWidthnumber | string'none'最大宽度
maxHeightnumber | string'none'最大高度
bgColorstring'#ffffff'背景颜色
overlayColorstring'#00000080'遮罩颜色
visiblebooleanfalse是否显示
zIndexnumber1000层级
placement'top' | 'bottom' | 'left' | 'right' | 'center''bottom'弹出位置
borderRadiusnumber | string10圆角大小
durationnumber200动画时长
closeOnOverlayClickbooleantrue点击遮罩关闭
destroyOnClosebooleanfalse关闭时销毁
headerType'close-only' | 'cancel-confirm' | 'none''none'头部类型
headerPropsHeaderProps() => ({...})头部配置

HeaderProps 类型

interface HeaderProps {
  title?: string           // 标题
  cancelName?: string      // 取消按钮文本
  confirmName?: string     // 确认按钮文本
  cancelFn?: () => void    // 取消回调
  confirmFn?: () => void   // 确认回调
  closeSide?: 'left' \| 'right'  // 关闭按钮位置
}

事件

事件名参数说明
update:visiblevalue: boolean控制显示
overlayClicke: Event点击遮罩
open-开始打开
opened-打开完成
close-开始关闭
closed-关闭完成

示例

底部弹窗

<yt-popup :visible="show" placement="bottom">
  <view>内容</view>
</yt-popup>

顶部弹窗

<yt-popup :visible="show" placement="top">
  <view>顶部内容</view>
</yt-popup>

居中弹窗

<yt-popup :visible="show" placement="center" width="300" height="400">
  <view>居中弹窗</view>
</yt-popup>

侧边弹窗

<yt-popup :visible="show" placement="left" width="250">
  <view>左侧菜单</view>
</yt-popup>

<yt-popup :visible="show" placement="right" width="300">
  <view>右侧抽屉</view>
</yt-popup>

带标题弹窗

<yt-popup :visible="show" header-type="close-only" :header-props="{ title: '标题' }">
  <view>内容区</view>
</yt-popup>

带按钮弹窗

<yt-popup
  :visible="show"
  header-type="cancel-confirm"
  :header-props="{
    title: '确认删除',
    cancelFn: () => (show = false),
    confirmFn: handleDelete
  }"
>
  <view>确定要删除吗?</view>
</yt-popup>

自定义尺寸

<yt-popup :visible="show" :width="400" :height="300" maxWidth="90vw">
  <view>自定义尺寸</view>
</yt-popup>

<yt-popup :visible="show" width="80%" height="60vh">
  <view>百分比尺寸</view>
</yt-popup>

自定义样式

<yt-popup
  :visible="show"
  bgColor="#f8f9fa"
  overlayColor="rgba(0,0,0,0.4)"
  :borderRadius="20"
  :duration="300"
>
  <view>自定义样式</view>
</yt-popup>

事件处理

<yt-popup
  :visible="show"
  @overlayClick="handleOverlay"
  @open="handleOpen"
  @opened="handleOpened"
  @close="handleClose"
  @closed="handleClosed"
>
  <view>事件演示</view>
</yt-popup>

控制关闭

<yt-popup :visible="show" :closeOnOverlayClick="false">
  <view>点击遮罩不关闭</view>
  <yt-button @click="show = false">手动关闭</yt-button>
</yt-popup>

销毁控制

<yt-popup :visible="show" :destroyOnClose="true">
  <view>关闭时销毁</view>
</yt-popup>

完整示例

<yt-popup
  :visible="showModal"
  placement="center"
  :width="350"
  :height="450"
  :maxWidth="400"
  :maxHeight="500"
  bgColor="#fff"
  overlayColor="rgba(0,0,0,0.5)"
  :zIndex="1000"
  :borderRadius="12"
  :duration="300"
  :closeOnOverlayClick="true"
  :destroyOnClose="false"
  header-type="cancel-confirm"
  :header-props="{
    title: '编辑信息',
    cancelName: '取消',
    confirmName: '保存',
    cancelFn: () => (showModal = false),
    confirmFn: handleSave,
    closeSide: 'right'
  }"
  @overlayClick="handleOverlay"
  @opened="onModalOpened"
  @closed="onModalClosed"
>
  <view class="form">
    <yt-input v-model="form.name" placeholder="姓名" />
    <yt-input v-model="form.email" placeholder="邮箱" />
  </view>
</yt-popup>
最近更新:: 2026/1/2 20:18
Contributors: CHEEMS
Prev
加载 Loading
Next
遮罩层 Overlay