import { useEffect, useState } from 'react' import { useQuery, useQueryClient } from '@tanstack/react-query' import { Alert, App, Button, Card, Form, Input, Space, Typography } from 'antd' import { ReloadOutlined } from '@ant-design/icons' import { fetchCrashConfig, updateCrashConfig } from '@/features/admin/api' import { AdminPageHeader } from '@/features/admin/components/AdminPageHeader' import { useAdminSessionStore } from '@/stores/adminSession' function errorText(error: unknown) { const response = (error as { response?: { data?: { message?: string } } })?.response return response?.data?.message || (error instanceof Error ? error.message : '请求失败') } export function AdminCrashConfigPage() { const { message } = App.useApp() const queryClient = useQueryClient() const [form] = Form.useForm<{ default_qrcode_url: string; order_copy_template: string }>() const [saving, setSaving] = useState(false) const permissions = useAdminSessionStore(state => state.admin?.permissions) const canView = Boolean(permissions?.includes('*') || permissions?.includes('mohong:config')) const canManage = Boolean(permissions?.includes('*') || permissions?.includes('mohong:config')) const configQuery = useQuery({ queryKey: ['admin-crash-config'], queryFn: fetchCrashConfig, enabled: canView, }) useEffect(() => { if (!configQuery.data) return form.setFieldsValue(configQuery.data) }, [configQuery.data, form]) if (!canView) { return (
) } return (
} loading={configQuery.isFetching} onClick={() => void configQuery.refetch()} > 刷新 } />
模板留空将回退到后端默认模板
) }