import React, { useState, useCallback } from 'react'; import { Modal, Form, Input, InputNumber, Select, message, Space, Tooltip } from 'antd'; import { PlusOutlined, InfoCircleOutlined, CloudServerOutlined } from '@ant-design/icons'; import axios from 'axios'; import { designTokens } from '../config/theme'; import CloseButton from './CloseButton'; const { Option } = Select; const { TextArea } = Input; function NetworkCardCreateModal({ device, visible, onClose, onSuccess }) { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const handleSubmit = useCallback(async () => { try { const values = await form.validateFields(); setLoading(true); await axios.post('/api/network-cards', { deviceId: device.deviceId, name: values.name, slotNumber: values.slotNumber, description: values.description, model: values.model, manufacturer: values.manufacturer, status: values.status, }); message.success('网卡创建成功'); form.resetFields(); onSuccess?.(); onClose(); } catch (error) { if (error.errorFields) { return; } message.error(error.response?.data?.error || '网卡创建失败'); console.error('创建网卡失败:', error); } finally { setLoading(false); } }, [device, form, onClose, onSuccess]); const handleCancel = useCallback(() => { form.resetFields(); onClose(); }, [form, onClose]); return ( 新增网卡 - {device?.name || '设备'} } open={visible} closeIcon={} onOk={handleSubmit} onCancel={handleCancel} confirmLoading={loading} okText="创建" cancelText="取消" width={480} styles={{ body: { padding: '20px 24px' } }} >
网卡名称 } rules={[ { required: true, message: '请输入网卡名称' }, { max: 50, message: '名称不能超过50个字符' }, ]} >