feat(ui): improve settings form labels and descriptions for clarity
Build and Deploy / build-and-push (push) Successful in 53s

This commit is contained in:
2026-07-27 02:22:35 +08:00
parent d104442e6b
commit 6709c4ed77
+60 -16
View File
@@ -267,11 +267,17 @@ export default function Settings() {
</Card> </Card>
<Card className="space-y-3 p-4"> <Card className="space-y-3 p-4">
<h2 className="font-medium"></h2> <h2 className="font-medium"></h2>
<Input placeholder="标题" value={siteForm.title} onChange={(e) => setSiteForm((f) => ({ ...f, title: e.target.value }))} /> <Input placeholder="站点标题" value={siteForm.title} onChange={(e) => setSiteForm((f) => ({ ...f, title: e.target.value }))} />
<Input placeholder="副标题" value={siteForm.subtitle} onChange={(e) => setSiteForm((f) => ({ ...f, subtitle: e.target.value }))} /> <Input placeholder="站点副标题" value={siteForm.subtitle} onChange={(e) => setSiteForm((f) => ({ ...f, subtitle: e.target.value }))} />
<div className="grid gap-3 md:grid-cols-2"> <div className="grid gap-3 md:grid-cols-2">
<Input placeholder="分页大小" value={siteForm.page_size} onChange={(e) => setSiteForm((f) => ({ ...f, page_size: e.target.value }))} /> <div>
<Input placeholder="Cookie 天数" value={siteForm.cookie_days} onChange={(e) => setSiteForm((f) => ({ ...f, cookie_days: e.target.value }))} /> <label className="mb-1 block text-xs text-[var(--text-muted)]"></label>
<Input placeholder="20" value={siteForm.page_size} onChange={(e) => setSiteForm((f) => ({ ...f, page_size: e.target.value }))} />
</div>
<div>
<label className="mb-1 block text-xs text-[var(--text-muted)]"> Cookie </label>
<Input placeholder="7" value={siteForm.cookie_days} onChange={(e) => setSiteForm((f) => ({ ...f, cookie_days: e.target.value }))} />
</div>
</div> </div>
<label className="flex items-center justify-between text-sm"> <label className="flex items-center justify-between text-sm">
<span> OpenAPI</span> <span> OpenAPI</span>
@@ -304,15 +310,40 @@ export default function Settings() {
<p className="mt-2 text-[var(--text-muted)]"> docs/guide/mcp.md skills/taskpool/SKILL.md</p> <p className="mt-2 text-[var(--text-muted)]"> docs/guide/mcp.md skills/taskpool/SKILL.md</p>
</div> </div>
<h3 className="pt-2 text-sm font-medium text-[var(--text-secondary)]"></h3> <h3 className="pt-2 text-sm font-medium text-[var(--text-secondary)]"></h3>
<div className="grid gap-3 md:grid-cols-2"> <p className="text-xs text-[var(--text-muted)]"></p>
<Input placeholder="系统通知保留天" value={siteForm.system_notice_days} onChange={(e) => setSiteForm((f) => ({ ...f, system_notice_days: e.target.value }))} /> <div className="space-y-3">
<Input placeholder="系统通知最大条数" value={siteForm.system_notice_max_count} onChange={(e) => setSiteForm((f) => ({ ...f, system_notice_max_count: e.target.value }))} /> <div className="rounded-md border border-[var(--border)] bg-[var(--bg-tertiary)]/50 p-3">
<Input placeholder="推送日志保留天" value={siteForm.push_log_days} onChange={(e) => setSiteForm((f) => ({ ...f, push_log_days: e.target.value }))} /> <div className="mb-2 text-sm font-medium text-[var(--text-primary)]"></div>
<Input placeholder="推送日志最大条数" value={siteForm.push_log_max_count} onChange={(e) => setSiteForm((f) => ({ ...f, push_log_max_count: e.target.value }))} /> <p className="mb-2 text-xs text-[var(--text-muted)]"></p>
<Input placeholder="登录日志保留天" value={siteForm.login_log_days} onChange={(e) => setSiteForm((f) => ({ ...f, login_log_days: e.target.value }))} /> <div className="grid gap-2 md:grid-cols-2">
<Input placeholder="登录日志最大条数" value={siteForm.login_log_max_count} onChange={(e) => setSiteForm((f) => ({ ...f, login_log_max_count: e.target.value }))} /> <Input placeholder="保留天数" value={siteForm.system_notice_days} onChange={(e) => setSiteForm((f) => ({ ...f, system_notice_days: e.target.value }))} />
<Input placeholder="调度日志保留天" value={siteForm.scheduler_log_days} onChange={(e) => setSiteForm((f) => ({ ...f, scheduler_log_days: e.target.value }))} /> <Input placeholder="最大条数" value={siteForm.system_notice_max_count} onChange={(e) => setSiteForm((f) => ({ ...f, system_notice_max_count: e.target.value }))} />
<Input placeholder="调度日志最大条数" value={siteForm.scheduler_log_max_count} onChange={(e) => setSiteForm((f) => ({ ...f, scheduler_log_max_count: e.target.value }))} /> </div>
</div>
<div className="rounded-md border border-[var(--border)] bg-[var(--bg-tertiary)]/50 p-3">
<div className="mb-2 text-sm font-medium text-[var(--text-primary)]"></div>
<p className="mb-2 text-xs text-[var(--text-muted)]">Telegram </p>
<div className="grid gap-2 md:grid-cols-2">
<Input placeholder="保留天数" value={siteForm.push_log_days} onChange={(e) => setSiteForm((f) => ({ ...f, push_log_days: e.target.value }))} />
<Input placeholder="最大条数" value={siteForm.push_log_max_count} onChange={(e) => setSiteForm((f) => ({ ...f, push_log_max_count: e.target.value }))} />
</div>
</div>
<div className="rounded-md border border-[var(--border)] bg-[var(--bg-tertiary)]/50 p-3">
<div className="mb-2 text-sm font-medium text-[var(--text-primary)]"></div>
<p className="mb-2 text-xs text-[var(--text-muted)]"> IP</p>
<div className="grid gap-2 md:grid-cols-2">
<Input placeholder="保留天数" value={siteForm.login_log_days} onChange={(e) => setSiteForm((f) => ({ ...f, login_log_days: e.target.value }))} />
<Input placeholder="最大条数" value={siteForm.login_log_max_count} onChange={(e) => setSiteForm((f) => ({ ...f, login_log_max_count: e.target.value }))} />
</div>
</div>
<div className="rounded-md border border-[var(--border)] bg-[var(--bg-tertiary)]/50 p-3">
<div className="mb-2 text-sm font-medium text-[var(--text-primary)]"></div>
<p className="mb-2 text-xs text-[var(--text-muted)]"></p>
<div className="grid gap-2 md:grid-cols-2">
<Input placeholder="保留天数" value={siteForm.scheduler_log_days} onChange={(e) => setSiteForm((f) => ({ ...f, scheduler_log_days: e.target.value }))} />
<Input placeholder="最大条数" value={siteForm.scheduler_log_max_count} onChange={(e) => setSiteForm((f) => ({ ...f, scheduler_log_max_count: e.target.value }))} />
</div>
</div>
</div> </div>
<Button onClick={() => saveSite.mutate()} disabled={saveSite.isPending}> <Button onClick={() => saveSite.mutate()} disabled={saveSite.isPending}>
@@ -408,10 +439,23 @@ export default function Settings() {
{tab === 'scheduler' ? ( {tab === 'scheduler' ? (
<Card className="space-y-3 p-4"> <Card className="space-y-3 p-4">
<h2 className="font-medium"></h2> <h2 className="font-medium"></h2>
<p className="text-xs text-[var(--text-muted)]"></p>
<div className="grid gap-3 md:grid-cols-3"> <div className="grid gap-3 md:grid-cols-3">
<Input placeholder="Worker 数" value={schedulerForm.worker_count} onChange={(e) => setSchedulerForm((f) => ({ ...f, worker_count: e.target.value }))} /> <div>
<Input placeholder="队列大小" value={schedulerForm.queue_size} onChange={(e) => setSchedulerForm((f) => ({ ...f, queue_size: e.target.value }))} /> <label className="mb-1 block text-xs text-[var(--text-muted)]">Worker </label>
<Input placeholder="限速间隔" value={schedulerForm.rate_interval} onChange={(e) => setSchedulerForm((f) => ({ ...f, rate_interval: e.target.value }))} /> <Input placeholder="4" value={schedulerForm.worker_count} onChange={(e) => setSchedulerForm((f) => ({ ...f, worker_count: e.target.value }))} />
<p className="mt-1 text-xs text-[var(--text-muted)]"></p>
</div>
<div>
<label className="mb-1 block text-xs text-[var(--text-muted)]"></label>
<Input placeholder="100" value={schedulerForm.queue_size} onChange={(e) => setSchedulerForm((f) => ({ ...f, queue_size: e.target.value }))} />
<p className="mt-1 text-xs text-[var(--text-muted)]"></p>
</div>
<div>
<label className="mb-1 block text-xs text-[var(--text-muted)]"></label>
<Input placeholder="0" value={schedulerForm.rate_interval} onChange={(e) => setSchedulerForm((f) => ({ ...f, rate_interval: e.target.value }))} />
<p className="mt-1 text-xs text-[var(--text-muted)]">0 </p>
</div>
</div> </div>
<Button onClick={() => saveScheduler.mutate()} disabled={saveScheduler.isPending}> <Button onClick={() => saveScheduler.mutate()} disabled={saveScheduler.isPending}>