From: wang.yu Date: Mon, 17 Aug 2026 23:47:50 +0000 (+0800) Subject: fix: 反馈重新生成结束后按钮卡在「重新生成中…」 X-Git-Url: http://acesimba.cloud/gitweb/?a=commitdiff_plain;h=d0455837685d8088a257a31df34be328eb1fda79;p=StationBuilder.git fix: 反馈重新生成结束后按钮卡在「重新生成中…」 - refineCube 流结束后立即复位 refining 并关闭弹窗,站点刷新改为后台异步(不再阻塞按钮复位) - 新增 >10 分钟看门狗:流异常挂起时强制复位并关闭窗口,避免界面卡死 - 同步更新 design-doc 第 8 节反馈说明 --- 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)

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