feat: tighten agent workflow detail UI
Some checks failed
Lint / build (20) (push) Has been cancelled
Playwright Tests / test (push) Has been cancelled

This commit is contained in:
Your Name 2026-05-13 18:33:43 +08:00
parent f0cb1a4f59
commit da6cae9103
2 changed files with 583 additions and 405 deletions

View File

@ -283,6 +283,9 @@ interface AgentModeReferenceSearchResponse {
};
}
const AI_DETAIL_GENERATION_DISABLED_MESSAGE = "开发中";
const IS_AI_DETAIL_GENERATION_DISABLED = true;
function getTaskDetailReferenceSourceLabel(source: AgentTaskDetailReferenceSource) {
return source === "main" ? "主图" : source === "sku" ? "SKU图" : "详情图";
}
@ -296,7 +299,8 @@ function getResultModeTypeByBusinessMode(
}
const canReferenceReplace = mode.referenceReplaceEnabled !== false;
const canAiDetailGenerate = mode.aiDetailGenerateEnabled !== false;
const canAiDetailGenerate =
mode.aiDetailGenerateEnabled !== false && !IS_AI_DETAIL_GENERATION_DISABLED;
if (method === "ai_detail_generate" && canAiDetailGenerate) {
return "detail_generation";
}
@ -1427,7 +1431,7 @@ export function AgentGenerationWorkspaceDarkV2({
const emitAgentModeState = onAgentModeStateChange || setLocalAgentModeState;
const detailReplacementState = resolvedAgentModeState.detailReplacement;
const detailReplacementMethod =
detailReplacementState.method === "ai_detail_generate"
detailReplacementState.method === "ai_detail_generate" && !IS_AI_DETAIL_GENERATION_DISABLED
? "ai_detail_generate"
: "reference_replace";
const detailReplacementReferenceCards = detailReplacementState.references;
@ -4267,6 +4271,21 @@ export function AgentGenerationWorkspaceDarkV2({
},
[updateDetailReplacementState]
);
const handleAiDetailGenerationUnavailableClick = useCallback(() => {
toast.info(AI_DETAIL_GENERATION_DISABLED_MESSAGE);
}, []);
useEffect(() => {
if (!IS_AI_DETAIL_GENERATION_DISABLED) {
return;
}
if (detailReplacementState.method !== "ai_detail_generate") {
return;
}
updateDetailReplacementState((current) => ({
...current,
method: "reference_replace",
}));
}, [detailReplacementState.method, updateDetailReplacementState]);
const updateDetailGenerationBriefField = useCallback(
(key: keyof AgentDetailBriefForm, value: string) => {
updateDetailReplacementState((current) => ({
@ -5790,7 +5809,7 @@ export function AgentGenerationWorkspaceDarkV2({
<div className="space-y-1">
<div className="text-sm font-semibold text-white">详情模式</div>
<div className="text-xs text-emerald-100/72">
顶部直接切换“参考图替换”或“AI详情生成”,生成结果会自动归档到对应分类。
当前可使用“参考图替换”,“AI详情生成”暂为开发中,后续开放后会自动归档到对应分类。
</div>
</div>
<div className="grid w-full grid-cols-2 gap-2 lg:w-auto lg:min-w-[360px]">
@ -5808,12 +5827,11 @@ export function AgentGenerationWorkspaceDarkV2({
</button>
<button
type="button"
onClick={() => updateDetailGenerationMethod("ai_detail_generate")}
onClick={handleAiDetailGenerationUnavailableClick}
aria-disabled="true"
className={cn(
"flex h-11 items-center justify-center rounded-[18px] border text-sm font-medium transition-all",
isDetailAiGenerationMethod
? "border-emerald-300/45 bg-emerald-400/18 text-white shadow-[0_0_0_1px_rgba(110,231,183,0.2),0_10px_28px_rgba(16,185,129,0.16)]"
: "border-white/12 bg-black/25 text-white/68 hover:border-white/22 hover:text-white"
"cursor-not-allowed border-white/10 bg-white/5 text-white/38 hover:border-white/10 hover:bg-white/5 hover:text-white/38"
)}
>
AI详情生成

File diff suppressed because it is too large Load Diff