feat: show outdoor fair content in cms and portal
Some checks failed
Node CI / build (14.x, macOS-latest) (push) Has been cancelled
Node CI / build (14.x, ubuntu-latest) (push) Has been cancelled
Node CI / build (14.x, windows-latest) (push) Has been cancelled
Node CI / build (16.x, macOS-latest) (push) Has been cancelled
Node CI / build (16.x, ubuntu-latest) (push) Has been cancelled
Node CI / build (16.x, windows-latest) (push) Has been cancelled
CodeQL / Analyze (javascript) (push) Has been cancelled
coverage CI / build (push) Has been cancelled
Node pnpm CI / build (16.x, macOS-latest) (push) Has been cancelled
Node pnpm CI / build (16.x, ubuntu-latest) (push) Has been cancelled
Node pnpm CI / build (16.x, windows-latest) (push) Has been cancelled

This commit is contained in:
2026-07-23 10:21:59 +08:00
parent bef39f6894
commit befc27adae
5 changed files with 38 additions and 1 deletions

View File

@@ -247,6 +247,12 @@ const PortalJobFairDetailPage: React.FC = () => {
<Title level={4}></Title> <Title level={4}></Title>
<Paragraph>{detail.jobFairIntroduction || '暂未提供招聘会简介。'}</Paragraph> <Paragraph>{detail.jobFairIntroduction || '暂未提供招聘会简介。'}</Paragraph>
</section> </section>
{channel === 'outdoor' && (
<section className="job-fair-detail-introduction">
<Title level={4}></Title>
<Paragraph>{detail.jobFairProcess || '暂未提供招聘会整体流程。'}</Paragraph>
</section>
)}
</Card> </Card>
) : ( ) : (
!loading && ( !loading && (

View File

@@ -157,6 +157,12 @@ const FairInfoTab: React.FC<Props> = ({ fairInfo, onFairUpdate }) => {
'--' '--'
)} )}
</Descriptions.Item> </Descriptions.Item>
<Descriptions.Item label="招聘会简介" span={3}>
<div style={{ whiteSpace: 'pre-wrap' }}>{fairInfo.fairIntroduction || '--'}</div>
</Descriptions.Item>
<Descriptions.Item label="招聘会整体流程" span={3}>
<div style={{ whiteSpace: 'pre-wrap' }}>{fairInfo.fairProcess || '--'}</div>
</Descriptions.Item>
</Descriptions> </Descriptions>
</Card> </Card>

View File

@@ -6,6 +6,7 @@ import {
ProFormSwitch, ProFormSwitch,
ProFormSelect, ProFormSelect,
ProFormText, ProFormText,
ProFormTextArea,
} from '@ant-design/pro-components'; } from '@ant-design/pro-components';
import { Button, Divider, Form, Image, Input, message, Modal, Space, Upload } from 'antd'; import { Button, Divider, Form, Image, Input, message, Modal, Space, Upload } from 'antd';
import { PlusOutlined, UploadOutlined } from '@ant-design/icons'; import { PlusOutlined, UploadOutlined } from '@ant-design/icons';
@@ -297,6 +298,18 @@ const EditModal: React.FC<EditModalProps> = ({
colProps={{ md: 24 }} colProps={{ md: 24 }}
initialValue={false} initialValue={false}
/> />
<ProFormTextArea
name="fairIntroduction"
label="招聘会简介"
placeholder="请输入招聘会简介"
fieldProps={{ maxLength: 5000, showCount: true, autoSize: { minRows: 4, maxRows: 8 } }}
/>
<ProFormTextArea
name="fairProcess"
label="招聘会整体流程"
placeholder="请输入招聘会整体流程"
fieldProps={{ maxLength: 5000, showCount: true, autoSize: { minRows: 4, maxRows: 8 } }}
/>
<ProForm.Item label="招聘会照片" required> <ProForm.Item label="招聘会照片" required>
<Space direction="vertical" size={12}> <Space direction="vertical" size={12}>
<Upload <Upload

View File

@@ -15,6 +15,7 @@ export interface PortalJobFairItem {
jobFairHostUnit?: string; jobFairHostUnit?: string;
jobFairOrganizeUnit?: string; jobFairOrganizeUnit?: string;
jobFairIntroduction?: string; jobFairIntroduction?: string;
jobFairProcess?: string;
jobFairPhone?: string; jobFairPhone?: string;
jobFairImage?: string; jobFairImage?: string;
enterpriseNum?: string; enterpriseNum?: string;
@@ -71,6 +72,8 @@ interface PortalOutdoorFairDetailData extends Partial<PortalJobFairItem> {
holdTime?: string; holdTime?: string;
endTime?: string; endTime?: string;
photoUrl?: string; photoUrl?: string;
fairIntroduction?: string;
fairProcess?: string;
} }
interface PortalOutdoorFairDetailResult { interface PortalOutdoorFairDetailResult {
@@ -197,7 +200,8 @@ export async function getPortalJobFairDetail(channel: JobFairChannel, jobFairId:
jobFairEndTime: fair.jobFairEndTime || fair.endTime, jobFairEndTime: fair.jobFairEndTime || fair.endTime,
jobFairHostUnit: fair.jobFairHostUnit || fair.hostUnit, jobFairHostUnit: fair.jobFairHostUnit || fair.hostUnit,
jobFairOrganizeUnit: fair.jobFairOrganizeUnit, jobFairOrganizeUnit: fair.jobFairOrganizeUnit,
jobFairIntroduction: fair.jobFairIntroduction, jobFairIntroduction: fair.jobFairIntroduction || fair.fairIntroduction,
jobFairProcess: fair.jobFairProcess || fair.fairProcess,
jobFairPhone: fair.jobFairPhone, jobFairPhone: fair.jobFairPhone,
jobFairImage: fair.jobFairImage || fair.photoUrl, jobFairImage: fair.jobFairImage || fair.photoUrl,
boothNum: boothNum:

View File

@@ -33,6 +33,10 @@ export interface OutdoorFairItem {
onlineApply: boolean; onlineApply: boolean;
/** 招聘会照片 */ /** 招聘会照片 */
photoUrl: string; photoUrl: string;
/** 招聘会简介 */
fairIntroduction?: string;
/** 招聘会整体流程 */
fairProcess?: string;
/** 当前企业ID */ /** 当前企业ID */
companyId?: number; companyId?: number;
/** 当前企业名称 */ /** 当前企业名称 */
@@ -88,6 +92,10 @@ export interface OutdoorFairForm {
applyEndTime: string; applyEndTime: string;
onlineApply: boolean; onlineApply: boolean;
photoUrl: string; photoUrl: string;
/** 招聘会简介 */
fairIntroduction?: string;
/** 招聘会整体流程 */
fairProcess?: string;
/** 更换场地时确认清空旧展位图与预定,并按新模板重建 */ /** 更换场地时确认清空旧展位图与预定,并按新模板重建 */
resetBoothMap?: boolean; resetBoothMap?: boolean;
} }