Files
hzdyjs/web/src/api/stgl/activitymaterial/index.ts
T
2025-08-23 09:58:59 +08:00

302 lines
6.8 KiB
TypeScript

import request from '@/utils/request';
import { AxiosPromise } from 'axios';
import {
StglMaterialTaskVO,
StglMaterialTaskForm,
StglMaterialTaskQuery,
StglMaterialSubmissionVO,
StglMaterialSubmissionForm,
StglMaterialSubmissionQuery
} from './types';
/**
* 查询材料收集任务列表
*/
export function listStglMaterialTask(query: StglMaterialTaskQuery): AxiosPromise<StglMaterialTaskVO[]> {
return request({
url: '/stgl/activitymaterial/list',
method: 'get',
params: query
});
}
/**
* 查询材料收集任务详细
*/
export function getStglMaterialTask(id: string | number): AxiosPromise<StglMaterialTaskVO> {
return request({
url: '/stgl/activitymaterial/' + id,
method: 'get'
});
}
/**
* 新增材料收集任务
*/
export function addStglMaterialTask(data: StglMaterialTaskForm) {
return request({
url: '/stgl/activitymaterial',
method: 'post',
data: data
});
}
/**
* 修改材料收集任务
*/
export function updateStglMaterialTask(data: StglMaterialTaskForm) {
return request({
url: '/stgl/activitymaterial',
method: 'put',
data: data
});
}
/**
* 删除材料收集任务
*/
export function delStglMaterialTask(id: string | number | Array<string | number>) {
return request({
url: '/stgl/activitymaterial/' + id,
method: 'delete'
});
}
/**
* 导出材料收集任务
*/
export function exportStglMaterialTask(query: StglMaterialTaskQuery) {
return request({
url: '/stgl/activitymaterial/export',
method: 'post',
data: query,
responseType: 'blob'
});
}
/**
* 更新任务状态(开启/关闭)
*/
export function updateTaskStatus(id: string | number, taskStatus: number) {
return request({
url: '/stgl/activitymaterial/status',
method: 'put',
params: {
id: id,
taskStatus: taskStatus
}
});
}
/**
* 查询用户可上传的材料收集任务
*/
export function getUploadableTasks(userId: string | number, activityId?: string | number): AxiosPromise<StglMaterialTaskVO[]> {
const params: any = { userId };
if (activityId) {
params.activityId = activityId;
}
return request({
url: '/stgl/activitymaterial/uploadable',
method: 'get',
params: params
});
}
/**
* 验证用户上传权限
*/
export function validateUploadPermission(taskId: string | number, userId: string | number): AxiosPromise<boolean> {
return request({
url: '/stgl/activitymaterial/validate',
method: 'get',
params: {
taskId: taskId,
userId: userId
}
});
}
/**
* 查询活动的材料收集任务
*/
export function getTasksByActivityId(activityId: string | number): AxiosPromise<StglMaterialTaskVO[]> {
return request({
url: '/stgl/activitymaterial/activity/' + activityId,
method: 'get'
});
}
/**
* 更新任务统计信息
*/
export function updateTaskStatistics(taskId: string | number) {
return request({
url: '/stgl/activitymaterial/statistics/' + taskId,
method: 'put'
});
}
/**
* 根据活动名称查询活动选项(用于选择器)
*/
export function getActivityOptions(activityName?: string): AxiosPromise<StglMaterialTaskVO[]> {
return request({
url: '/stgl/activitymaterial/activity/options',
method: 'get',
params: activityName ? { activityName } : {}
});
}
// ==================== 材料提交相关API ====================
/**
* 查询材料提交记录列表
*/
export function listStglMaterialSubmission(query: StglMaterialSubmissionQuery): AxiosPromise<StglMaterialSubmissionVO[]> {
return request({
url: '/stgl/activitymaterial/submission/list',
method: 'get',
params: query
});
}
/**
* 查询材料提交记录详细
*/
export function getStglMaterialSubmission(id: string | number): AxiosPromise<StglMaterialSubmissionVO> {
return request({
url: '/stgl/activitymaterial/submission/' + id,
method: 'get'
});
}
/**
* 新增材料提交记录
*/
export function addStglMaterialSubmission(data: StglMaterialSubmissionForm) {
return request({
url: '/stgl/activitymaterial/submission',
method: 'post',
data: data
});
}
/**
* 修改材料提交记录
*/
export function updateStglMaterialSubmission(data: StglMaterialSubmissionForm) {
return request({
url: '/stgl/activitymaterial/submission',
method: 'put',
data: data
});
}
/**
* 删除材料提交记录
*/
export function delStglMaterialSubmission(id: string | number | Array<string | number>) {
return request({
url: '/stgl/activitymaterial/submission/' + id,
method: 'delete'
});
}
/**
* 导出材料提交记录
*/
export function exportStglMaterialSubmission(query: StglMaterialSubmissionQuery) {
return request({
url: '/stgl/activitymaterial/submission/export',
method: 'post',
data: query,
responseType: 'blob'
});
}
/**
* 材料上传
*/
export function uploadMaterial(data: StglMaterialSubmissionForm) {
return request({
url: '/stgl/activitymaterial/submission/upload',
method: 'post',
data: data
});
}
/**
* 根据任务ID查询提交记录
*/
export function getSubmissionsByTaskId(taskId: string | number): AxiosPromise<StglMaterialSubmissionVO[]> {
return request({
url: '/stgl/activitymaterial/submission/task/' + taskId,
method: 'get'
});
}
/**
* 查询用户在指定任务的提交记录
*/
export function getSubmissionByTaskIdAndUserId(taskId: string | number, userId: string | number): AxiosPromise<StglMaterialSubmissionVO> {
return request({
url: '/stgl/activitymaterial/submission/task/' + taskId + '/user/' + userId,
method: 'get'
});
}
/**
* 查询团队在指定任务的提交记录
*/
export function getSubmissionByTaskIdAndTeamId(taskId: string | number, teamId: string | number): AxiosPromise<StglMaterialSubmissionVO> {
return request({
url: '/stgl/activitymaterial/submission/task/' + taskId + '/team/' + teamId,
method: 'get'
});
}
/**
* 获取任务的提交统计信息
*/
export function getSubmissionStatistics(taskId: string | number): AxiosPromise<any> {
return request({
url: '/stgl/activitymaterial/submission/statistics/' + taskId,
method: 'get'
});
}
/**
* 审核材料
*/
export function reviewSubmission(id: string | number, reviewStatus: number, reviewRemark?: string) {
const params: any = {
reviewStatus: reviewStatus
};
if (reviewRemark) {
params.reviewRemark = reviewRemark;
}
return request({
url: '/stgl/activitymaterial/submission/review/' + id,
method: 'put',
params: params
});
}
/**
* 批量审核材料
*/
export function batchReviewSubmissions(ids: string, reviewStatus: number, reviewRemark?: string) {
const params: any = {
ids: ids,
reviewStatus: reviewStatus
};
if (reviewRemark) {
params.reviewRemark = reviewRemark;
}
return request({
url: '/stgl/activitymaterial/submission/review/batch',
method: 'put',
params: params
});
}