diff --git a/components/agents/AgentGenerationWorkspaceDarkV2.tsx b/components/agents/AgentGenerationWorkspaceDarkV2.tsx
index 074f6adf1..d1b2a014c 100644
--- a/components/agents/AgentGenerationWorkspaceDarkV2.tsx
+++ b/components/agents/AgentGenerationWorkspaceDarkV2.tsx
@@ -3847,6 +3847,45 @@ export function AgentGenerationWorkspaceDarkV2({
生成参数
+ {isDetailReplacementPreset ? (
+
+
+
+
详情模式
+
+ 顶部直接切换“参考图替换”或“AI详情生成”,生成结果会自动归档到对应分类。
+
+
+
+
+
+
+
+
+ ) : null}
+
{isReplacementPreset || isDetailAiGenerationMethod ? (
{isDetailAiGenerationMethod
@@ -3963,50 +4002,6 @@ export function AgentGenerationWorkspaceDarkV2({
- {isDetailReplacementPreset ? (
-
-
-
-
详情模式
-
- 在“参考图替换”和“AI详情生成”之间切换,结果会分别保存到各自分类中。
-
-
-
-
-
-
-
-
- ) : null}
-
{isDetailReplacementPreset && !isDetailAiGenerationMethod ? (
("all");
const [hasManualSelectionInteraction, setHasManualSelectionInteraction] = useState(false);
const [isResultDetailsExpanded, setIsResultDetailsExpanded] = useState(true);
const selectedSet = useMemo(
@@ -112,6 +112,7 @@ export function AgentWorkflowMaterialPicker({
].filter((item) => Boolean(item.value));
const remainingSelectableCount =
resolvedSelectionLimit === null ? null : Math.max(resolvedSelectionLimit - selectedCount, 0);
+ const totalImageCount = result?.images?.length || 0;
const hasSystemRecommendedSelection =
result?.queryType === "sku" &&
recommendedImageIds.length > 0 &&
@@ -119,10 +120,20 @@ export function AgentWorkflowMaterialPicker({
recommendedImageIds.every((id) => selectedSet.has(id));
const isAutoSelectedResult =
Boolean(hasSystemRecommendedSelection) && !hasManualSelectionInteraction;
+ const canTogglePreviewMode = totalImageCount > 0 && selectedCount > 0 && selectedCount < totalImageCount;
const collapsedResultSummary = useMemo(() => {
const title = result?.goodsInfo?.productName || result?.matchedSku || result?.query || "当前SKU";
return `${title} · 系统已自动选中 ${selectedCount} 张图`;
}, [result?.goodsInfo?.productName, result?.matchedSku, result?.query, selectedCount]);
+ const visibleImages = useMemo(() => {
+ if (!result?.images?.length) {
+ return [];
+ }
+ if (previewDisplayMode === "selected" && selectedCount > 0) {
+ return result.images.filter((image) => selectedSet.has(image.id));
+ }
+ return result.images;
+ }, [previewDisplayMode, result?.images, selectedCount, selectedSet]);
const previewResetKey = useMemo(
() =>
JSON.stringify({
@@ -136,9 +147,15 @@ export function AgentWorkflowMaterialPicker({
useEffect(() => {
setHasManualSelectionInteraction(false);
- setIsImagePreviewExpanded(!hasSystemRecommendedSelection);
+ }, [previewResetKey]);
+
+ useEffect(() => {
+ if (hasManualSelectionInteraction) {
+ return;
+ }
+ setPreviewDisplayMode(hasSystemRecommendedSelection ? "selected" : "all");
setIsResultDetailsExpanded(!hasSystemRecommendedSelection);
- }, [hasSystemRecommendedSelection, previewResetKey]);
+ }, [hasManualSelectionInteraction, hasSystemRecommendedSelection, previewResetKey]);
const handleToggleImage = (imageId: string) => {
setHasManualSelectionInteraction(true);
@@ -304,7 +321,7 @@ export function AgentWorkflowMaterialPicker({
{collapsedResultSummary}
- 需要检查商品信息、已选图片或手动微调时,再展开查看。
+ 默认先替你收起结果区,需要检查商品信息、已选图片或手动微调时再展开查看。
) : (
@@ -381,21 +398,48 @@ export function AgentWorkflowMaterialPicker({
) : null}
-
- {isAutoSelectedResult ? (
-
@@ -523,7 +582,7 @@ export function AgentWorkflowMaterialPicker({
{result.images?.length ? (
- {isAutoSelectedResult ? (
+ {isAutoSelectedResult || canTogglePreviewMode ? (
- 系统已按权重自动选中 {selectedCount} 张 SKU 图,默认收起预览;需要检查或微调时再手动展开。
+ {previewDisplayMode === "selected"
+ ? `当前优先展示已选中的 ${selectedCount} 张图片,便于你快速确认结果。`
+ : `当前展示全部 ${totalImageCount} 张候选图片,可继续手动微调选图。`}
-
setIsImagePreviewExpanded((current) => !current)}
- className={cn(
- "shrink-0",
- isDark &&
- "border-white/12 bg-white/[0.04] text-white/82 hover:bg-white/[0.10] hover:text-white"
- )}
- >
- {isImagePreviewExpanded ? (
- <>
-
- 收起预览
- >
- ) : (
- <>
-
- 展开预览
- >
- )}
-
+ {canTogglePreviewMode ? (
+
+ 在上方切换“已选 / 全部”即可,无需再单独收起预览。
+
+ ) : null}
) : null}
- {(!isAutoSelectedResult || isImagePreviewExpanded) ? (
+ {visibleImages.length > 0 ? (
- {result.images.map((image) => {
+ {visibleImages.map((image) => {
const selected = selectedSet.has(image.id);
const isPlaceholder = !String(image.imageUrl || "").trim();
return (
@@ -648,7 +691,23 @@ export function AgentWorkflowMaterialPicker({
);
})}
- ) : null}
+ ) : (
+
+
+ 当前没有可展示的已选图片
+
+
+ 切换到“全部 {totalImageCount}”可查看全部候选图片并重新调整。
+
+
+ )}
) : null}