|
|
|
@ -1,45 +1,44 @@ |
|
|
|
import type { PropType, CSSProperties } from 'vue'; |
|
|
|
import type { ModalWrapperProps } from './typing'; |
|
|
|
import { ButtonProps } from 'ant-design-vue/es/button/buttonTypes'; |
|
|
|
|
|
|
|
import { useI18n } from '/@/hooks/web/useI18n'; |
|
|
|
import { propTypes, VueNode } from '/@/utils/propTypes'; |
|
|
|
import type { ModalWrapperProps } from './types'; |
|
|
|
|
|
|
|
const { t } = useI18n(); |
|
|
|
|
|
|
|
export const modalProps = { |
|
|
|
visible: propTypes.bool, |
|
|
|
scrollTop: propTypes.bool.def(true), |
|
|
|
height: propTypes.number, |
|
|
|
minHeight: propTypes.number, |
|
|
|
visible: { type: Boolean }, |
|
|
|
scrollTop: { type: Boolean, default: true }, |
|
|
|
height: { type: Number }, |
|
|
|
minHeight: { type: Number }, |
|
|
|
// open drag
|
|
|
|
draggable: propTypes.bool.def(true), |
|
|
|
centered: propTypes.bool, |
|
|
|
cancelText: propTypes.string.def(t('common.cancelText')), |
|
|
|
okText: propTypes.string.def(t('common.okText')), |
|
|
|
draggable: { type: Boolean, default: true }, |
|
|
|
centered: { type: Boolean }, |
|
|
|
cancelText: { type: String, default: t('common.cancelText') }, |
|
|
|
okText: { type: String, default: t('common.okText') }, |
|
|
|
|
|
|
|
closeFunc: Function as PropType<() => Promise<boolean>>, |
|
|
|
}; |
|
|
|
|
|
|
|
export const basicProps = Object.assign({}, modalProps, { |
|
|
|
defaultFullscreen: propTypes.bool, |
|
|
|
defaultFullscreen: { type: Boolean }, |
|
|
|
// Can it be full screen
|
|
|
|
canFullscreen: propTypes.bool.def(true), |
|
|
|
canFullscreen: { type: Boolean, default: true }, |
|
|
|
// After enabling the wrapper, the bottom can be increased in height
|
|
|
|
wrapperFooterOffset: propTypes.number.def(0), |
|
|
|
wrapperFooterOffset: { type: Number, default: 0 }, |
|
|
|
// Warm reminder message
|
|
|
|
helpMessage: [String, Array] as PropType<string | string[]>, |
|
|
|
// Whether to setting wrapper
|
|
|
|
useWrapper: propTypes.bool.def(true), |
|
|
|
loading: propTypes.bool, |
|
|
|
loadingTip: propTypes.string, |
|
|
|
useWrapper: { type: Boolean, default: true }, |
|
|
|
loading: { type: Boolean }, |
|
|
|
loadingTip: { type: String }, |
|
|
|
/** |
|
|
|
* @description: Show close button |
|
|
|
*/ |
|
|
|
showCancelBtn: propTypes.bool.def(true), |
|
|
|
showCancelBtn: { type: Boolean, default: true }, |
|
|
|
/** |
|
|
|
* @description: Show confirmation button |
|
|
|
*/ |
|
|
|
showOkBtn: propTypes.bool.def(true), |
|
|
|
showOkBtn: { type: Boolean, default: true }, |
|
|
|
|
|
|
|
wrapperProps: Object as PropType<Partial<ModalWrapperProps>>, |
|
|
|
|
|
|
|
@ -47,38 +46,38 @@ export const basicProps = Object.assign({}, modalProps, { |
|
|
|
|
|
|
|
bodyStyle: Object as PropType<CSSProperties>, |
|
|
|
|
|
|
|
closable: propTypes.bool.def(true), |
|
|
|
closable: { type: Boolean, default: true }, |
|
|
|
|
|
|
|
closeIcon: Object as PropType<VueNode>, |
|
|
|
|
|
|
|
confirmLoading: propTypes.bool, |
|
|
|
confirmLoading: { type: Boolean }, |
|
|
|
|
|
|
|
destroyOnClose: propTypes.bool, |
|
|
|
destroyOnClose: { type: Boolean }, |
|
|
|
|
|
|
|
footer: Object as PropType<VueNode>, |
|
|
|
|
|
|
|
getContainer: Function as PropType<() => any>, |
|
|
|
|
|
|
|
mask: propTypes.bool.def(true), |
|
|
|
mask: { type: Boolean, default: true }, |
|
|
|
|
|
|
|
maskClosable: propTypes.bool.def(true), |
|
|
|
keyboard: propTypes.bool.def(true), |
|
|
|
maskClosable: { type: Boolean, default: true }, |
|
|
|
keyboard: { type: Boolean, default: true }, |
|
|
|
|
|
|
|
maskStyle: Object as PropType<CSSProperties>, |
|
|
|
|
|
|
|
okType: propTypes.string.def('primary'), |
|
|
|
okType: { type: String, default: 'primary' }, |
|
|
|
|
|
|
|
okButtonProps: Object as PropType<ButtonProps>, |
|
|
|
|
|
|
|
cancelButtonProps: Object as PropType<ButtonProps>, |
|
|
|
|
|
|
|
title: propTypes.string, |
|
|
|
title: { type: String }, |
|
|
|
|
|
|
|
visible: propTypes.bool, |
|
|
|
visible: { type: Boolean }, |
|
|
|
|
|
|
|
width: [String, Number] as PropType<string | number>, |
|
|
|
|
|
|
|
wrapClassName: propTypes.string, |
|
|
|
wrapClassName: { type: String }, |
|
|
|
|
|
|
|
zIndex: propTypes.number, |
|
|
|
zIndex: { type: Number }, |
|
|
|
}); |
|
|
|
|