import { AppConfigSlug, BaseSetting, RolePerms, } from "@nicestack/common"; import { useContext, useEffect, useState } from "react"; import { Button, Form, Input, message, theme, } from "antd"; import { useAppConfig } from "@nicestack/client"; import { useAuth } from "@web/src/providers/auth-provider"; import FixedHeader from "@web/src/components/layout/fix-header"; import { useForm } from "antd/es/form/Form"; import { api } from "@nicestack/client" import { MainLayoutContext } from "../layout"; export default function BaseSettingPage() { const { update, baseSetting } = useAppConfig(); const utils = api.useUtils() const [form] = useForm() const { token } = theme.useToken(); const { data: clientCount } = api.app_config.getClientCount.useQuery(undefined, { refetchInterval: 3000, refetchIntervalInBackground: true }) const [isFormChanged, setIsFormChanged] = useState(false); const [loading, setLoading] = useState(false); const { user, hasSomePermissions } = useAuth(); const { pageWidth } = useContext?.(MainLayoutContext); function handleFieldsChange() { setIsFormChanged(true); } function onResetClick() { if (!form) return if (!baseSetting) { form.resetFields(); } else { form.resetFields(); form.setFieldsValue(baseSetting); } setIsFormChanged(false); } function onSaveClick() { if (form) form.submit(); } async function onSubmit(values: BaseSetting) { setLoading(true); try { await update.mutateAsync({ where: { slug: AppConfigSlug.BASE_SETTING, }, data: { meta: JSON.stringify(values) } }); setIsFormChanged(false); message.success("已保存"); } catch (err: any) { console.error(err); } finally { setLoading(false); } } useEffect(() => { if (baseSetting && form) { form.setFieldsValue(baseSetting); } }, [baseSetting, form]); return (
{isFormChanged && hasSomePermissions(RolePerms.MANAGE_BASE_SETTING) && ( <> )}
{/*
头像配置
*/}
全局参数配置
{/*
登录页面配置
*/}
服务端全局命令
{
app在线人数
{clientCount && clientCount > 0 ? `${clientCount}人在线` : '无人在线'}
}
); }