From d0455837685d8088a257a31df34be328eb1fda79 Mon Sep 17 00:00:00 2001 From: "wang.yu" Date: Tue, 18 Aug 2026 07:47:50 +0800 Subject: [PATCH] =?utf8?q?fix:=20=E5=8F=8D=E9=A6=88=E9=87=8D=E6=96=B0?= =?utf8?q?=E7=94=9F=E6=88=90=E7=BB=93=E6=9D=9F=E5=90=8E=E6=8C=89=E9=92=AE?= =?utf8?q?=E5=8D=A1=E5=9C=A8=E3=80=8C=E9=87=8D=E6=96=B0=E7=94=9F=E6=88=90?= =?utf8?q?=E4=B8=AD=E2=80=A6=E3=80=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=utf8 Content-Transfer-Encoding: 8bit - refineCube 流结束后立即复位 refining 并关闭弹窗,站点刷新改为后台异步(不再阻塞按钮复位) - 新增 >10 分钟看门狗:流异常挂起时强制复位并关闭窗口,避免界面卡死 - 同步更新 design-doc 第 8 节反馈说明 --- app/page.tsx | 19 +++++++++++++++---- public/design-doc.html | 2 +- 2 files changed, 16 insertions(+), 5 deletions(-) diff --git a/app/page.tsx b/app/page.tsx index 3e9dfd4..bbad49e 100644 --- a/app/page.tsx +++ b/app/page.tsx @@ -212,6 +212,13 @@ export default function Home(){ if(!feedback.trim()){ notify("请填写修改意见"); return; } setRefining(true); setRefineLog(""); + // 看门狗:极端情况下(如模型进程异常挂起)流一直不结束,超时后强制复位并关闭窗口,避免按钮卡在「重新生成中…」 + const watchdog = setTimeout(() => { + setRefining(false); + setModal(""); + setFeedbackCube(null); + notify("重新生成超过预期时长(>10 分钟),已自动结束并关闭窗口,可重新打开再试"); + }, 600000); try{ const res = await fetch(`/api/db/sites/${site.id}/cubes/${cube.id}/refine`, { method:"POST", @@ -233,13 +240,17 @@ export default function Home(){ } } notify(`已根据修改意见重新生成「${cube.name}」`); - const refreshed:SiteDetail = await fetchDb(`/sites/${site.id}`); - setSite(refreshed); - setSiteId(site.id); + // 流结束后立即复位 UI 并关闭窗口,避免等待站点刷新接口期间按钮持续显示「重新生成中…」 + setRefining(false); setModal(""); setFeedbackCube(null); + try{ + const refreshed:SiteDetail = await fetchDb(`/sites/${site.id}`); + setSite(refreshed); + setSiteId(site.id); + }catch{} }catch(e:any){ notify("重新生成失败:"+(e?.message||e)); } - finally{ setRefining(false); } + finally{ clearTimeout(watchdog); setRefining(false); } }; useEffect(()=>{ if(aiEndRef.current) aiEndRef.current.scrollIntoView({block:"end"}); }, [aiMessages, aiOpen]); diff --git a/public/design-doc.html b/public/design-doc.html index 555b9de..d8a5c0c 100644 --- a/public/design-doc.html +++ b/public/design-doc.html @@ -317,7 +317,7 @@

8. 模态框(Modal)

- + -- 2.43.0
类型功能交互效果
提出修改意见(feedback)对单页提反馈并重新生成弹窗顶部即「修改意见」输入框(自动聚焦),下方展示影响范围(仅当前页 / 模拟数据 / 不受影响项);提交后弹窗内出现黑底白字的 AI 生成工作流 终端,实时滚动 AI/Skill 生成进度,完成后自动刷新并关闭
提出修改意见(feedback)对单页提反馈并重新生成弹窗顶部即「修改意见」输入框(自动聚焦),下方展示影响范围(仅当前页 / 模拟数据 / 不受影响项);提交后弹窗内出现黑底白字的 AI 生成工作流 终端,实时滚动 AI/Skill 生成进度;流结束后立即复位「重新生成中…」按钮并自动刷新站点、关闭弹窗,并设有 >10 分钟超时看门狗兜底,避免界面卡在「生成中」
下载站点交付物(download)选择下载项列表含 Cube JSON / 菜单配置 / 报告;Asset Excel 占位 尚未实现
版本历史(history)查看版本仅展示 V1 当前版本 真实版本管理尚未实现
生成提示词(prompt)查看/复制组合提示词展示发送给模型的完整提示词,可复制到剪贴板