import ButtonConfirm from '@/components/ButtomConfirm'; import { RESPONSE_CODE } from '@/constants/enum'; import AddOrUpdate from '@/pages/product/productCollect/components/AddOrUpdate'; import { postProductCollectBillDelete, postProductCollectBillPage, postServiceConstProductCollectBillStatus, } from '@/services'; import { enumToSelect } from '@/utils'; import { ProTable, type ActionType, type ProColumns, } from '@ant-design/pro-components'; import { message } from 'antd'; import { useRef } from 'react'; import Audit from './components/Audit'; export default () => { const actionRef = useRef<ActionType>(); const columns: ProColumns[] = [ { dataIndex: 'index', valueType: 'indexBorder', width: 48, }, { title: '申领人', dataIndex: 'createByName', ellipsis: true, width: 180, hideInSearch: true, }, { title: '申请时间', dataIndex: 'createTime', ellipsis: true, width: 180, hideInSearch: true, }, { title: '审核状态', dataIndex: 'auditStatusText', ellipsis: true, width: 180, hideInSearch: true, }, { title: '申领备注', dataIndex: 'applyRemarks', valueType: 'textarea', ellipsis: true, width: 180, hideInSearch: true, }, { title: '审核备注', dataIndex: 'auditRemarks', valueType: 'textarea', ellipsis: true, width: 180, hideInSearch: true, }, { title: '申领物品', dataIndex: 'productNameLike', ellipsis: true, width: 180, hideInTable: true, }, { title: '申领人', dataIndex: 'createByNameLike', hideInTable: true, }, { title: '申请时间', valueType: 'dateTimeRange', hideInTable: true, search: { transform: (value) => { if (value) { return { createTimeGe: value[0], createTimeLe: value[1], }; } }, }, }, { title: '审核状态', valueType: 'select', key: 'auditStatus', dataIndex: 'auditStatus', filters: true, onFilter: true, hideInTable: true, request: async () => { const res = await postServiceConstProductCollectBillStatus(); return enumToSelect(res.data); }, }, { title: '操作', valueType: 'option', key: 'option', render: (text, record) => [ record.paths?.includes('UPDATE') && ( <AddOrUpdate record={record} onfinish={() => { actionRef.current?.reload(); }} /> ), record.paths?.includes('UPDATE') && ( <ButtonConfirm key="delete" className="p-0" title={'确认删除该记录?'} text="删除" onConfirm={async () => { let res = await postProductCollectBillDelete({ query: { id: record.id }, }); if (res) { message.success(res.message); actionRef.current?.reload(); } }} /> ), record.paths?.includes('AUDIT') && ( <Audit recordId={record.id} onClose={() => { actionRef.current?.reload(); }} /> ), ], }, ]; return ( <ProTable actionRef={actionRef} columns={columns} request={async (params) => { const res = await postProductCollectBillPage({ data: { ...params, }, }); if (res.result === RESPONSE_CODE.SUCCESS) { return { data: res?.data?.data, total: res?.data?.total || 0, }; } return { data: [], success: false, }; }} rowKey="id" pagination={{ showQuickJumper: true, }} expandable={{ expandedRowRender: (record) => ( <ProTable columns={[ { title: '商品名称', dataIndex: 'productName', key: 'productName', }, { title: '数量', dataIndex: 'number', key: 'number' }, { title: '备注', dataIndex: 'notes', key: 'notes' }, ]} headerTitle={false} search={false} options={false} dataSource={record.details} pagination={false} /> ), }} dateFormatter="string" headerTitle="采购管理" options={false} toolBarRender={() => [ <AddOrUpdate key="add" record={undefined} onfinish={() => actionRef.current?.reload()} />, ]} /> ); };