feat: 全站评论开关,并统一后台表单控件

关闭评论后前台隐藏评论能力;外观/设置/公告改用 AdminField 与 Stepper。

Co-authored-by: Cursor <cursoragent@cursor.com>
This commit is contained in:
2026-09-17 01:22:00 +08:00
parent 442af625f6
commit d93635c961
27 changed files with 989 additions and 479 deletions

View File

@@ -25,6 +25,7 @@ import { toast } from "@/lib/toast";
import ConfirmDialog from "@/components/ConfirmDialog";
import {
AdminEmpty,
AdminField,
AdminIconButton,
AdminPageHeader,
AdminSegmented,
@@ -155,29 +156,24 @@ export default function AnnouncementAdmin({
{form.id == null ? "新建公告" : "编辑公告"}
</p>
<label className="field-label" htmlFor="anno-title">
标题
</label>
<input
<AdminField
id="anno-title"
className="field mb-4"
className="mb-4"
label="标题"
maxLength={200}
value={form.title}
onChange={(e) => setForm({ ...form, title: e.target.value })}
onChange={(title) => setForm({ ...form, title })}
placeholder="请输入公告标题"
/>
<div className="flex items-end gap-4 mb-4 flex-wrap">
<div className="w-36">
<label className="field-label" htmlFor="anno-tag">
标签
</label>
<input
<AdminField
id="anno-tag"
className="field"
label="标签"
maxLength={32}
value={form.tag}
onChange={(e) => setForm({ ...form, tag: e.target.value })}
onChange={(tag) => setForm({ ...form, tag })}
placeholder="公告"
/>
</div>
@@ -213,14 +209,13 @@ export default function AnnouncementAdmin({
/>
</div>
<label className="field-label" htmlFor="anno-content">
正文(支持 Markdown)
</label>
<textarea
<AdminField
id="anno-content"
className="field min-h-[260px]"
label="正文(支持 Markdown)"
as="textarea"
minHeight="260px"
value={form.content}
onChange={(e) => setForm({ ...form, content: e.target.value })}
onChange={(content) => setForm({ ...form, content })}
placeholder="请输入公告正文,支持 Markdown 语法…"
/>