import { request } from '@umijs/max'; /** 户外招聘会列表项 */ export interface OutdoorFairItem { id: number; /** 招聘会标题 */ title: string; /** 举办单位 */ hostUnit: string; /** 招聘会类型 */ fairType: string; /** 举办区域 */ region: string; /** 绑定场地ID */ venueId?: number; /** 绑定场地 */ venueName?: string; /** 举办地址 */ address: string; /** 展位数量 */ boothCount: number; /** 举办时间 */ holdTime: string; /** 截止时间 */ endTime: string; /** 开放申请 */ applyStartTime: string; /** 截止申请 */ applyEndTime: string; /** 是否开启线上申请 */ onlineApply: boolean; /** 招聘会照片 */ photoUrl: string; createTime?: string; updateTime?: string; } /** 户外招聘会查询参数 */ export interface OutdoorFairListParams { title?: string; hostUnit?: string; fairType?: string; region?: string; venueId?: number; onlineApply?: boolean; current?: number; pageSize?: number; } /** 户外招聘会列表响应 */ export interface OutdoorFairListResult { code: number; msg?: string; total: number; rows: OutdoorFairItem[]; } /** 户外招聘会新增/编辑表单 */ export interface OutdoorFairForm { id?: number; title: string; hostUnit: string; fairType: string; region: string; venueId?: number; venueName?: string; address: string; boothCount: number; holdTime: string; endTime: string; applyStartTime: string; applyEndTime: string; onlineApply: boolean; photoUrl: string; } /** 通用响应 */ export interface OutdoorFairCommonResult { code: number; msg?: string; data?: any; url?: string; fileName?: string; newFileName?: string; originalFilename?: string; } /** 户外招聘会字典新增表单 */ export interface OutdoorFairDictForm { dictType: 'outdoor_fair_type' | 'outdoor_fair_region'; dictLabel: string; } const CMS_OUTDOOR_FAIR_BASE = '/api/cms/outdoor-fair'; const formatDateTime = (value: any) => { if (value && typeof value.format === 'function') { return value.format('YYYY-MM-DD HH:mm:ss'); } return value; }; const toApiPayload = (data: OutdoorFairForm) => ({ ...data, holdTime: formatDateTime(data.holdTime), endTime: formatDateTime(data.endTime), applyStartTime: formatDateTime(data.applyStartTime), applyEndTime: formatDateTime(data.applyEndTime), }); /** * 获取户外招聘会管理列表 * GET /api/cms/outdoor-fair/list */ export async function getOutdoorFairList(params?: OutdoorFairListParams) { return request(`${CMS_OUTDOOR_FAIR_BASE}/list`, { method: 'GET', params, }); } /** * 获取户外招聘会详情 * GET /api/cms/outdoor-fair/{id} */ export async function getOutdoorFairInfo(id: number) { return request(`${CMS_OUTDOOR_FAIR_BASE}/${id}`, { method: 'GET', }); } /** * 新增户外招聘会 * POST /api/cms/outdoor-fair */ export async function addOutdoorFair(data: OutdoorFairForm) { return request(CMS_OUTDOOR_FAIR_BASE, { method: 'POST', data: toApiPayload(data), }); } /** * 修改户外招聘会 * PUT /api/cms/outdoor-fair */ export async function updateOutdoorFair(data: OutdoorFairForm) { return request(CMS_OUTDOOR_FAIR_BASE, { method: 'PUT', data: toApiPayload(data), }); } /** * 删除户外招聘会 * DELETE /api/cms/outdoor-fair/{id} */ export async function deleteOutdoorFair(id: number) { return request(`${CMS_OUTDOOR_FAIR_BASE}/${id}`, { method: 'DELETE', }); } /** * 新增户外招聘会页面使用的字典项 * POST /api/cms/outdoor-fair/dict-data */ export async function addOutdoorFairDictOption(data: OutdoorFairDictForm) { return request(`${CMS_OUTDOOR_FAIR_BASE}/dict-data`, { method: 'POST', data, }); } /** * 上传户外招聘会照片 * POST /api/common/upload */ export async function uploadOutdoorFairPhoto(file: File) { const formData = new FormData(); formData.append('file', file); return request('/api/common/upload', { method: 'POST', data: formData, }); }