ai-modal.md 2.4 KB

AiModal AI 模态框

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

使用方式

<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() 覆盖)

属性 类型 默认值 说明
width String '520px' 模态框宽度
title String - 标题
closable Boolean true 显示关闭按钮
maskClosable Boolean false 点击遮罩关闭
draggable Boolean true 是否可拖拽
cancelText String '取消' 取消按钮文字
okText String '确定' 确认按钮文字
showFooter Boolean true 显示底部按钮区
showCancel Boolean true 显示取消按钮
showOk Boolean true 显示确认按钮
cancelType String 'default' 取消按钮类型
okType String 'primary' 确认按钮类型
cancelGhost Boolean false 取消按钮幽灵模式
okGhost Boolean false 确认按钮幽灵模式
modalStyle Object - 模态框自定义样式
contentStyle Object - 内容区自定义样式
segmented Boolean/Object - 分段样式
showHeader Boolean true 显示头部
showHeaderExtra Boolean true 显示头部额外操作区
onOk Function - 确认回调(可返回 Promise / boolean)
onCancel Function - 取消回调
onClose Function - 关闭回调

暴露方法

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

暴露属性

属性 类型 说明
show Ref<boolean> 当前显示状态
okLoading Ref<boolean> 确认按钮 loading 状态
options Object 当前配置选项

依赖

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