Files
shz-admin/src/services/jobportal/outdoorFair.ts

187 lines
4.2 KiB
TypeScript
Raw Normal View History

2026-06-18 02:30:11 +08:00
import { request } from '@umijs/max';
/** 户外招聘会列表项 */
export interface OutdoorFairItem {
id: number;
/** 招聘会标题 */
title: string;
/** 举办单位 */
hostUnit: string;
/** 招聘会类型 */
fairType: string;
/** 举办区域 */
region: string;
/** 绑定场地ID */
venueId?: number;
/** 绑定场地 */
venueName?: string;
2026-06-18 02:30:11 +08:00
/** 举办地址 */
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;
2026-06-18 02:30:11 +08:00
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;
2026-06-18 02:30:11 +08:00
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;
2026-06-18 02:30:11 +08:00
}
/** 户外招聘会字典新增表单 */
export interface OutdoorFairDictForm {
dictType: 'outdoor_fair_type' | 'outdoor_fair_region';
dictLabel: string;
}
2026-06-18 02:30:11 +08:00
const CMS_OUTDOOR_FAIR_BASE = '/api/cms/outdoor-fair';
2026-06-18 02:30:11 +08:00
const formatDateTime = (value: any) => {
if (value && typeof value.format === 'function') {
return value.format('YYYY-MM-DD HH:mm:ss');
}
return value;
};
2026-06-18 02:30:11 +08:00
const toApiPayload = (data: OutdoorFairForm) => ({
...data,
holdTime: formatDateTime(data.holdTime),
endTime: formatDateTime(data.endTime),
applyStartTime: formatDateTime(data.applyStartTime),
applyEndTime: formatDateTime(data.applyEndTime),
});
2026-06-18 02:30:11 +08:00
/**
*
* GET /api/cms/outdoor-fair/list
*/
export async function getOutdoorFairList(params?: OutdoorFairListParams) {
return request<OutdoorFairListResult>(`${CMS_OUTDOOR_FAIR_BASE}/list`, {
method: 'GET',
params,
});
}
2026-06-18 02:30:11 +08:00
/**
*
* GET /api/cms/outdoor-fair/{id}
*/
export async function getOutdoorFairInfo(id: number) {
return request<OutdoorFairCommonResult>(`${CMS_OUTDOOR_FAIR_BASE}/${id}`, {
method: 'GET',
});
2026-06-18 02:30:11 +08:00
}
/**
*
* POST /api/cms/outdoor-fair
*/
export async function addOutdoorFair(data: OutdoorFairForm) {
return request<OutdoorFairCommonResult>(CMS_OUTDOOR_FAIR_BASE, {
method: 'POST',
data: toApiPayload(data),
});
2026-06-18 02:30:11 +08:00
}
/**
*
* PUT /api/cms/outdoor-fair
*/
export async function updateOutdoorFair(data: OutdoorFairForm) {
return request<OutdoorFairCommonResult>(CMS_OUTDOOR_FAIR_BASE, {
method: 'PUT',
data: toApiPayload(data),
});
2026-06-18 02:30:11 +08:00
}
/**
*
* DELETE /api/cms/outdoor-fair/{id}
*/
export async function deleteOutdoorFair(id: number) {
return request<OutdoorFairCommonResult>(`${CMS_OUTDOOR_FAIR_BASE}/${id}`, {
method: 'DELETE',
});
}
/**
* 使
* POST /api/cms/outdoor-fair/dict-data
*/
export async function addOutdoorFairDictOption(data: OutdoorFairDictForm) {
return request<OutdoorFairCommonResult>(`${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<OutdoorFairCommonResult>('/api/common/upload', {
method: 'POST',
data: formData,
});
2026-06-18 02:30:11 +08:00
}