| | |
| | | import { useEffect, useState } from "react"; |
| | | import { Button, Card, Form, Input, Upload, message, Image, Space } from "antd"; |
| | | import { Button, Card, Form, Input, Upload, message, Image, Space, Switch } from "antd"; |
| | | import { UploadOutlined } from "@ant-design/icons"; |
| | | import { api } from "../api"; |
| | | import { logoSrc, useSystemSettings } from "../systemSettings"; |
| | | |
| | | export default function AdminSystemSettingsPage() { |
| | | const { settings, refresh, logoCacheKey } = useSystemSettings(); |
| | | const [form] = Form.useForm<{ system_name: string }>(); |
| | | const [form] = Form.useForm<{ system_name: string; grader_can_see_privacy: boolean }>(); |
| | | const [saving, setSaving] = useState(false); |
| | | |
| | | useEffect(() => { |
| | | form.setFieldsValue({ system_name: settings.system_name }); |
| | | }, [settings.system_name, form]); |
| | | form.setFieldsValue({ |
| | | system_name: settings.system_name, |
| | | grader_can_see_privacy: settings.grader_can_see_privacy, |
| | | }); |
| | | }, [settings.system_name, settings.grader_can_see_privacy, form]); |
| | | |
| | | const logo = logoSrc(settings.logo_url, logoCacheKey); |
| | | |
| | |
| | | onFinish={async (v) => { |
| | | setSaving(true); |
| | | try { |
| | | await api.put("/api/admin/settings", { system_name: v.system_name }); |
| | | await api.put("/api/admin/settings", { |
| | | system_name: v.system_name, |
| | | grader_can_see_privacy: v.grader_can_see_privacy, |
| | | }); |
| | | message.success("已保存"); |
| | | await refresh(); |
| | | } catch (e: unknown) { |
| | |
| | | <Form.Item name="system_name" label="系统名称" rules={[{ required: true, max: 128 }]}> |
| | | <Input placeholder="显示在顶栏、登录页与浏览器标题" /> |
| | | </Form.Item> |
| | | <Button type="primary" htmlType="submit" loading={saving}>保存名称</Button> |
| | | <Form.Item |
| | | name="grader_can_see_privacy" |
| | | label="考评员可见考生隐私" |
| | | valuePropName="checked" |
| | | extra="开启后,考评员可以看到考生完整姓名和证件号;关闭后姓名和证件号将脱敏显示" |
| | | > |
| | | <Switch /> |
| | | </Form.Item> |
| | | <Button type="primary" htmlType="submit" loading={saving}>保存设置</Button> |
| | | </Form> |
| | | |
| | | <Card type="inner" title="系统 Logo" style={{ marginTop: 24, maxWidth: 480 }}> |