liu
2026-09-29 982c97ab82f3beb1b4febcf014562eda34b9fc05
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
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 },
  });
}