diff --git a/web/src/components/table/task-logs/TaskLogsColumnDefs.js b/web/src/components/table/task-logs/TaskLogsColumnDefs.js
index f895bf01..d44edf05 100644
--- a/web/src/components/table/task-logs/TaskLogsColumnDefs.js
+++ b/web/src/components/table/task-logs/TaskLogsColumnDefs.js
@@ -211,6 +211,7 @@ export const getTaskLogsColumns = ({
copyText,
openContentModal,
isAdminUser,
+ openVideoModal,
}) => {
return [
{
@@ -342,7 +343,13 @@ export const getTaskLogsColumns = ({
const isUrl = typeof text === 'string' && /^https?:\/\//.test(text);
if (isSuccess && isVideoTask && isUrl) {
return (
-
+ {
+ e.preventDefault();
+ openVideoModal(text);
+ }}
+ >
{t('点击预览视频')}
);
diff --git a/web/src/components/table/task-logs/TaskLogsTable.jsx b/web/src/components/table/task-logs/TaskLogsTable.jsx
index cacb12dd..eaf73c71 100644
--- a/web/src/components/table/task-logs/TaskLogsTable.jsx
+++ b/web/src/components/table/task-logs/TaskLogsTable.jsx
@@ -39,6 +39,7 @@ const TaskLogsTable = (taskLogsData) => {
handlePageSizeChange,
copyText,
openContentModal,
+ openVideoModal,
isAdminUser,
t,
COLUMN_KEYS,
@@ -51,6 +52,7 @@ const TaskLogsTable = (taskLogsData) => {
COLUMN_KEYS,
copyText,
openContentModal,
+ openVideoModal,
isAdminUser,
});
}, [
@@ -58,6 +60,7 @@ const TaskLogsTable = (taskLogsData) => {
COLUMN_KEYS,
copyText,
openContentModal,
+ openVideoModal,
isAdminUser,
]);
diff --git a/web/src/components/table/task-logs/index.jsx b/web/src/components/table/task-logs/index.jsx
index c5439bae..a12dab8a 100644
--- a/web/src/components/table/task-logs/index.jsx
+++ b/web/src/components/table/task-logs/index.jsx
@@ -37,7 +37,14 @@ const TaskLogsPage = () => {
<>
{/* Modals */}
-
+
+ {/* 新增:视频预览弹窗 */}
+
{
return (
- {modalContent}
+ {isVideo ? (
+
+ ) : (
+ {modalContent}
+ )}
);
};
diff --git a/web/src/hooks/task-logs/useTaskLogsData.js b/web/src/hooks/task-logs/useTaskLogsData.js
index 70e2bf00..6f6940c4 100644
--- a/web/src/hooks/task-logs/useTaskLogsData.js
+++ b/web/src/hooks/task-logs/useTaskLogsData.js
@@ -63,6 +63,10 @@ export const useTaskLogsData = () => {
const [isModalOpen, setIsModalOpen] = useState(false);
const [modalContent, setModalContent] = useState('');
+ // 新增:视频预览弹窗状态
+ const [isVideoModalOpen, setIsVideoModalOpen] = useState(false);
+ const [videoUrl, setVideoUrl] = useState('');
+
// Form state
const [formApi, setFormApi] = useState(null);
let now = new Date();
@@ -243,6 +247,12 @@ export const useTaskLogsData = () => {
setIsModalOpen(true);
};
+ // 新增:打开视频预览弹窗
+ const openVideoModal = (url) => {
+ setVideoUrl(url);
+ setIsVideoModalOpen(true);
+ };
+
// Initialize data
useEffect(() => {
const localPageSize = parseInt(localStorage.getItem('task-page-size')) || ITEMS_PER_PAGE;
@@ -264,6 +274,11 @@ export const useTaskLogsData = () => {
setIsModalOpen,
modalContent,
+ // 新增:视频弹窗状态
+ isVideoModalOpen,
+ setIsVideoModalOpen,
+ videoUrl,
+
// Form state
formApi,
setFormApi,
@@ -290,6 +305,7 @@ export const useTaskLogsData = () => {
refresh,
copyText,
openContentModal,
+ openVideoModal, // 新增
enrichLogs,
syncPageData,