import React, { useRef, useState, useEffect } from 'react'; import { useAccess, history } from '@umijs/max'; import { Button, message, Modal } from 'antd'; import { ActionType, PageContainer, ProColumns, ProTable } from '@ant-design/pro-components'; import { PlusOutlined, DeleteOutlined, FormOutlined, ExportOutlined, EyeOutlined } from '@ant-design/icons'; import { getDictValueEnum } from '@/services/system/dict'; import DictTag from '@/components/DictTag'; import { getPublicJobFairList, getPublicJobFairDetail, addPublicJobFair, updatePublicJobFair, deletePublicJobFair, exportPublicJobFair, } from '@/services/jobfair/publicJobFair'; import EditModal from './components/EditModal'; const PublicJobFairList: React.FC = () => { const access = useAccess(); const actionRef = useRef(); const [modalVisible, setModalVisible] = useState(false); const [currentRow, setCurrentRow] = useState(); const [jobFairTypeEnum, setJobFairTypeEnum] = useState({}); const [selectedRowKeys, setSelectedRowKeys] = useState([]); useEffect(() => { getDictValueEnum('job_fair_type', true).then(setJobFairTypeEnum); }, []); const handleDelete = async (ids: string) => { Modal.confirm({ title: '确认删除', content: '确定要删除选中的招聘会吗?', onOk: async () => { const res = await deletePublicJobFair(ids); if (res.code === 200) { message.success('删除成功'); actionRef.current?.reload(); setSelectedRowKeys([]); } else { message.error(res.msg || '删除失败'); } }, }); }; const handleExport = async () => { message.loading('正在导出...'); try { await exportPublicJobFair(); message.success('导出成功'); } catch { message.error('导出失败'); } }; const columns: ProColumns[] = [ { title: '招聘会标题', dataIndex: 'jobFairTitle', ellipsis: true, }, { title: '地址', dataIndex: 'jobFairAddress', hideInSearch: true, ellipsis: true, }, { title: '类型', dataIndex: 'jobFairType', valueType: 'select', valueEnum: jobFairTypeEnum, render: (_, record) => , }, { title: '开始时间', dataIndex: 'jobFairStartTime', valueType: 'dateTime', hideInSearch: true, }, { title: '结束时间', dataIndex: 'jobFairEndTime', valueType: 'dateTime', hideInSearch: true, }, { title: '操作', valueType: 'option', width: 150, render: (_, record) => [ , , , ], }, ]; return ( headerTitle="公共招聘会列表" actionRef={actionRef} rowKey="jobFairId" columns={columns} rowSelection={{ selectedRowKeys, onChange: setSelectedRowKeys, }} request={async (params) => { const res = await getPublicJobFairList({ pageNum: params.current, pageSize: params.pageSize, jobFairTitle: params.jobFairTitle, jobFairType: params.jobFairType, }); return { data: res.rows, total: res.total, success: true }; }} toolBarRender={() => [ , selectedRowKeys.length > 0 && ( ), , ]} /> { setModalVisible(false); setCurrentRow(undefined); }} onSubmit={async (values) => { const res = values.jobFairId ? await updatePublicJobFair(values) : await addPublicJobFair(values); if (res.code === 200) { message.success(values.jobFairId ? '修改成功' : '新增成功'); setModalVisible(false); setCurrentRow(undefined); actionRef.current?.reload(); } else { message.error(res.msg || '操作失败'); } }} /> ); }; export default PublicJobFairList;