From da0333e09c8c1b0a3b7e6c0d78fd49359b7016ba Mon Sep 17 00:00:00 2001 From: Sakurasan <26715255+Sakurasan@users.noreply.github.com> Date: Mon, 28 Sep 2026 22:30:02 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A0=87=E7=AD=BE=E5=8F=AA=E5=B1=9E=E4=BA=8E?= =?UTF-8?q?=E9=95=BF=E6=96=87=EF=BC=9A=E7=9F=AD=E6=96=87=E8=90=BD=E5=BA=93?= =?UTF-8?q?=E5=BC=BA=E5=88=B6=E6=B8=85=E7=A9=BA=E6=A0=87=E7=AD=BE=EF=BC=8C?= =?UTF-8?q?=E7=BC=96=E8=BE=91=E5=99=A8=E5=88=87=E5=88=B0=E7=9F=AD=E6=96=87?= =?UTF-8?q?=E9=9A=90=E8=97=8F=E5=B9=B6=E6=B8=85=E7=A9=BA=E6=A0=87=E7=AD=BE?= =?UTF-8?q?=E6=A0=8F=EF=BC=8C=E5=AD=98=E9=87=8F=E7=9F=AD=E6=96=87=E6=A0=87?= =?UTF-8?q?=E7=AD=BE=E5=85=B3=E8=81=94=E5=B7=B2=E6=B8=85=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/internal/store/store.go | 16 +++++++++++++--- frontend/src/admin/EditorView.vue | 10 +++++++++- 2 files changed, 22 insertions(+), 4 deletions(-) diff --git a/backend/internal/store/store.go b/backend/internal/store/store.go index 575cce5..78b5e10 100644 --- a/backend/internal/store/store.go +++ b/backend/internal/store/store.go @@ -995,7 +995,12 @@ func (s *Store) Create(in model.PostInput) (model.Post, error) { } } p.ID = id - if err := s.setTags(id, in.Tags); err != nil { + // 标签是长文的组织方式;短文(类推微博)一律不打标签 + tags := in.Tags + if p.Kind == model.KindShort { + tags = nil + } + if err := s.setTags(id, tags); err != nil { return p, err } return s.Get(id) @@ -1054,8 +1059,13 @@ func (s *Store) Update(id int64, in model.PostInput) (model.Post, error) { p.PublishedAt, p.UpdatedAt, p.ReadingMinutes, encodeImages(p.Images), encodeLinkCard(p.LinkCard), id); err != nil { return p, err } - if in.Tags != nil { - if err := s.setTags(id, in.Tags); err != nil { + // 短文一律无标签:切换类型或直接保存时都把旧标签清掉 + if in.Tags != nil || p.Kind == model.KindShort { + tags := in.Tags + if p.Kind == model.KindShort { + tags = nil + } + if err := s.setTags(id, tags); err != nil { return p, err } } diff --git a/frontend/src/admin/EditorView.vue b/frontend/src/admin/EditorView.vue index 7b60385..6579bd5 100644 --- a/frontend/src/admin/EditorView.vue +++ b/frontend/src/admin/EditorView.vue @@ -365,6 +365,14 @@ onBeforeRouteLeave(() => { // ---------- 标签 ---------- +// 标签是长文的组织方式;切到短文时把已选的清掉(后端落库时也会强制丢弃) +watch( + () => form.kind, + (k) => { + if (k === 'short') form.tags = [] + } +) + function addTag() { const v = tagInput.value.trim().replace(/[,,]$/, '') if (!v) return @@ -848,7 +856,7 @@ const tbGroups = computed(() => [ > -
+