feat(pipeline): V1 雪藏拼接导出(代码保留,V2 恢复)
- 阶段步进器 STAGE_STEPS 去掉「拼接导出」第 5 项 → 菜单只剩 1-4
- 视频阶段「确认视频,进入拼接」入口按钮 {false &&} 隐藏(代码留存)
- 已完成项目落到第 4 阶段(视频)而非被藏的第 5,避免空白
- Stage 5 拼接导出渲染块原样保留,V2 恢复改 false→true + 还原菜单项即可
Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
co-authored by
Claude Opus 4.8
parent
b946a64409
commit
d7f7ed2bae
@@ -231,8 +231,8 @@ const STAGE_STEPS: Array<{ n: number; label: string }> = [
|
|||||||
{ n: 1, label: "脚本" },
|
{ n: 1, label: "脚本" },
|
||||||
{ n: 2, label: "基础资产" },
|
{ n: 2, label: "基础资产" },
|
||||||
{ n: 3, label: "故事板" },
|
{ n: 3, label: "故事板" },
|
||||||
{ n: 4, label: "视频" },
|
{ n: 4, label: "视频" }
|
||||||
{ n: 5, label: "拼接导出" }
|
// V1 雪藏「拼接导出」(代码保留,V2 恢复):{ n: 5, label: "拼接导出" }
|
||||||
];
|
];
|
||||||
|
|
||||||
// 行34 · 行内「添加标签」:点 + 展开输入框,回车 / 失焦提交(空则收起)
|
// 行34 · 行内「添加标签」:点 + 展开输入框,回车 / 失焦提交(空则收起)
|
||||||
@@ -851,7 +851,8 @@ export function PipelinePage(props: {
|
|||||||
|
|
||||||
// 步进器:对齐镜像 activateStage 逻辑。默认(无 hash)pane=脚本(1) 但步进器 active=项目真实阶段;
|
// 步进器:对齐镜像 activateStage 逻辑。默认(无 hash)pane=脚本(1) 但步进器 active=项目真实阶段;
|
||||||
// 一旦导航(hash 或点击),active 跟随所看阶段,completed=max(项目阶段-1, 所看阶段-1)。
|
// 一旦导航(hash 或点击),active 跟随所看阶段,completed=max(项目阶段-1, 所看阶段-1)。
|
||||||
const projectStage = project.status === "completed" ? 5 : Math.max(1, (stageOrder as readonly string[]).indexOf(project.current_stage) + 1);
|
// V1 雪藏拼接导出:已完成项目落到第 4 阶段(视频),不落到被藏的第 5(V2 恢复改回 5)
|
||||||
|
const projectStage = project.status === "completed" ? 4 : Math.max(1, (stageOrder as readonly string[]).indexOf(project.current_stage) + 1);
|
||||||
const initHash = typeof location !== "undefined" ? location.hash.match(/#stage-(\d)/) : null;
|
const initHash = typeof location !== "undefined" ? location.hash.match(/#stage-(\d)/) : null;
|
||||||
const [viewStage, setViewStage] = useState(initHash ? Number(initHash[1]) : 1);
|
const [viewStage, setViewStage] = useState(initHash ? Number(initHash[1]) : 1);
|
||||||
const [navigated, setNavigated] = useState(Boolean(initHash));
|
const [navigated, setNavigated] = useState(Boolean(initHash));
|
||||||
@@ -3017,7 +3018,10 @@ export function PipelinePage(props: {
|
|||||||
<div className="info"><span className="mono">[ 已完成 {segDone} 场 · 总时长 {segTotalSec}s · 失败不扣 · 通过后扣 ]</span></div>
|
<div className="info"><span className="mono">[ 已完成 {segDone} 场 · 总时长 {segTotalSec}s · 失败不扣 · 通过后扣 ]</span></div>
|
||||||
<div className="hstack">
|
<div className="hstack">
|
||||||
<button className="btn" type="button" onClick={() => goStage(3)}><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"><path d="M19 12H5M12 19l-7-7 7-7" /></svg> 返回故事板</button>
|
<button className="btn" type="button" onClick={() => goStage(3)}><svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"><path d="M19 12H5M12 19l-7-7 7-7" /></svg> 返回故事板</button>
|
||||||
|
{/* V1 雪藏拼接导出:隐藏「进入拼接」入口(代码保留,V2 恢复 false→true) */}
|
||||||
|
{false && (
|
||||||
<button className="btn btn-primary btn-lg" type="button" onClick={() => goStage(5)}>确认视频,进入拼接 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"><path d="M5 12h14M12 5l7 7-7 7" /></svg></button>
|
<button className="btn btn-primary btn-lg" type="button" onClick={() => goStage(5)}>确认视频,进入拼接 <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" strokeWidth="1.5" strokeLinecap="round" strokeLinejoin="round"><path d="M5 12h14M12 5l7 7-7 7" /></svg></button>
|
||||||
|
)}
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</section>
|
</section>
|
||||||
|
|||||||
Reference in New Issue
Block a user