From 9d1dfe962f8c5e558dd3c7a4408e8b89a4abc128 Mon Sep 17 00:00:00 2001 From: lapuda <577732344@qq.com> Date: Wed, 22 Jul 2026 17:06:13 +0800 Subject: [PATCH] feat: manage venue booth templates in job fair admin --- .../Outdoorfair/components/EditModal.tsx | 25 +- src/pages/Jobfair/Outdoorfair/index.tsx | 6 + .../components/VenueBoothMapModal.tsx | 421 ++++++++++++++++++ src/pages/Jobfair/Venueinfo/index.tsx | 22 +- src/services/jobportal/outdoorFair.ts | 4 + src/services/jobportal/venueInfo.ts | 16 + 6 files changed, 491 insertions(+), 3 deletions(-) create mode 100644 src/pages/Jobfair/Venueinfo/components/VenueBoothMapModal.tsx diff --git a/src/pages/Jobfair/Outdoorfair/components/EditModal.tsx b/src/pages/Jobfair/Outdoorfair/components/EditModal.tsx index e33d7c6..b120138 100644 --- a/src/pages/Jobfair/Outdoorfair/components/EditModal.tsx +++ b/src/pages/Jobfair/Outdoorfair/components/EditModal.tsx @@ -147,7 +147,30 @@ const EditModal: React.FC = ({ width={700} modalProps={{ destroyOnClose: true, onCancel }} onFinish={async (formValues) => { - await onSubmit({ ...formValues, id: values?.id } as OutdoorFairForm); + const payload = { ...formValues, id: values?.id } as OutdoorFairForm; + const venueChanged = + !!values?.id && + values.venueId !== undefined && + Number(values.venueId) !== Number(payload.venueId); + if (venueChanged && (values?.boothCount || 0) > 0) { + return new Promise((resolve) => { + Modal.confirm({ + title: '确认更换场地并重建展位图?', + content: + '当前招聘会已有展位图。确认后将删除原展位图和所有企业预定,再按新场地的展位模板重新生成;此操作不可恢复。', + okText: '确认重建', + okButtonProps: { danger: true }, + cancelText: '取消', + onOk: async () => { + await onSubmit({ ...payload, resetBoothMap: true }); + resolve(true); + }, + onCancel: () => resolve(false), + }); + }); + } + await onSubmit(payload); + return true; }} >