完成极速成品和脚本优化

This commit is contained in:
Azmat@qq.com
2026-08-25 11:13:07 +08:00
parent 00fc454db7
commit e2ec2d14af
46 changed files with 4734 additions and 432 deletions
+22 -6
View File
@@ -45,7 +45,7 @@ import {
TeamPage
} from "./routes";
import type { AuthMode, NavigateOptions, Notice, Page, ResolvedRoute } from "./routes/route-config";
import { isOwnerOnlyPage, parentPage, pathForPage, resolveRoute } from "./routes/route-config";
import { isOwnerOnlyPage, isPage, parentPage, pathForPage, resolveRoute, routeLabels } from "./routes/route-config";
import { AdminApp } from "./routes/admin/admin-app";
import { TrashPage } from "./routes/trash";
import { ModelsPage } from "./routes/models";
@@ -522,8 +522,8 @@ export function App() {
setNotice({ type: "info", text: "当前账号暂无访问权限" });
return;
}
// 图片创作只有显式入口才携带商品;从图片生成首页进入时不能继承全局当前商品。
const productId = next === "imageOptimize" ? options.productId : (options.productId ?? activeProductId);
// 图片创作 / 极速成片只有显式入口才携带商品;从工作台或视频创作进入时不能继承全局当前商品。
const productId = next === "imageOptimize" || next === "quickCreate" ? options.productId : (options.productId ?? activeProductId);
const projectId = options.projectId ?? activeProjectId;
if (options.productId !== undefined) setActiveProductId(options.productId);
if (options.projectId !== undefined) setActiveProjectId(options.projectId);
@@ -566,8 +566,14 @@ export function App() {
window.scrollTo({ top: 0, behavior: "auto" });
}
function entryOrigin(fallback: Page = parentPage(page)): Page {
const fromPage = readNavState(window.history.state)?.from?.page;
return fromPage && isPage(fromPage) ? fromPage : fallback;
}
function goBack(fallback: Page = parentPage(page)) {
if (readNavState(window.history.state)?.from?.page) {
const from = readNavState(window.history.state)?.from;
if (from?.page && isPage(from.page)) {
window.history.back();
return;
}
@@ -900,7 +906,7 @@ export function App() {
);
case "productCreateUpload":
// 设计稿:新建商品是商品库页上的右侧 Drawer(非独立整页),进入即自动打开
// 创建成功后由 ProductsPage 弹「继续创建商品 / 去新建项目」选择弹窗,不再自动跳详情
// 创建成功后由 ProductsPage 弹「继续创建商品 / 极速成片 / 专业创作」选择弹窗,不再自动跳详情
return (
<ProductsPage
products={products}
@@ -1048,7 +1054,17 @@ export function App() {
case "freeCreate":
return <FreeCreatePage modelConfigs={modelConfigs} onNotify={(type, text) => setNotice({ type, text })} onTaskSettled={refreshFreeCreateShell} onBack={() => goBack("projects")} />;
case "quickCreate":
return <QuickCreatePage onBack={() => goBack("projects")} />;
return (
<QuickCreatePage
onBack={() => goBack(entryOrigin("projects"))}
backLabel={`返回${routeLabels[entryOrigin("projects")]}`}
initialProductId={route.productId}
navigate={navigate}
modelConfigs={modelConfigs}
onNotify={(type, text) => setNotice({ type, text })}
onProjectCreated={() => { void loadData(); }}
/>
);
case "videoRemix":
return <VideoRemixPage textModels={modelConfigs.filter((m) => m.capability === "text" && m.status === "active")} onNotify={(type, text) => setNotice({ type, text })} onBack={() => goBack("projects")} navigate={navigate} />;
case "imageOptimize":