diff --git a/web/src/pages/TemplateEditor.tsx b/web/src/pages/TemplateEditor.tsx index 4acf045..da05ee7 100644 --- a/web/src/pages/TemplateEditor.tsx +++ b/web/src/pages/TemplateEditor.tsx @@ -184,10 +184,19 @@ export default function TemplateEditor() { }; const handleDeletePoint = async (pointId: string) => { - await pointApi.deleteGenerationPoint(pointId); - message.success("删除成功"); - const updated = await pointApi.listGenerationPoints(id!); - setPoints(updated); + try { + await pointApi.deleteGenerationPoint(pointId); + message.success("删除成功"); + } catch (err: unknown) { + if (err instanceof Error) message.error(err.message); + return; + } + try { + const updated = await pointApi.listGenerationPoints(id!); + setPoints(updated); + } catch { + setPoints((prev) => prev.filter((p) => p.id !== pointId)); + } }; const handleDragStart = (_e: React.DragEvent, index: number) => { @@ -496,7 +505,13 @@ export default function TemplateEditor() { setGenerateModalOpen(false)} + onClose={async () => { + setGenerateModalOpen(false); + try { + const updated = await pointApi.listGenerationPoints(id!); + setPoints(updated); + } catch {} + }} templateId={id || ""} points={points} models={models} diff --git a/web/src/pages/TemplateList.tsx b/web/src/pages/TemplateList.tsx index ba8bd98..eb1f089 100644 --- a/web/src/pages/TemplateList.tsx +++ b/web/src/pages/TemplateList.tsx @@ -9,6 +9,7 @@ export default function TemplateList() { const navigate = useNavigate(); const [templates, setTemplates] = useState([]); const [loading, setLoading] = useState(false); + const [refresh, setRefresh] = useState(0); const fetchTemplates = useCallback(async () => { setLoading(true); @@ -24,12 +25,12 @@ export default function TemplateList() { useEffect(() => { fetchTemplates(); - }, [fetchTemplates]); + }, [fetchTemplates, refresh]); const handleDelete = async (id: string) => { await templateApi.deleteTemplate(id); message.success("删除成功"); - fetchTemplates(); + setRefresh((r) => r + 1); }; const columns = [ @@ -92,7 +93,7 @@ export default function TemplateList() { try { await templateApi.uploadTemplate(file as File); message.success("上传成功"); - fetchTemplates(); + setRefresh((r) => r + 1); onSuccess?.("ok"); } catch { message.error("上传失败");