完善二期清单
This commit is contained in:
@@ -38,6 +38,7 @@ import { useViewMode } from "../components/use-view-mode";
|
||||
import type { Page } from "./route-config";
|
||||
import { statusPill } from "./stage-config";
|
||||
import { productMockCoverUrl } from "./products";
|
||||
import { isLocalLife } from "../product-business";
|
||||
import "../ai-tools-page.css";
|
||||
|
||||
// 工作台生成模式 → 中文标签(优先用它给任务卡命名:能区分模特上身图/平台套图/图片创作,
|
||||
@@ -666,6 +667,14 @@ export function ImageWorkbenchPage({
|
||||
const [productId, setProductId] = useState(initialProductId || products[0]?.id || "");
|
||||
// 选中商品同步到 App(activeProductId),保证切换栏目再回来时初始商品仍是上次选的那个
|
||||
useEffect(() => { if (mode !== "image" && productId) onProductChange?.(productId); }, [mode, productId, onProductChange]);
|
||||
// 本地生活没有模特上身图:进模特工作台时如果带入的是本地生活商品,改选第一个电商商品。
|
||||
useEffect(() => {
|
||||
if (mode !== "model") return;
|
||||
const current = products.find((item) => item.id === productId);
|
||||
if (!current || !isLocalLife(current)) return;
|
||||
const next = products.find((item) => !isLocalLife(item));
|
||||
setProductId(next?.id || "");
|
||||
}, [mode, productId, products]);
|
||||
// YYX#row22:选中(查看)某商品即把它的未读生成任务标记已读 → 角标清零
|
||||
useEffect(() => { if (mode !== "image" && productId && (unreadByProduct?.[productId] ?? 0) > 0) onProductViewed?.(productId); }, [mode, productId, unreadByProduct, onProductViewed]);
|
||||
const product = products.find((item) => item.id === productId) || products[0];
|
||||
@@ -759,6 +768,7 @@ export function ImageWorkbenchPage({
|
||||
// 左侧商品空间搜索(原 input 无 state/无过滤=死框,输入无效);按名称/分类过滤
|
||||
const [prodQuery, setProdQuery] = useState("");
|
||||
const visibleProducts = products.filter((item) => {
|
||||
if (mode === "model" && isLocalLife(item)) return false;
|
||||
const q = prodQuery.trim().toLowerCase();
|
||||
if (!q) return true;
|
||||
return `${item.title} ${item.category || ""}`.toLowerCase().includes(q);
|
||||
|
||||
Reference in New Issue
Block a user