介绍
对 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
| 方法名称 | 示例 | 参数 | 说明 |
|---|---|---|---|
| useModal | const [register, { openModal, setModalProps }] = useModal() | - | 创建 Modal 实例方法 |
| useModalInner | const [register, { closeModal, setModalProps }] = useModalInner(callback); | callBack | 组件内部使用 |
| register | - | - | 把 Modal 实例绑定到组件上 |
| openModal | openModal(true, data); | boolean,any | 用于打开/关闭弹窗 |
| closeModal | closeModal(); | - | 用于关闭弹窗 |
| setModalProps | setModalProps(props); | ModalProps | 设置 Modal 内参数 |
| changeOkLoading | changeOkLoading(true); //只支持useModalInner | boolean | 用于修改确认按钮的 loading 状态 |
| changeLoading | changeLoading(true); //只支持useModalInner | boolean | 用于修改确认按钮的 loading 状态 |
属性 ModalProps
除以下参数外,组件库文档内的 props 也都支持,具体可以参考 antv modal
| 方法名称 | 类型 | 默认值 | 可选值 | 说明 |
|---|---|---|---|---|
| title | string | - | - | modal 标题 |
| height | number | - | - | modal 内容区域的固定高度 minHineght 优先 |
| minHeight | number | - | - | modal 最小高度 |
| draggable | boolean | true | true|false | 是否开启拖拽 |
| useWrapper | boolean | true | true|false | 是否开启自适应高度,开启后会跟随屏幕变化自适应内容,并出现滚动条 |
| wrapperFooterOffset | number | 0 | true|false | 启用 wrapper 后 底部可以适当增加高度 |
| canFullscreen | boolean | true | true|false | 是否可以进行全屏 |
| defaultFullscreen | boolean | false | true|false | 默认全屏 |
| loading | boolean | false | true|false | loading 状态 |
| loadingTip | string | - | - | loading 文本 |
| showCancelBtn | boolean | true | true|false | 显示关闭按钮 |
| showOkBtn | boolean | true | true|false | 显示确认按钮 |
| helpMessage | string , string[] | - | - | 标题右侧提示文本 |
| centered | boolean | false | true|false | 是否居中弹窗 |
| cancelText | string | 关闭 | - | 关闭按钮文本 |
| okText | string | 确认 | true|false | 确认按钮文本 |
| closeFunc | () => Promise | 关闭函数 | - | 关闭前执行,返回 true 则关闭,否则不关闭 |
Events
| 事件 | 回调参数 | 说明 |
|---|---|---|
| ok | function(e) | 点击确定回调 |
| cancel | function(e) | 点击取消回调 |
| visible-change | (visible:boolean)=>{} | 打开或者关闭触发 |
slots
| 名称 | 说明 |
|---|---|
default | 默认区域 |
closeIcon | 右上角关闭按钮 |
title | 标题 |
footer | 底部区域 |
insertFooter | 关闭按钮的左边(不使用 footer 插槽时有效) |
centerFooter | 关闭按钮和确认按钮的中间(不使用 footer 插槽时有效) |
appendFooter | 确认按钮的右边(不使用 footer 插槽时有效) |