|
@@ -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 },
|
|
|
});
|