From 45ff7838d8e6a8ef92a9702310391b774111f101 Mon Sep 17 00:00:00 2001 From: hh <2587203630@qq.com> Date: Tue, 7 Jul 2026 14:07:17 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=A7=86=E9=A2=91=E8=84=9A=E6=9C=AC?= =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E5=88=86=E9=95=9C=E6=9C=80=E5=90=8E=E4=B8=80?= =?UTF-8?q?=E4=B8=AA=E6=8C=89=E9=92=AE=E4=B8=8D=E9=9A=90=E8=97=8F-?= =?UTF-8?q?=E8=87=AA=E5=B8=A6=E8=84=9A=E6=9C=AC=E7=A7=BB=E9=99=A4=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- core/frontend/src/pipeline-page.css | 2 ++ core/frontend/src/routes/pipeline.tsx | 22 ++++++++++++++++++---- 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/core/frontend/src/pipeline-page.css b/core/frontend/src/pipeline-page.css index cdf563c..f8c0600 100644 --- a/core/frontend/src/pipeline-page.css +++ b/core/frontend/src/pipeline-page.css @@ -220,6 +220,8 @@ .shot-insert-gap .add-shot-btn svg { width: 12px; height: 12px; } .shot-insert-gap:hover .add-shot-btn { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; } .shot-insert-gap .add-shot-btn:hover { background: var(--heat-12); border-style: solid; border-color: var(--heat); } + .shot-insert-gap--bottom { height: 72px; padding: 14px 0; } + .shot-insert-gap--bottom .add-shot-btn { opacity: 1; transform: translateY(0) scale(1); pointer-events: auto; } /* ── Stage 4 · 视频详情弹窗(对齐设计稿 video-detail-modal) ── */ .asset-modal-bg { position: fixed; inset: 0; background: rgba(0,0,0,.4); z-index: 1010; display: flex; align-items: center; justify-content: center; padding: 40px; } diff --git a/core/frontend/src/routes/pipeline.tsx b/core/frontend/src/routes/pipeline.tsx index ec4c221..9d81612 100644 --- a/core/frontend/src/routes/pipeline.tsx +++ b/core/frontend/src/routes/pipeline.tsx @@ -1451,6 +1451,10 @@ export function PipelinePage(props: { } if (setupSource === "manual") { const base = chatText.trim(); + if (!base) { + chatTextareaRef.current?.focus(); + return; + } setChatText(""); await runScriptGeneration(`${base ? `${base}\n` : ""}据此整理成镜头脚本。风格:${styleLabel},目标人群:${personaLabel}`, `自带脚本 · ${styleLabel} · ${personaLabel}`, "manual"); return; @@ -1513,7 +1517,13 @@ export function PipelinePage(props: { setSetupOpen(true); // 一句话主题:开卡时不再 push 提示(否则 chatMsgs 非空,点返回就回不到三选项); // 主题改成在「确定」(确认风格/人物)之后由模型来问,更像对话流。 - if (source === "manual") { pickScriptMode(); } + if (source === "manual") { + setChatText(""); + setChatAttachments([]); + window.setTimeout(() => chatTextareaRef.current?.focus(), 0); + } + // 文件上传入口先保留,当前「自带脚本」改为粘贴文本。 + // if (source === "manual") { pickScriptMode(); } } function pickScriptMode() { setChatMode("manual"); @@ -2668,7 +2678,7 @@ export function PipelinePage(props: { onCommit={(d) => { setDraftShots((list) => list.filter((x) => x.id !== d.id)); if ((d.narration || d.visual).trim()) void onAddShot(d.afterId || shot.id, { narration: d.narration, visual_prompt: d.visual }); }} onCancel={(id) => setDraftShots((list) => list.filter((x) => x.id !== id))} /> ))} -