From c2ac560527a98792d84570db3b3f993eb330b084 Mon Sep 17 00:00:00 2001 From: zhangshun <453905631@qq.com> Date: Mon, 25 May 2026 08:49:29 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E5=BA=93=E5=88=9D=E7=89=88?= =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/folders.ts | 12 ++++++++++-- server/src/types.ts | 1 + web/src/pages/app/layout.ts | 1 - web/src/pages/app/modules/folders.ts | 4 ++-- web/src/pages/app/modules/models.ts | 1 - web/src/styles/base.css | 3 +++ web/src/types.ts | 1 + 7 files changed, 17 insertions(+), 6 deletions(-) diff --git a/server/src/folders.ts b/server/src/folders.ts index 3f0a997..464c5b8 100644 --- a/server/src/folders.ts +++ b/server/src/folders.ts @@ -20,7 +20,7 @@ const updateSchema = z.object({ function buildTree(rows: FolderRow[]) { const nodes = rows.map((row) => ({ id: String(row.id), - text: row.name, + text: `${row.name}(${row.model_count ?? 0})`, parentId: row.parent_id, path: row.path, children: [] as unknown[] @@ -53,7 +53,15 @@ function assertCanRenameRoot(folder: FolderRow) { export async function folderRoutes(app: FastifyInstance) { app.get("/api/folders", { preHandler: [requireAuth] }, async () => { - const rows = db.prepare("SELECT * FROM folders ORDER BY parent_id, name").all() as unknown as FolderRow[]; + const rows = db.prepare(` + SELECT + f.*, + COUNT(m.id) AS model_count + FROM folders f + LEFT JOIN models m ON m.folder_id = f.id + GROUP BY f.id + ORDER BY f.parent_id, f.name + `).all() as unknown as FolderRow[]; return { folders: rows, tree: buildTree(rows) }; }); diff --git a/server/src/types.ts b/server/src/types.ts index 213755c..08a687d 100644 --- a/server/src/types.ts +++ b/server/src/types.ts @@ -22,6 +22,7 @@ export interface FolderRow { parent_id: number | null; name: string; path: string; + model_count?: number; created_at: string; updated_at: string; } diff --git a/web/src/pages/app/layout.ts b/web/src/pages/app/layout.ts index 213be35..36d6f82 100644 --- a/web/src/pages/app/layout.ts +++ b/web/src/pages/app/layout.ts @@ -32,7 +32,6 @@ export async function renderApp() {