From 827ceccdf0f501476c20ac5dc709fef0c338e234 Mon Sep 17 00:00:00 2001 From: seaHi Date: Fri, 11 Sep 2026 18:16:11 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=9C=A8=E6=96=87=E7=AB=A0=E4=B8=8E?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E5=90=8E=E5=8F=B0=E4=BE=A7=E8=BE=B9=E6=A0=8F?= =?UTF-8?q?=E9=9B=86=E6=88=90=E5=AA=92=E4=BD=93=E9=99=84=E4=BB=B6=E7=AE=A1?= =?UTF-8?q?=E7=90=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/routes/admin/pages/[id]/+page.svelte | 59 +++-- src/routes/admin/pages/new/+page.svelte | 81 ++++--- src/routes/admin/posts/[id]/+page.svelte | 256 +++++++++++--------- src/routes/admin/posts/new/+page.svelte | 284 +++++++++++++---------- 4 files changed, 395 insertions(+), 285 deletions(-) diff --git a/src/routes/admin/pages/[id]/+page.svelte b/src/routes/admin/pages/[id]/+page.svelte index c2e0b31..78c7e95 100644 --- a/src/routes/admin/pages/[id]/+page.svelte +++ b/src/routes/admin/pages/[id]/+page.svelte @@ -7,6 +7,8 @@ import TextInput from '$lib/components/admin/TextInput.svelte'; import Button from '$lib/components/admin/Button.svelte'; import Alert from '$lib/components/admin/Alert.svelte'; + import Tabs from '$lib/components/admin/Tabs.svelte'; + import ArticleAttachments from '$lib/components/admin/ArticleAttachments.svelte'; import { untrack } from 'svelte'; let { data, form }: { data: PageData; form: ActionData } = $props(); @@ -16,6 +18,9 @@ let slug = $state(initialData.page.slug); let content = $state(initialData.page.content); let mode = $state<'edit' | 'preview'>('edit'); + + let sidebarTab = $state('settings'); + let sessionUploads = $state<{ url: string; key: string; filename: string }[]>([]);
@@ -71,7 +76,10 @@
{#if mode === 'edit'} - + (sessionUploads = [...sessionUploads, img])} + /> {:else}
@@ -82,23 +90,40 @@
- + - + {#if sidebarTab === 'settings'} + + + + {:else} + + {/if}
diff --git a/src/routes/admin/pages/new/+page.svelte b/src/routes/admin/pages/new/+page.svelte index c66741d..f093b40 100644 --- a/src/routes/admin/pages/new/+page.svelte +++ b/src/routes/admin/pages/new/+page.svelte @@ -7,6 +7,8 @@ import TextInput from '$lib/components/admin/TextInput.svelte'; import Button from '$lib/components/admin/Button.svelte'; import Alert from '$lib/components/admin/Alert.svelte'; + import Tabs from '$lib/components/admin/Tabs.svelte'; + import ArticleAttachments from '$lib/components/admin/ArticleAttachments.svelte'; import { createSlugAutoHandler } from '$lib/utils/slugify'; @@ -19,6 +21,9 @@ let isSlugUserModified = $state(false); let isGenerating = $state(false); + let sidebarTab = $state('settings'); + let sessionUploads = $state<{ url: string; key: string; filename: string }[]>([]); + const slugHandler = createSlugAutoHandler({ getSlug: () => slug, setSlug: (val) => (slug = val), @@ -80,7 +85,10 @@
{#if mode === 'edit'} - + (sessionUploads = [...sessionUploads, img])} + /> {:else}
@@ -91,34 +99,51 @@
- + - + {#if sidebarTab === 'settings'} + + + + {:else} + + {/if}
diff --git a/src/routes/admin/posts/[id]/+page.svelte b/src/routes/admin/posts/[id]/+page.svelte index b7acb1e..3996890 100644 --- a/src/routes/admin/posts/[id]/+page.svelte +++ b/src/routes/admin/posts/[id]/+page.svelte @@ -11,6 +11,8 @@ import TextInput from '$lib/components/admin/TextInput.svelte'; import Button from '$lib/components/admin/Button.svelte'; import Alert from '$lib/components/admin/Alert.svelte'; + import Tabs from '$lib/components/admin/Tabs.svelte'; + import ArticleAttachments from '$lib/components/admin/ArticleAttachments.svelte'; import { untrack } from 'svelte'; let { data, form }: { data: PageData; form: ActionData } = $props(); @@ -30,6 +32,9 @@ let tagsList = $state(initialData.tags || []); let seriesList = $state(initialData.series || []); + let sidebarTab = $state('settings'); + let sessionUploads = $state<{ url: string; key: string; filename: string }[]>([]); + function toggleTag(tagId: number) { if (selectedTags.includes(tagId)) { selectedTags = selectedTags.filter((id) => id !== tagId); @@ -155,7 +160,10 @@
{#if mode === 'edit'} - + (sessionUploads = [...sessionUploads, img])} + /> {:else}
@@ -166,126 +174,148 @@
- + - - - - - - - - - diff --git a/src/routes/admin/posts/new/+page.svelte b/src/routes/admin/posts/new/+page.svelte index c579802..cee560a 100644 --- a/src/routes/admin/posts/new/+page.svelte +++ b/src/routes/admin/posts/new/+page.svelte @@ -12,6 +12,8 @@ import TextInput from '$lib/components/admin/TextInput.svelte'; import Button from '$lib/components/admin/Button.svelte'; import Alert from '$lib/components/admin/Alert.svelte'; + import Tabs from '$lib/components/admin/Tabs.svelte'; + import ArticleAttachments from '$lib/components/admin/ArticleAttachments.svelte'; import { untrack } from 'svelte'; import { createSlugAutoHandler } from '$lib/utils/slugify'; @@ -44,6 +46,9 @@ setIsGenerating: (val) => (isGenerating = val) }); + let sidebarTab = $state('settings'); + let sessionUploads = $state<{ url: string; key: string; filename: string }[]>([]); + function handleTitleInput() { slugHandler.onNameInput(title); } @@ -173,7 +178,10 @@
{#if mode === 'edit'} - + (sessionUploads = [...sessionUploads, img])} + /> {:else}
@@ -184,140 +192,162 @@
- + - - - - - - - - -