import React, { ReactNode } from 'react'; import type { ModalProps, DrawerProps, FormInstance } from 'antd'; import { ProFormProps } from '../ProForm/propsType'; export type DrawerSizePropsType = 'small' | 'middle' | 'large'; export type ShowTypePropsType = 'Modal' | 'Drawer'; export interface ProDrawerFormRef { form: FormInstance; } export interface ProDrawerFormPropsType { /** @name 内部form */ form?: FormInstance; /** @name 自定义className */ className?: string; /** @name 控制显示隐藏 */ visible?: ModalProps['open'] | DrawerProps['open']; /** @name 控制显示隐藏 */ open: ModalProps['open'] | DrawerProps['open']; /** @name 标题 */ title?: ModalProps['title'] | DrawerProps['title']; /** @name 点击蒙层是否允许关闭 */ maskClosable?: ModalProps['maskClosable'] | DrawerProps['maskClosable']; /** @name 禁止选项 */ disabled?: boolean | undefined; /** @name 是否查看模式 */ isView?: boolean | undefined; /** @name 宽度 */ width?: ModalProps['width'] | DrawerProps['width']; /** * @name 取消按钮文字 */ cancelText?: ModalProps['cancelText']; /** * @name 确认按钮文字 */ okText?: ModalProps['okText']; /** * @name 确认按钮loading */ okLoading?: boolean; /** * @name 确认按钮disabled */ okDisabled?: boolean; /** @name 显示方式 (废弃) */ showType?: ShowTypePropsType; /** @name 显示方式 */ mode?: ShowTypePropsType; /** @name 尺寸 */ size?: DrawerSizePropsType; /** * @name自动选中第一项 * @description 只对有input的类型有效 */ autoFocusFirstInput?: boolean; /** * @name 关闭时是否开启二次确认弹框 * @description 只对Drawer的类型有效 */ isConfirmClose?: boolean; /** * @name 关闭时二次确认弹框的属性 * @description 只对Drawer的类型有效 */ isConfirmCloseModalProps?: ModalProps; /** * @name 底部默认取消按钮事件 */ onCancel?: () => Promise | boolean | void | unknown; /** * @name 底部默认确定按钮事件 */ onOk?: (values?: any, form?: FormInstance) => Promise | boolean | void | unknown; /** * @name 底部自定义按钮配置 */ footer?: ReactNode | ReactNode[]; /** * @name 底部左侧自定义渲染 */ extraLeft?: ReactNode; /** * @name proForm的属性 配置后children不展示 */ proFormProps?: Omit; /** * 不支持 'visible',请使用全局的 visible * @name 弹框的属性 */ modalProps?: Omit; /** * 不支持 'visible',请使用全局的 visible * @name 抽屉的属性 */ drawerProps?: Omit; children?: React.ReactNode; }