From 58b13722328dd8df5fb9cb4ce33969bcd4198536 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=AD=99=E4=BD=B3=E8=89=BA?= Date: Mon, 22 Jun 2026 16:11:55 +0800 Subject: [PATCH] =?UTF-8?q?=E7=88=86=E6=AC=BE=E5=BC=80=E5=A4=B4=E5=A4=8D?= =?UTF-8?q?=E5=88=BB=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/components/VideoTrimPicker.tsx | 4 +- video-gen-app/src/pages/GenerateConver.tsx | 9 +- video-gen-app/src/pages/GeneratedRecord.tsx | 151 +++- video-gen-app/src/pages/InitialInfo.tsx | 693 +++++++++------- .../src/pages/InitialReplication.tsx | 767 ++++++++++++------ video-gen-app/src/pages/RemoveInfo.tsx | 662 ++++++++++----- video-gen-app/src/pages/RemoveLens.tsx | 570 +++++++------ video-gen-app/src/pages/RemoveRw.tsx | 620 +++++++++----- video-gen-app/src/pages/css/InitialInfo.css | 100 ++- 9 files changed, 2337 insertions(+), 1239 deletions(-) diff --git a/video-gen-app/src/components/VideoTrimPicker.tsx b/video-gen-app/src/components/VideoTrimPicker.tsx index 81d4096b..765ff816 100644 --- a/video-gen-app/src/components/VideoTrimPicker.tsx +++ b/video-gen-app/src/components/VideoTrimPicker.tsx @@ -588,7 +588,7 @@ const VideoTrimPicker: React.FC = ({ )} -
+
= ({ marginTop: 0, // backgroundColor: '#fff', // border: '3px solid #6366f1', - boxShadow: '0 2px 8px rgba(99, 102, 241, 0.3)', + // boxShadow: '0 2px 8px rgba(99, 102, 241, 0.3)', transition: 'all 0.2s cubic-bezier(0.4, 0, 0.2, 1)', }, }} diff --git a/video-gen-app/src/pages/GenerateConver.tsx b/video-gen-app/src/pages/GenerateConver.tsx index 1369bec2..1d0fb3de 100644 --- a/video-gen-app/src/pages/GenerateConver.tsx +++ b/video-gen-app/src/pages/GenerateConver.tsx @@ -830,7 +830,7 @@ const AIChatPage: React.FC = () => { // ==================== 渲染 ==================== return ( - + {/* 左侧边栏 - 对话列表(已隐藏,保留代码) */} {false && ( { )} {/* 主内容区 */} - + {/* 头部 - 显示对话标题和模型信息 */}
{ diff --git a/video-gen-app/src/pages/GeneratedRecord.tsx b/video-gen-app/src/pages/GeneratedRecord.tsx index 3c067919..eebc84ba 100644 --- a/video-gen-app/src/pages/GeneratedRecord.tsx +++ b/video-gen-app/src/pages/GeneratedRecord.tsx @@ -1,5 +1,6 @@ import React, { useEffect, useState, useLayoutEffect, useRef, useCallback } from 'react'; -import { Button, Empty, Input, Select, Space, Typography, Tag, message, Upload, Modal, Progress, Table } from 'antd'; +import { Button, Empty, Input, Select, Space, Typography, Tag, message, Upload, Modal, Progress, Table, DatePicker } from 'antd'; +import dayjs from 'dayjs'; import { SearchOutlined, FilterOutlined, @@ -32,6 +33,7 @@ const GeneratedRecord: React.FC = () => { const [previewVisible, setPreviewVisible] = useState(false); const [previewItem, setPreviewItem] = useState(null); const videoRef = React.createRef(); + const [selectedDate, setSelectedDate] = useState(''); // 批量上传相关状态 const [uploadModalVisible, setUploadModalVisible] = useState(false); @@ -52,7 +54,7 @@ const GeneratedRecord: React.FC = () => { authStatus: 'pending' | 'authorized' | 'failed'; }[]>([]); const [accountIdInput, setAccountIdInput] = useState(''); - + const [oauthList, setOauthList] = useState([]); const [oauthLoading, setOauthLoading] = useState(false); const [oauthTotal, setOauthTotal] = useState(0); @@ -60,7 +62,7 @@ const GeneratedRecord: React.FC = () => { const [oauthPage, setOauthPage] = useState(1); const [oauthPageSize, setOauthPageSize] = useState(10); const [oauthSelectOpen, setOauthSelectOpen] = useState(false); - + const [batchUploadProgress, setBatchUploadProgress] = useState<{ itemId: string; status: 'pending' | 'uploading' | 'success' | 'error'; @@ -290,7 +292,7 @@ const GeneratedRecord: React.FC = () => { borderRadius: 4, cursor: 'pointer', overflow: 'hidden', - boxShadow: '0 2px 8px rgba(0,0,0,0.1)', + boxShadow: '0 2px 8px rgba(0,0,0,0.1)', transition: 'transform 0.2s, box-shadow 0.2s', }} onClick={!isSelectionMode ? onClick : undefined} @@ -307,7 +309,7 @@ const GeneratedRecord: React.FC = () => { } }} > - + {/* 媒体内容 - 当isLoading为true时开始渲染,加载完成后显示 */} {((mediaType === 'video' && item.videoCoverUrl) || mediaType === 'image') && (isLoading || isLoaded) && !isError && (
{ const res = await getOAuthList({ page, page_size: pageSize }); const data = res?.data || res; console.log(res); - setOauthList(data|| []); + setOauthList(data || []); setOauthTotal(res.pagination.total || 0); } catch (error) { console.error('加载授权列表失败:', error); @@ -678,7 +680,7 @@ const GeneratedRecord: React.FC = () => { const handleStartBatchUpload = async () => { setUploading(true); const uploadProgressMap: { [key: string]: { status: 'pending' | 'uploading' | 'success' | 'error'; message: string } } = {}; - + for (const itemId of selectedItems) { uploadProgressMap[itemId] = { status: 'pending', message: '' }; } @@ -771,6 +773,17 @@ const GeneratedRecord: React.FC = () => { } }; + // 日期选择器变化处理函数 + const handleDateChange = (dateString: string) => { + console.log(dateString); + + console.log('qweqwe'); + + setSelectedDate(dateString); + + + }; + useEffect(() => { setLoading(true); let parameters = ''; @@ -779,27 +792,70 @@ const GeneratedRecord: React.FC = () => { } else { parameters = `?gen_type=${filterMedia}&page=${Pagebreak.page}&page_size=${Pagebreak.pageSize}`; } - gethistory(parameters).then((res: any) => { - const data = Array.isArray(res) ? res : (res?.groups || []); - data.forEach(group => { - group.page = 1; - }); - // 如果是第一页,替换数据;否则追加数据 - if (Pagebreak.page === 1) { - setRecordList(data); - } else { - setRecordList(prev => [...prev, ...data]); - } - setTotalnumber(res?.totalDays || 0); - }).catch((err) => { - if (Pagebreak.page === 1) { - setRecordList([]); + if (selectedDate) { + let parameters = ``; + + if (filterType === 'project') { + parameters = `${selectedDate}?gen_type=${filterMedia}&history_source=generation_record&page=${Pagebreak.page}&page_size=${Pagebreak.pageSize}`; + } else { + parameters = `${selectedDate}?gen_type=${filterMedia}&page=${Pagebreak.page}&page_size=${Pagebreak.pageSize}`; } - }).finally(() => { - setLoading(false); - }); - }, [filterType, filterMedia, Pagebreak.page]); + gethistoryItems(parameters).then((res: any) => { + const data = Array.isArray(res) ? res : (res?.items || []); + let recordList = [{ + generatedDate: res.generatedDate, + items: data, + total: res.total, + page: res.page, + }]; + console.log('data', data); + if (recordList && recordList[0].items.length > 0) { + setRecordList(recordList); + + }else{ + setRecordList([]); + } + + console.log('recordList', recordList); + + }).catch((err) => { + }).finally(() => { + setLoading(false); + }); + + try { + } catch (err) { + } finally { + + } + } else { + gethistory(parameters).then((res: any) => { + const data = Array.isArray(res) ? res : (res?.groups || []); + data.forEach(group => { + group.page = 1; + }); + console.log('qweqweqwe', data); + + // 如果是第一页,替换数据;否则追加数据 + if (Pagebreak.page === 1) { + setRecordList(data); + } else { + setRecordList(prev => [...prev, ...data]); + } + + setTotalnumber(res?.totalDays || 0); + }).catch((err) => { + if (Pagebreak.page === 1) { + setRecordList([]); + } + }).finally(() => { + setLoading(false); + }); + } + + + }, [filterType, filterMedia, Pagebreak.page, selectedDate]); useEffect(() => { setPreTestLoading(true); @@ -878,7 +934,7 @@ const GeneratedRecord: React.FC = () => { }, [filterType, filterMedia]); return ( -
+
{/* Header */} {/*
@@ -1047,6 +1103,23 @@ const GeneratedRecord: React.FC = () => { > 图片 + handleDateChange(dateString || '')} + format="YYYY-MM-DD" + style={{ width: 160, borderRadius: 8, border: '1px solid #e2e8f0' }} + placeholder="选择日期" + /> + {selectedDate && ( + + )}
@@ -1292,7 +1365,7 @@ const GeneratedRecord: React.FC = () => { 选择授权账户(可多选) - +