Skip to content

FaModal 对话框

模态对话框组件,支持拖拽、最大化、自定义内容和多种显示模式。

使用场景

  • 确认对话框
  • 表单编辑
  • 详情展示
  • 消息提示(alert)
  • 警告提示
  • 配置设置

Props

属性类型默认值说明
idstring-对话框唯一标识
modelValuebooleanfalse是否打开对话框
zIndexnumber2000层级
titlestring | () => string-标题
descriptionstring | () => string-描述文字
icon'info' | 'success' | 'warning' | 'error'-图标类型
loadingbooleanfalse是否显示加载状态
closablebooleantrue是否显示关闭按钮
maximizebooleanfalse是否最大化
maximizablebooleanfalse是否显示最大化按钮
draggablebooleanfalse是否可拖拽
centerbooleanfalse内容是否居中
borderbooleantrue是否有边框分割线
alignCenterbooleanfalse对话框是否垂直居中
overlaybooleantrue是否显示遮罩
overlayBlurbooleanfalse遮罩是否模糊
showConfirmButtonbooleantrue是否显示确定按钮
showCancelButtonbooleanfalse是否显示取消按钮
confirmButtonTextstring | () => string'确定'确定按钮文字
cancelButtonTextstring | () => string'取消'取消按钮文字
confirmButtonDisabledbooleanfalse确定按钮是否禁用
confirmButtonLoadingbooleanfalse确定按钮加载状态
beforeClose(action, done) => void-关闭前回调
headerbooleantrue是否显示头部
footerbooleantrue是否显示底部
closeOnClickOverlaybooleantrue点击遮罩是否关闭
closeOnPressEscapebooleantrue按 ESC 是否关闭
destroyOnClosebooleantrue关闭时销毁内容
openAutoFocusbooleanfalse打开时自动聚焦
classHTMLAttributes['class']-外层 CSS 类
headerClassHTMLAttributes['class']-头部 CSS 类
contentClassHTMLAttributes['class']-内容区 CSS 类
footerClassHTMLAttributes['class']-底部 CSS 类

Slots

名称说明
header自定义头部内容
default对话框主体内容
footer自定义底部内容

Events

事件名说明
update:modelValue打开状态变化时触发
open打开时触发
opened打开动画完成后触发
close关闭时触发
closed关闭动画完成后触发
confirm点击确定按钮时触发
cancel点击取消按钮时触发

API

函数式调用

vue
<script setup lang="ts">
const modal = useFaModal()

function showAlert() {
  modal.info({
    title: '提示',
    content: '这是一条提示信息',
    onConfirm: () => {
      console.log('确认')
    },
  })
}

function showSuccess() {
  modal.success({
    title: '成功',
    content: '操作成功完成',
  })
}

function showConfirm() {
  modal.confirm({
    title: '确认',
    content: '确定要删除吗?',
    onConfirm: () => {
      console.log('删除')
    },
  })
}

function showError() {
  modal.error({
    title: '错误',
    content: '操作失败',
  })
}

function showWarning() {
  modal.warning({
    title: '警告',
    content: '此操作有风险',
  })
}
</script>

<template>
  <div class="flex gap-2">
    <FaButton @click="showAlert">信息提示</FaButton>
    <FaButton @click="showSuccess">成功提示</FaButton>
    <FaButton @click="showConfirm">确认对话框</FaButton>
    <FaButton @click="showError">错误提示</FaButton>
    <FaButton @click="showWarning">警告提示</FaButton>
  </div>
</template>

注意事项

  1. v-model 绑定:使用 v-model 控制对话框打开状态
  2. 图标类型icon 支持 infosuccesswarningerror 四种
  3. 关闭回调beforeClose 接收 actionconfirm/cancel/close)和 done 函数
  4. 拖拽限制:拖拽仅在有标题栏且非最大化状态下有效
  5. 动画事件openedclosed 在动画完成后触发
  6. 函数式调用useFaModal() 提供 infosuccesswarningerrorconfirm 方法