Skip to content

介绍

Antdv 3.x的 modal 组件进行封装,扩展拖拽,全屏,自适应高度等功能

使用

vue
<template>
  <BasicModal title="欢迎使用" @register="registerModal" @ok="onOk">
    <template #footer> <BasicModalFooter okText="保存" cancelText="不保存" /> </template>
  </BasicModal>
  <Button @click="openModal">展开</Button>
</template>
<script lang="ts" setup>
  import { BasicModal, useModal, useModalInner, BasicModalFooter } from 'lanven-ui';
  import { Button } from 'ant-design-vue';
  const [registerModal, { openModal, closeModal }] = useModal();
</script>

methods

方法名称示例参数说明
useModalconst [register, { openModal, setModalProps }] = useModal()-创建 Modal 实例方法
useModalInnerconst [register, { closeModal, setModalProps }] = useModalInner(callback);callBack组件内部使用
register--把 Modal 实例绑定到组件上
openModal openModal(true, data);boolean,any用于打开/关闭弹窗
closeModal closeModal();-用于关闭弹窗
setModalPropssetModalProps(props);ModalProps设置 Modal 内参数
changeOkLoadingchangeOkLoading(true); //只支持useModalInnerboolean用于修改确认按钮的 loading 状态
changeLoadingchangeLoading(true); //只支持useModalInnerboolean用于修改确认按钮的 loading 状态

属性 ModalProps

除以下参数外,组件库文档内的 props 也都支持,具体可以参考 antv modal

方法名称类型默认值可选值说明
titlestring--modal 标题
heightnumber--modal 内容区域的固定高度 minHineght 优先
minHeightnumber--modal 最小高度
draggablebooleantruetrue|false是否开启拖拽
useWrapperbooleantruetrue|false是否开启自适应高度,开启后会跟随屏幕变化自适应内容,并出现滚动条
wrapperFooterOffsetnumber0true|false启用 wrapper 后 底部可以适当增加高度
canFullscreenbooleantruetrue|false是否可以进行全屏
defaultFullscreenbooleanfalsetrue|false默认全屏
loadingbooleanfalsetrue|falseloading 状态
loadingTipstring--loading 文本
showCancelBtnbooleantruetrue|false显示关闭按钮
showOkBtnbooleantruetrue|false显示确认按钮
helpMessagestring , string[]--标题右侧提示文本
centeredbooleanfalsetrue|false是否居中弹窗
cancelTextstring关闭-关闭按钮文本
okTextstring确认true|false确认按钮文本
closeFunc() => Promise关闭函数-关闭前执行,返回 true 则关闭,否则不关闭

Events

事件回调参数说明
okfunction(e)点击确定回调
cancelfunction(e)点击取消回调
visible-change(visible:boolean)=>{}打开或者关闭触发

slots

名称说明
default默认区域
closeIcon右上角关闭按钮
title标题
footer底部区域
insertFooter关闭按钮的左边(不使用 footer 插槽时有效)
centerFooter关闭按钮和确认按钮的中间(不使用 footer 插槽时有效)
appendFooter确认按钮的右边(不使用 footer 插槽时有效)