diff --git a/src/routes/admin/+page.server.ts b/src/routes/admin/+page.server.ts new file mode 100644 index 0000000..bb27b87 --- /dev/null +++ b/src/routes/admin/+page.server.ts @@ -0,0 +1,25 @@ +import type { PageServerLoad } from './$types'; + +export const load: PageServerLoad = async ({ platform }) => { + const db = platform?.env?.DB; + + let postCount = 0; + let tagCount = 0; + + if (db) { + try { + const postResult = await db.prepare('SELECT COUNT(*) as count FROM posts').first(); + const tagResult = await db.prepare('SELECT COUNT(*) as count FROM tags').first(); + + postCount = (postResult?.count as number) || 0; + tagCount = (tagResult?.count as number) || 0; + } catch (err) { + console.error('Error fetching admin dashboard stats:', err); + } + } + + return { + postCount, + tagCount + }; +}; diff --git a/src/routes/admin/+page.svelte b/src/routes/admin/+page.svelte new file mode 100644 index 0000000..83f710b --- /dev/null +++ b/src/routes/admin/+page.svelte @@ -0,0 +1,86 @@ + + +
+

仪表盘

+

欢迎回来,{data.user?.email || '管理员'}!这是您的后台概览。

+ +
+
+

文章总数

+
{data.postCount}
+ 管理文章 → +
+ +
+

标签总数

+
{data.tagCount}
+ 管理标签 → +
+
+
+ + diff --git a/src/routes/admin/settings/+page.server.ts b/src/routes/admin/settings/+page.server.ts new file mode 100644 index 0000000..662be43 --- /dev/null +++ b/src/routes/admin/settings/+page.server.ts @@ -0,0 +1,8 @@ +import type { PageServerLoad } from './$types'; + +export const load: PageServerLoad = async ({ platform, locals }) => { + return { + user: locals.user, + platformEnv: !!platform?.env?.DB ? 'Cloudflare D1 (Connected)' : 'Local Mock' + }; +}; diff --git a/src/routes/admin/settings/+page.svelte b/src/routes/admin/settings/+page.svelte new file mode 100644 index 0000000..99dafdc --- /dev/null +++ b/src/routes/admin/settings/+page.svelte @@ -0,0 +1,108 @@ + + +
+

系统设置

+
+ +
+
+

博客信息

+
+ 博客名称 + BlogFlare +
+
+ 主题风格 + Typecho Theme VOID +
+
+ 驱动框架 + SvelteKit 5 + Cloudflare +
+
+ +
+

安全与环境

+
+ 当前管理员 + {data.user?.email || '未知用户'} +
+
+ 数据库绑定 + {data.platformEnv} +
+
+ 鉴权模式 + Cloudflare Access (Zero Trust) +
+
+
+ +