import React, { useEffect } from 'react'; import { ModalForm, ProForm, ProFormDigit, ProFormSelect, ProFormText, ProFormTextArea, } from '@ant-design/pro-components'; import { Button, Form, Input, message } from 'antd'; import { MinusCircleOutlined, PlusOutlined } from '@ant-design/icons'; import type { DictValueEnumObj } from '@/components/DictTag'; import { addCurrentCompanyJob, addJobForCompany, updateJobForCompany, } from '@/services/jobportal/outdoorFairDetail'; interface Props { open: boolean; fairId: number; company: API.OutdoorFairDetail.ParticipatingCompany | null; job: API.OutdoorFairDetail.PostedJob | null; educationEnum: DictValueEnumObj; experienceEnum: DictValueEnumObj; areaEnum: DictValueEnumObj; jobTypeEnum: DictValueEnumObj; companyScoped?: boolean; onCancel: () => void; onSuccess: () => void; } const JobEditModal: React.FC = ({ open, fairId, company, job, educationEnum, experienceEnum, areaEnum, jobTypeEnum, companyScoped, onCancel, onSuccess, }) => { const [form] = Form.useForm(); useEffect(() => { if (!open) return; form.resetFields(); if (job) { form.setFieldsValue({ ...job, jobLocationAreaCode: String(job.jobLocationAreaCode || ''), }); } else { form.setFieldsValue({ isPublish: 1, jobContactList: [{}] }); } }, [open, job, form]); return ( { const payload = { ...values, companyId: company?.companyId, companyName: company?.companyName, jobContactList: values.jobContactList || [], }; const res = job ? await updateJobForCompany(fairId, { ...job, ...payload }) : companyScoped ? await addCurrentCompanyJob({ fairId, ...payload }) : await addJobForCompany({ fairId, companyId: company!.companyId, ...payload }); if (res.code === 200) { message.success(job ? '岗位修改成功' : '岗位添加成功'); onSuccess(); return true; } message.error(res.msg || '操作失败'); return false; }} >
岗位联系人
{(fields, { add, remove }) => ( <> {fields.map(({ key, name, ...restField }) => (
))} )}
); }; export default JobEditModal;