import type { PageParam, PageResult } from '@vben/request';
|
|
import type { SystemStorageApi } from '#/api/system/storage';
|
|
import { requestClient } from '#/api/request';
|
|
export namespace ResearchGuidelineApi {
|
/** 课题指南 */
|
export interface Guideline {
|
id?: number;
|
no?: string; // 指南编号,后端生成(GL 前缀)
|
title: string; // 指南名称
|
category: number; // 课题类别,字典 research_guideline_category
|
applyStartTime?: string; // 申报开始时间
|
applyEndTime?: string; // 申报截止时间
|
content?: string; // 指南正文
|
publishStatus?: number; // 发布状态,字典 research_guideline_status
|
publishTime?: string; // 发布时间
|
remark?: string; // 备注
|
creator?: string; // 创建人 ID
|
creatorName?: string; // 创建人姓名
|
createTime?: string; // 创建时间
|
attachmentList?: SystemStorageApi.StorageBlob[]; // 附件列表
|
hasAttachment?: boolean; // 是否有附件
|
blobIds?: number[]; // 提交时的附件 ID 列表(全量)
|
}
|
}
|
|
/** 查询课题指南分页 */
|
export function getGuidelinePage(params: PageParam) {
|
return requestClient.get<PageResult<ResearchGuidelineApi.Guideline>>(
|
'/research/guideline/page',
|
{ params },
|
);
|
}
|
|
/** 查询课题指南详情 */
|
export function getGuideline(id: number) {
|
return requestClient.get<ResearchGuidelineApi.Guideline>(
|
`/research/guideline/get?id=${id}`,
|
);
|
}
|
|
/** 查询已发布的课题指南列表(供申报选指南) */
|
export function getPublishedGuidelineList() {
|
return requestClient.get<ResearchGuidelineApi.Guideline[]>(
|
'/research/guideline/published-list',
|
);
|
}
|
|
/** 新增课题指南(草稿) */
|
export function createGuideline(data: ResearchGuidelineApi.Guideline) {
|
return requestClient.post('/research/guideline/create', data);
|
}
|
|
/** 修改课题指南(仅草稿可改) */
|
export function updateGuideline(data: ResearchGuidelineApi.Guideline) {
|
return requestClient.put('/research/guideline/update', data);
|
}
|
|
/** 删除课题指南(仅草稿且无申报书可删) */
|
export function deleteGuideline(id: number) {
|
return requestClient.delete('/research/guideline/delete', {
|
params: { id },
|
});
|
}
|
|
/** 发布课题指南 */
|
export function publishGuideline(id: number) {
|
return requestClient.put('/research/guideline/publish', null, {
|
params: { id },
|
});
|
}
|
|
/** 截止课题指南 */
|
export function closeGuideline(id: number) {
|
return requestClient.put('/research/guideline/close', null, {
|
params: { id },
|
});
|
}
|