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}
-
可拖拽
+
+
+ 可拖拽
+