import { graphqlRequest } from '@/config/api' // 导出评审ZIP的GraphQL变更 const EXPORT_REVIEW_ZIP_MUTATION = ` mutation ExportReviewZip($activityId: ID!, $stageIds: [ID]) { exportReviewZip(activityId: $activityId, stageIds: $stageIds) { success url message } } ` // 异步导出:启动评审导出任务 const START_REVIEW_EXPORT_JOB_MUTATION = ` mutation StartReviewExportJob($activityId: ID!, $stageIds: [ID]) { startReviewExportJob(activityId: $activityId, stageIds: $stageIds) } ` // 查询评审导出任务状态 const GET_REVIEW_EXPORT_JOB_STATUS_QUERY = ` query GetReviewExportJobStatus($jobId: String!) { getReviewExportJobStatus(jobId: $jobId) { jobId status url message progress } } ` /** * 触发评审导出ZIP * @param {number|string} activityId 活动ID(主活动ID) * @param {Array|null} stageIds 可选的阶段ID列表;若为空则导出整个活动 * @returns {Promise<{success: boolean, url?: string, message?: string}>} */ export const exportReviewZip = async (activityId, stageIds = null) => { const result = await graphqlRequest(EXPORT_REVIEW_ZIP_MUTATION, { activityId, stageIds }) return result?.data?.exportReviewZip } /** * 启动评审导出任务,返回 jobId * @param {number|string} activityId * @param {Array|null} stageIds * @returns {Promise} jobId */ export const startReviewExportJob = async (activityId, stageIds = null) => { const result = await graphqlRequest(START_REVIEW_EXPORT_JOB_MUTATION, { activityId, stageIds }) return result?.data?.startReviewExportJob || null } /** * 查询评审导出任务状态 * @param {string} jobId * @returns {Promise<{jobId: string, status: string, url?: string, message?: string, progress?: number} | null>} */ export const getReviewExportJobStatus = async (jobId) => { const result = await graphqlRequest(GET_REVIEW_EXPORT_JOB_STATUS_QUERY, { jobId }) return result?.data?.getReviewExportJobStatus || null } export default { exportReviewZip, startReviewExportJob, getReviewExportJobStatus }