From 51196ea0ddc37af66ee20028879fb2b759a6368a Mon Sep 17 00:00:00 2001 From: Your Name Date: Sun, 1 Feb 2026 22:41:42 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=B7=BB=E5=8A=A0=E6=97=A0=E9=99=90?= =?UTF-8?q?=E7=94=BB=E5=B8=83=E8=AE=BE=E7=BD=AE=EF=BC=88=E5=90=AF=E7=94=A8?= =?UTF-8?q?/=E7=A6=81=E7=94=A8=E3=80=81=E9=BB=98=E8=AE=A4=E6=A8=A1?= =?UTF-8?q?=E5=9E=8B=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../settings/admin-settings-client.tsx | 50 +++++++++++++++++++ app/api/site-settings/route.ts | 6 +++ components/canvas/CanvasChatPanel.tsx | 14 ++++-- lib/db/schema.ts | 3 ++ 4 files changed, 68 insertions(+), 5 deletions(-) diff --git a/app/(admin)/settings/admin-settings-client.tsx b/app/(admin)/settings/admin-settings-client.tsx index 2147b71..290aafa 100644 --- a/app/(admin)/settings/admin-settings-client.tsx +++ b/app/(admin)/settings/admin-settings-client.tsx @@ -166,6 +166,8 @@ type SiteSettings = { tutorialVideoUrl: string | null; tutorialEnabled: boolean; rankingEnabled: boolean; + canvasEnabled: boolean; + canvasDefaultModelId: string | null; }; type NavLink = { @@ -378,6 +380,8 @@ export function AdminSettingsClient() { tutorialVideoUrl: null, tutorialEnabled: false, rankingEnabled: true, + canvasEnabled: true, + canvasDefaultModelId: null, }); useEffect(() => { @@ -403,6 +407,8 @@ export function AdminSettingsClient() { tutorialVideoUrl: siteSettingsData.tutorialVideoUrl || null, tutorialEnabled: siteSettingsData.tutorialEnabled ?? false, rankingEnabled: siteSettingsData.rankingEnabled ?? true, + canvasEnabled: siteSettingsData.canvasEnabled ?? true, + canvasDefaultModelId: siteSettingsData.canvasDefaultModelId || null, }); } }, [siteSettingsData]); @@ -2567,6 +2573,50 @@ export function AdminSettingsClient() { )} + + {/* 无限画布设置 */} +
+
+
+ +
+ 开启后,用户可以使用无限画布进行图片编辑和生成 +
+
+ setSiteSettings({ ...siteSettings, canvasEnabled: checked })} + /> +
+ {siteSettings.canvasEnabled && ( +
+ + +
+ 设置无限画布中用户的默认生图模型。"智能自动"会根据用户需求自动选择最佳模型。 +
+
+ )} +