import type { PropType, CSSProperties } from 'vue'; import type { ModalWrapperProps } from './typing'; import { ButtonProps } from 'ant-design-vue/es/button/buttonTypes'; export const modalProps = { visible: { type: Boolean }, scrollTop: { type: Boolean, default: true }, height: { type: Number }, minHeight: { type: Number }, // open drag draggable: { type: Boolean, default: true }, centered: { type: Boolean }, cancelText: { type: String, default: '取消' }, okText: { type: String, default: '确定' }, closeFunc: Function as PropType<() => Promise>, }; export const basicProps = Object.assign({}, modalProps, { defaultFullscreen: { type: Boolean }, // 全屏 canFullscreen: { type: Boolean, default: true }, // 开启是适应高度后,如果超过屏幕高度,底部和顶部会保持一样的间距,该参数可以用来缩小底部的间距 wrapperFooterOffset: { type: Number, default: 0 }, // 标题右侧提示文本 helpMessage: [String, Array] as PropType, // 是否开启自适应高度,开启后会跟随屏幕变化自适应内容,并出现滚动条 useWrapper: { type: Boolean, default: true }, loading: { type: Boolean }, loadingTip: { type: String }, //显示取消按钮 showCancelBtn: { type: Boolean, default: true }, //显示确认按钮 showOkBtn: { type: Boolean, default: true }, wrapperProps: Object as PropType>, afterClose: Function as PropType<() => Promise>, bodyStyle: Object as PropType, closable: { type: Boolean, default: true }, closeIcon: Object as PropType, confirmLoading: { type: Boolean }, destroyOnClose: { type: Boolean }, footer: Object as PropType, getContainer: Function as PropType<() => any>, mask: { type: Boolean, default: true }, maskClosable: { type: Boolean, default: true }, keyboard: { type: Boolean, default: true }, maskStyle: Object as PropType, okType: { type: String, default: 'primary' }, okButtonProps: Object as PropType, cancelButtonProps: Object as PropType, title: { type: String }, visible: { type: Boolean }, width: [String, Number] as PropType, wrapClassName: { type: String }, zIndex: { type: Number }, });