| | |
| | | }; |
| | | |
| | | export const deleteMedia = async (id) => { |
| | | console.log('=== deleteMedia API调用 ==='); |
| | | console.log('要删除的媒体ID:', id); |
| | | console.log('GraphQL查询:', DELETE_MEDIA_MUTATION); |
| | | |
| | | // 获取JWT token |
| | | const { getToken } = await import('@/utils/auth'); |
| | | const token = getToken(); |
| | | const headers = { 'Content-Type': 'application/json' }; |
| | | if (token) { |
| | | headers['Authorization'] = `Bearer ${token}`; |
| | | try { |
| | | const variables = { id: parseInt(id) }; |
| | | |
| | | // 发送GraphQL请求 |
| | | const result = await graphqlRequest(DELETE_MEDIA_MUTATION, variables); |
| | | |
| | | // 检查返回结果 |
| | | const deleteResult = result.data?.deleteMedia; |
| | | |
| | | return deleteResult; |
| | | } catch (error) { |
| | | throw new Error(`删除媒体失败: ${error.message}`); |
| | | } |
| | | |
| | | const res = await fetch(GRAPHQL_ENDPOINT, { |
| | | method: 'POST', |
| | | headers: headers, |
| | | 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; |
| | | }; |
| | | |
| | | // 上传文件到服务器 |
| | |
| | | const { extractVideoFrame, generateThumbnailFileName } = await import('@/utils/video.js'); |
| | | |
| | | try { |
| | | console.log('开始处理视频文件:', videoFile.name); |
| | | |
| | | // 1. 上传原视频文件 |
| | | console.log('上传视频文件...'); |
| | | // 1. 上传视频文件 |
| | | const videoUploadResult = await uploadFile(videoFile); |
| | | console.log('视频上传成功:', videoUploadResult); |
| | | |
| | | // 2. 提取视频第一帧 |
| | | console.log('提取视频第一帧...'); |
| | | const thumbnailBlob = await extractVideoFrame(videoFile); |
| | | console.log('视频帧提取成功,大小:', thumbnailBlob.size); |
| | | |
| | | // 3. 创建缩略图文件对象 |
| | | const thumbnailFileName = generateThumbnailFileName(videoFile.name); |
| | |
| | | }); |
| | | |
| | | // 4. 上传缩略图 |
| | | console.log('上传缩略图...'); |
| | | const thumbnailUploadResult = await uploadFile(thumbnailFile); |
| | | console.log('缩略图上传成功:', thumbnailUploadResult); |
| | | |
| | | // 5. 返回包含视频和缩略图信息的结果 |
| | | return { |