// 媒体查询 API const GRAPHQL_ENDPOINT = 'http://localhost:8080/api/graphql'; const MEDIAS_BY_TARGET_QUERY = ` query MediasByTarget($targetType: Int!, $targetId: ID!) { mediasByTarget(targetType: $targetType, targetId: $targetId) { id name path fileExt mediaType fullUrl } } `; const SAVE_MEDIA_MUTATION = ` mutation SaveMedia($input: MediaInput!) { saveMedia(input: $input) { id name path fileExt mediaType fullUrl targetType targetId } } `; const DELETE_MEDIA_MUTATION = ` mutation DeleteMedia($id: ID!) { deleteMedia(id: $id) } `; export const getMediasByTarget = async (targetType, targetId) => { const res = await fetch(GRAPHQL_ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query: MEDIAS_BY_TARGET_QUERY, variables: { targetType, targetId } }) }); const result = await res.json(); if (result.errors) { throw new Error(result.errors[0].message); } return result.data.mediasByTarget || []; }; export const saveMedia = async (input) => { const res = await fetch(GRAPHQL_ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query: SAVE_MEDIA_MUTATION, variables: { input } }) }); const result = await res.json(); if (result.errors) { throw new Error(result.errors[0].message); } return result.data.saveMedia; }; export const deleteMedia = async (id) => { console.log('=== deleteMedia API调用 ==='); console.log('要删除的媒体ID:', id); console.log('GraphQL查询:', DELETE_MEDIA_MUTATION); const res = await fetch(GRAPHQL_ENDPOINT, { method: 'POST', headers: { 'Content-Type': 'application/json' }, body: JSON.stringify({ query: DELETE_MEDIA_MUTATION, variables: { id: id.toString() } }) }); const result = await res.json(); console.log('GraphQL响应:', result); console.log('deleteMedia结果:', result.data?.deleteMedia); if (result.errors) { console.error('GraphQL错误:', result.errors); throw new Error(result.errors[0].message); } const deleteResult = result.data.deleteMedia; console.log('返回的删除结果:', deleteResult, '类型:', typeof deleteResult); return deleteResult; }; // 上传文件到服务器 export const uploadFile = async (file) => { const formData = new FormData(); formData.append('file', file); const response = await fetch('http://localhost:8080/api/upload/image', { method: 'POST', body: formData }); const result = await response.json(); if (!result.success) { throw new Error(result.error || '上传失败'); } return result; };