"use client" import * as React from "react" import { useTranslations } from "next-intl" import { toast } from "sonner" import { School, Shield, Database, Bell } from "lucide-react" import { Button } from "@/shared/components/ui/button" import { Input } from "@/shared/components/ui/input" import { Label } from "@/shared/components/ui/label" import { Textarea } from "@/shared/components/ui/textarea" import { Switch } from "@/shared/components/ui/switch" import { Card, CardContent, CardDescription, CardHeader, CardTitle } from "@/shared/components/ui/card" import { Separator } from "@/shared/components/ui/separator" /** * 管理员系统设置视图 * * TODO: 当前为 mock 实现(setTimeout 模拟保存),未接入真实数据层。 * 后续需新增 system_settings 表 + data-access + actions,替换 mock 逻辑。 * 当前已适配 i18n,文本均通过 settings.admin.* 翻译键获取。 */ export function AdminSettingsView() { const t = useTranslations("settings.admin") const [saving, setSaving] = React.useState(false) const handleSave = async (e: React.FormEvent) => { e.preventDefault() setSaving(true) // TODO: 替换为真实 Server Action 调用 await new Promise((resolve) => setTimeout(resolve, 800)) toast.success(t("saveSuccess")) setSaving(false) } return (

{t("title")}

{t("description")}

{/* 学校信息 */}
{t("schoolInfo.title")} {t("schoolInfo.description")}