import { sitecontrollerAll } from '@/servers/api/site'; import { SyncOutlined } from '@ant-design/icons'; import { ActionType, DrawerForm, ProForm, ProFormSelect, ProFormDateRangePicker, } from '@ant-design/pro-components'; import { Button } from 'antd'; import dayjs from 'dayjs'; import React from 'react'; // 定义SyncForm组件的props类型 interface SyncFormProps { tableRef: React.MutableRefObject; onFinish: (values: any) => Promise; siteId?: string; dateRange?: [dayjs.Dayjs, dayjs.Dayjs]; } /** * 同步订单的表单组件 * @param {SyncFormProps} props 组件属性 * @returns {React.ReactElement} 抽屉表单 */ const SyncForm: React.FC = ({ tableRef, onFinish, siteId, dateRange }) => { // 使用 antd 的 App 组件提供的 message API const [loading, setLoading] = React.useState(false); if (siteId) { return ( ); } // 返回一个抽屉表单 return ( initialValues={{ dateRange: [dayjs().subtract(1, 'week'), dayjs()], }} title="同步订单" // 表单的触发器,一个带图标的按钮 trigger={ } // 自动聚焦第一个输入框 autoFocusFirstInput // 抽屉关闭时销毁内部组件 drawerProps={{ destroyOnHidden: true, }} // 表单提交成功后的回调 onFinish={onFinish} > {/* 站点选择框 */} { const { data = [] } = await sitecontrollerAll(); // 将返回的数据格式化为 ProFormSelect 需要的格式 return data.map((item: any) => ({ label: item.name || String(item.id), value: item.id, })); }} /> { return { dateRange: value, }; }} fieldProps={{ showTime: false, style: { width: '100%' }, }} /> ); }; export default SyncForm;