Skip to content

AiModal AI 模态框

可配置、可拖拽的模态对话框,基于 Naive UI n-modal + n-card 构建。

使用方式

vue
<template>
  <ai-modal ref="modalRef">
    <div>模态框内容</div>
  </ai-modal>

  <n-button @click="openModal">打开</n-button>
</template>

<script setup>
import { ref } from 'vue'

const modalRef = ref()

function openModal() {
  modalRef.value.open({
    title: '编辑',
    width: '600px',
    okText: '保存',
    onOk: async () => {
      await saveData()
      return true  // 返回 true 关闭模态框
    }
  })
}
</script>

Props(默认值可通过 open() 覆盖)

属性类型默认值说明
widthString'520px'模态框宽度
titleString-标题
closableBooleantrue显示关闭按钮
maskClosableBooleanfalse点击遮罩关闭
draggableBooleantrue是否可拖拽
cancelTextString'取消'取消按钮文字
okTextString'确定'确认按钮文字
showFooterBooleantrue显示底部按钮区
showCancelBooleantrue显示取消按钮
showOkBooleantrue显示确认按钮
cancelTypeString'default'取消按钮类型
okTypeString'primary'确认按钮类型
cancelGhostBooleanfalse取消按钮幽灵模式
okGhostBooleanfalse确认按钮幽灵模式
modalStyleObject-模态框自定义样式
contentStyleObject-内容区自定义样式
segmentedBoolean/Object-分段样式
showHeaderBooleantrue显示头部
showHeaderExtraBooleantrue显示头部额外操作区
onOkFunction-确认回调(可返回 Promise / boolean)
onCancelFunction-取消回调
onCloseFunction-关闭回调

暴露方法

方法说明
open(options)打开模态框,传入配置选项
close()关闭模态框
handleOk()触发确认逻辑
handleCancel()触发取消逻辑

暴露属性

属性类型说明
showRef<boolean>当前显示状态
okLoadingRef<boolean>确认按钮 loading 状态
optionsObject当前配置选项

依赖

  • naive-ui
  • ./utils.js(拖拽初始化)