import { useQuery, useQueryClient } from '@tanstack/react-query' import { App, Button, Card, Descriptions, Form, InputNumber, Space } from 'antd' import { useEffect, useState } from 'react' import { fetchAdminWorkerHallConfig, saveAdminWorkerHallConfig } from '@/services/admin' type HallConfigFormValues = { maxVisibleOrders: number } export default function HallConfigPanel() { const { message } = App.useApp() const queryClient = useQueryClient() const [form] = Form.useForm() const [saving, setSaving] = useState(false) const configQuery = useQuery({ queryKey: ['admin-worker-hall-config'], queryFn: fetchAdminWorkerHallConfig, }) const config = configQuery.data?.data useEffect(() => { if (config) form.setFieldsValue({ maxVisibleOrders: config.maxVisibleOrders }) }, [config, form]) async function saveConfig(values: HallConfigFormValues) { setSaving(true) try { await saveAdminWorkerHallConfig({ maxVisibleOrders: Number(values.maxVisibleOrders) }) await Promise.all([ queryClient.invalidateQueries({ queryKey: ['admin-worker-hall-config'] }), queryClient.invalidateQueries({ queryKey: ['admin-worker-platform-summary'] }), ]) message.success('大厅配置已保存') } catch (error) { message.error(error instanceof Error ? error.message : '保存大厅配置失败') } finally { setSaving(false) } } return ( {config?.visibleOrderCount || 0} {config?.queuedOrderCount || 0} {config?.maxVisibleOrders || '-'}
) }