import { stockcontrollerCreatestockpoint, stockcontrollerDelstockpoints, stockcontrollerGetstockpoints, stockcontrollerUpdatestockpoint, } from '@/servers/api/stock'; import { EditOutlined, PlusOutlined } from '@ant-design/icons'; import { ActionType, DrawerForm, PageContainer, ProColumns, ProForm, ProFormSelect, ProFormText, ProTable, } from '@ant-design/pro-components'; import { request } from '@umijs/max'; import { App, Button, Divider, Popconfirm, Space, Tag } from 'antd'; import { useRef } from 'react'; // 区域数据项类型 interface AreaItem { code: string; name: string; } const ListPage: React.FC = () => { const { message } = App.useApp(); const actionRef = useRef(); const columns: ProColumns[] = [ { title: '名称', dataIndex: 'name', }, { title: '地址', dataIndex: 'location', }, { title: '联系人', dataIndex: 'contactPerson', }, { title: '联系电话', dataIndex: 'contactPhone', }, { title: '区域', dataIndex: 'areas', render: (_, record: any) => { if (!record.areas || record.areas.length === 0) { return 全球; } return ( {record.areas.map((area: any) => ( {area.name} ))} ); }, }, { title: '创建时间', dataIndex: 'createdAt', valueType: 'dateTime', }, { title: '操作', dataIndex: 'option', valueType: 'option', render: (_, record) => ( <> { try { const { success, message: errMsg } = await stockcontrollerDelstockpoints({ id: record.id as number, }); if (!success) { throw new Error(errMsg); } actionRef.current?.reload(); } catch (error: any) { message.error(error.message); } }} > ), }, ]; return ( headerTitle="查询表格" actionRef={actionRef} rowKey="id" request={async (params) => { const { data, success } = await stockcontrollerGetstockpoints(params); return { total: data?.total || 0, data: data?.items || [], success, }; }} columns={columns} toolBarRender={() => []} search={false} /> ); }; const CreateForm: React.FC<{ tableRef: React.MutableRefObject; }> = ({ tableRef }) => { const { message } = App.useApp(); return ( title="新建" trigger={ } autoFocusFirstInput drawerProps={{ destroyOnHidden: true, }} onFinish={async (values) => { try { const { success, message: errMsg } = await stockcontrollerCreatestockpoint(values); if (!success) { throw new Error(errMsg); } tableRef.current?.reload(); message.success('提交成功'); return true; } catch (error: any) { message.error(error.message); } }} > { try { const resp = await request('/area', { method: 'GET', params: { pageSize: 1000 }, }); if (resp.success) { return resp.data.list.map((area: AreaItem) => ({ label: area.name, value: area.code, })); } return []; } catch (e) { return []; } }} /> ); }; const UpdateForm: React.FC<{ tableRef: React.MutableRefObject; values: API.StockPoint; }> = ({ tableRef, values: initialValues }) => { const { message } = App.useApp(); return ( title="编辑" initialValues={{ ...initialValues, areas: (initialValues as any).areas?.map((area: any) => area.code) ?? [], }} trigger={ } autoFocusFirstInput drawerProps={{ destroyOnHidden: true, }} onFinish={async (values) => { try { const { success, message: errMsg } = await stockcontrollerUpdatestockpoint( { id: initialValues.id as number }, values, ); if (!success) { throw new Error(errMsg); } message.success('提交成功'); tableRef.current?.reload(); return true; } catch (error: any) { message.error(error.message); } }} > { try { const resp = await request('/area', { method: 'GET', params: { pageSize: 1000 }, }); if (resp.success) { return resp.data.list.map((area: AreaItem) => ({ label: area.name, value: area.code, })); } return []; } catch (e) { return []; } }} /> ); }; export default ListPage;