| | |
| | | import { requestClient } from '#/api/request'; |
| | | |
| | | export namespace ResearchApplicationApi { |
| | | /** 课题申报书成员(子表) */ |
| | | export interface ApplicationMember { |
| | | id?: number; |
| | | applicationId?: number; |
| | | name: string; // 成员姓名 |
| | | contactPhone?: string; // 联系电话 |
| | | workUnit?: string; // 所属单位 |
| | | jobTitle?: string; // 职称/职务 |
| | | memberRole?: string; // 成员角色:主持人/核心成员/参与人 |
| | | sortNo?: number; // 排序号 |
| | | } |
| | | |
| | | /** 成员维度统计 */ |
| | | export interface MemberStatistics { |
| | | name: string; // 成员姓名 |
| | | contactPhone?: string; // 联系电话 |
| | | workUnit?: string; // 所属单位 |
| | | jobTitle?: string; // 职称/职务 |
| | | memberRoles?: string; // 成员角色(多个以顿号分隔) |
| | | projectCount?: number; // 参与课题数 |
| | | projectTitles?: string; // 参与课题名称(分号分隔) |
| | | } |
| | | |
| | | /** 课题申报书 */ |
| | | export interface Application { |
| | | id?: number; |
| | |
| | | jobTitle?: string; // 职称 |
| | | contactPhone?: string; // 联系电话 |
| | | contactEmail?: string; // 联系邮箱 |
| | | teamMembers?: string; // 课题组成员(每行一条:姓名|单位|职称) |
| | | teamMembers?: string; // 课题组成员(旧版文本,仅历史数据展示) |
| | | members?: ApplicationMember[]; // 课题组成员子表 |
| | | budgetAmount?: number; // 申请经费(元) |
| | | planContent?: string; // 申报书正文 |
| | | status?: number; // 状态,字典 research_application_status |
| | |
| | | }); |
| | | } |
| | | |
| | | /** 按成员维度统计课题参与情况 */ |
| | | export function getMemberStatistics(params: { |
| | | keyword?: string; |
| | | status?: number; |
| | | }) { |
| | | return requestClient.get<ResearchApplicationApi.MemberStatistics[]>( |
| | | '/research/application/member-statistics', |
| | | { params }, |
| | | ); |
| | | } |
| | | |
| | | /** 导出成员维度统计 Excel */ |
| | | export function exportMemberStatistics(params: { |
| | | keyword?: string; |
| | | status?: number; |
| | | }) { |
| | | return requestClient.download( |
| | | '/research/application/member-statistics/export-excel', |
| | | { params }, |
| | | ); |
| | | } |
| | | |
| | | /** 查询某申报书的专家评审明细列表 */ |
| | | export function getTopicReviewList(applicationId: number) { |
| | | return requestClient.get<ResearchApplicationApi.TopicReview[]>( |