import { useRef, useState } from 'react'; import { Button, message, Modal, Image } from 'antd'; import { PageContainer } from '@ant-design/pro-layout'; import type { ActionType, ProColumns } from '@ant-design/pro-table'; import ProTable from '@ant-design/pro-table'; import { Access, useAccess } from 'umi'; import { addBatchRecommendPurchaseAgentUsingPost, deleteBatchRecommendPurchaseAgentUsingPost, getRecommendPurchaseAgentListForAdminUsingGet, getUnRecommendPurchaseAgentListUsingGet, moveRecommendPurchaseAgentUsingGet } from '@/services/pop-b2b2c/pbcRecommendPurchaseAgentController'; const TableList: React.FC = () => { const actionRef = useRef(); const addActionRef = useRef(); const access: any = useAccess(); const [selectModalVisible, setSelectModalVisible] = useState(false); const [selectedAgentIds, setSelectedAgentIds] = useState([]); const handleAddRecommend = async () => { const res = await getUnRecommendPurchaseAgentListUsingGet(); if (res.retcode && res.data) { if (res.data.length === 0) { message.warning('没有可推荐的小哥'); return; } setSelectModalVisible(true); actionRef.current?.reload(); } }; const handleConfirmAdd = async () => { if (selectedAgentIds.length === 0) { message.warning('请选择要添加的小哥'); return; } Modal.confirm({ title: '确认添加', content: `确定要添加${selectedAgentIds.length}个小哥到推荐列表吗?`, onOk: async () => { const result = await addBatchRecommendPurchaseAgentUsingPost(selectedAgentIds); if (result.retcode) { message.success('添加成功'); setSelectModalVisible(false); setSelectedAgentIds([]); actionRef.current?.reload(); } else { message.error(result.retmsg); } }, }); }; const handleMove = async (id: number, type: 'up' | 'down') => { const res = await moveRecommendPurchaseAgentUsingGet({ recommendPurchaseAgentId: id, type }); if (res.retcode) { message.success('移动成功'); actionRef.current?.reload(); } else { message.error(res.retmsg); } }; const handleDelete = async (ids: number[]) => { Modal.confirm({ title: '确认删除', content: `确定要删除选中的${ids.length}个推荐小哥吗?`, onOk: async () => { const res = await deleteBatchRecommendPurchaseAgentUsingPost(ids); if (res.retcode) { message.success('删除成功'); actionRef.current?.reload(); } else { message.error(res.retmsg); } }, }); }; const columns: ProColumns[] = [ { title: '小哥姓名', dataIndex: 'pbcPurchaseAgentName', render: (_, record) => { return record.pbcPurchaseAgentInfo?.pbcPurchaseAgentName ?? '-'; }, }, { title: '年龄', dataIndex: 'pbcPurchaseAgentAge', search: false, render: (_, record) => { return record.pbcPurchaseAgentInfo?.pbcPurchaseAgentAge ?? '-'; }, }, { title: '联系电话', width: 110, dataIndex: 'pbcPurchaseAgentMobile', render: (_, record) => { return record.pbcPurchaseAgentInfo?.pbcPurchaseAgentMobile ?? '-'; }, }, { title: '从业年数', dataIndex: 'pbcPurchaseAgentWorkingAge', search: false, render: (_, record) => record.pbcPurchaseAgentInfo?.pbcPurchaseAgentWorkingAge ? `${record.pbcPurchaseAgentInfo?.pbcPurchaseAgentWorkingAge}年` : '-' }, { title: '常驻区域', dataIndex: 'pbcPurchaseAgentResidentArea', search: false, render: (_, record) => { return record.pbcPurchaseAgentInfo?.pbcPurchaseAgentResidentArea ?? '-'; }, }, { title: '擅长面料用途', dataIndex: 'pbcPurchaseAgentFabricUse', ellipsis: true, search: false, render: (_, record) => { return record.pbcPurchaseAgentInfo?.pbcPurchaseAgentFabricUse ?? '-'; }, }, { title: '头像', dataIndex: 'pbcPurchaseAgentImage', search: false, render: (_, record) => record.pbcPurchaseAgentInfo?.pbcPurchaseAgentImage ? : '-' }, { title: '操作', fixed: 'right', width: 180, valueType: 'option', render: (_, record, index, action) => [ , , ], }, ]; const addColumns: ProColumns[] = [ { title: '小哥姓名', dataIndex: 'pbcPurchaseAgentName', }, { title: '年龄', dataIndex: 'pbcPurchaseAgentAge', search: false, }, { title: '联系电话', dataIndex: 'pbcPurchaseAgentMobile', }, { title: '从业年数', dataIndex: 'pbcPurchaseAgentWorkingAge', search: false, render: (text) => text ? `${text}年` : '-' }, { title: '常驻区域', dataIndex: 'pbcPurchaseAgentResidentArea', search: false, }, { title: '擅长面料用途', dataIndex: 'pbcPurchaseAgentFabricUse', ellipsis: true, search: false, }, { title: '头像', dataIndex: 'pbcPurchaseAgentImage', search: false, render: (text: any) => text ? : '-' }, ]; return ( columns={columns} actionRef={actionRef} request={async (params) => { const res = await getRecommendPurchaseAgentListForAdminUsingGet({ ...params, }); return { data: res.data || [], success: !!res.retcode, total: res.data?.length, }; }} rowKey="pbcId" size="small" bordered search={false} toolbar={{ actions: [ ], }} rowSelection={{ onChange: (selectedRowKeys) => { if (selectedRowKeys.length > 0) { handleDelete(selectedRowKeys as number[]); } }, }} pagination={{ defaultPageSize: 20, showSizeChanger: true, }} scroll={{ y: 'calc(100vh - 320px)', }} dateFormatter="string" options={false} toolBarRender={() => []} /> { setSelectModalVisible(false); setSelectedAgentIds([]); }} width={1000} footer={[ , , ]} > columns={addColumns} request={async () => { const res = await getUnRecommendPurchaseAgentListUsingGet(); return { data: res.data || [], success: !!res.retcode, }; }} actionRef={addActionRef} rowKey="pbcId" size="small" bordered search={false} options={false} pagination={false} rowSelection={{ selectedRowKeys: selectedAgentIds, onChange: (selectedRowKeys) => { setSelectedAgentIds(selectedRowKeys as number[]); }, }} scroll={{ y: 400, }} /> ); }; export default TableList;