From a07e6e4e98bb337926d1c24be411a8a0682d6607 Mon Sep 17 00:00:00 2001
From: admin <572701190@qq.com>
Date: Thu, 16 Apr 2026 17:15:37 +0800
Subject: [PATCH] backup before modification at 2026-04-16-17-15-37
---
src/pages/ReportEditor.tsx | 41 +++++++--
工程分析/实现方案-2026-04-16-17-07-04.md | 102 +++++++++++++++++++++++
工程分析/测试方案-2026-04-16-17-07-04.md | 88 +++++++++++++++++++
工程分析/经验记录.md | 20 +++++
工程分析/需求分析-2026-04-16-17-07-04.md | 26 ++++++
5 files changed, 269 insertions(+), 8 deletions(-)
create mode 100644 工程分析/实现方案-2026-04-16-17-07-04.md
create mode 100644 工程分析/测试方案-2026-04-16-17-07-04.md
create mode 100644 工程分析/需求分析-2026-04-16-17-07-04.md
diff --git a/src/pages/ReportEditor.tsx b/src/pages/ReportEditor.tsx
index 3a4306b..a262a28 100644
--- a/src/pages/ReportEditor.tsx
+++ b/src/pages/ReportEditor.tsx
@@ -507,21 +507,38 @@ export default function ReportEditor() {
e.dataTransfer.setData('frameId', frame.id.toString());
};
+ const fillPlaceholder = (placeholder: HTMLElement, frame: CapturedFrame) => {
+ placeholder.innerHTML = `
+ ×
+
+ `;
+ placeholder.classList.add('has-image');
+ if (editorRef.current) contentRef.current = editorRef.current.innerHTML;
+ saveDraftToStorage();
+ };
+
const handleDrop = (e: React.DragEvent, placeholder: HTMLElement) => {
e.preventDefault();
const frameId = e.dataTransfer.getData('frameId');
const frame = capturedFrames.find(f => f.id.toString() === frameId);
if (frame) {
- placeholder.innerHTML = `
- ×
-
- `;
- placeholder.classList.add('has-image');
- if (editorRef.current) contentRef.current = editorRef.current.innerHTML;
- saveDraftToStorage();
+ fillPlaceholder(placeholder, frame);
}
};
+ const insertFrameToPlaceholder = (frame: CapturedFrame) => {
+ if (!editorRef.current) {
+ alert('编辑器未准备好');
+ return;
+ }
+ const emptyPlaceholder = editorRef.current.querySelector('.image-placeholder:not(.has-image)') as HTMLElement | null;
+ if (!emptyPlaceholder) {
+ alert('没有可插入图片的空位');
+ return;
+ }
+ fillPlaceholder(emptyPlaceholder, frame);
+ };
+
const seekToFrame = (frame: CapturedFrame) => {
if (!videoRef.current) return;
if (frame.videoIndex !== currentVideoIndex) {
@@ -1302,7 +1319,15 @@ export default function ReportEditor() {
{frame.timeFormatted}
-
可拖拽
+
+
+ 可拖拽
+