Files
yunrui_asset/frontend/src/components/BatchImportModal.jsx
T

153 lines
4.6 KiB
React
Raw Normal View History

import React from 'react';
import { Modal, Button, Typography, Divider } from 'antd';
import {
ImportOutlined,
CloudServerOutlined,
ApiOutlined,
InfoCircleOutlined,
} from '@ant-design/icons';
import { designTokens } from '../config/theme';
import CloseButton from './CloseButton';
const { Text, Paragraph } = Typography;
function BatchImportModal({ visible, onClose, onImportNetworkCard, onImportPort }) {
return (
<Modal
title={
<div style={{ display: 'flex', alignItems: 'center', gap: '12px' }}>
<div
style={{
width: '36px',
height: '36px',
borderRadius: designTokens.borderRadius.md,
background: designTokens.colors.primary.gradient,
display: 'flex',
alignItems: 'center',
justifyContent: 'center',
color: '#fff',
}}
>
<ImportOutlined />
</div>
<span style={{ fontSize: '18px', fontWeight: 600 }}>批量导入</span>
</div>
}
open={visible}
closeIcon={<CloseButton />}
onCancel={onClose}
footer={null}
width={500}
>
<div style={{ padding: '16px 0' }}>
<div
style={{
display: 'flex',
gap: '16px',
marginBottom: '24px',
}}
>
<Button
size="large"
icon={<CloudServerOutlined />}
onClick={() => {
onClose();
onImportNetworkCard();
}}
style={{
flex: 1,
height: '80px',
borderRadius: designTokens.borderRadius.md,
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
gap: '8px',
}}
>
<div style={{ fontSize: '16px', fontWeight: 600 }}>批量导入网卡</div>
<div style={{ fontSize: '12px', color: designTokens.colors.neutral[500], fontWeight: 400 }}>
用于服务器设备
</div>
</Button>
<Button
size="large"
icon={<ApiOutlined />}
onClick={() => {
onClose();
onImportPort();
}}
style={{
flex: 1,
height: '80px',
borderRadius: designTokens.borderRadius.md,
display: 'flex',
flexDirection: 'column',
alignItems: 'center',
justifyContent: 'center',
gap: '8px',
}}
>
<div style={{ fontSize: '16px', fontWeight: 600 }}>批量导入端口</div>
<div style={{ fontSize: '12px', color: designTokens.colors.neutral[500], fontWeight: 400 }}>
用于所有设备
</div>
</Button>
</div>
<Divider style={{ margin: '0 0 16px 0' }} />
<div
style={{
padding: '16px',
background: designTokens.colors.info.bg,
borderRadius: designTokens.borderRadius.md,
border: `1px solid ${designTokens.colors.info.light}40`,
}}
>
<div style={{ display: 'flex', alignItems: 'flex-start', gap: '12px' }}>
<InfoCircleOutlined
style={{
fontSize: '18px',
color: designTokens.colors.info.main,
marginTop: '2px',
}}
/>
<div>
<div
style={{
fontSize: '14px',
fontWeight: 600,
color: designTokens.colors.info.dark,
marginBottom: '8px',
}}
>
交换机与服务器导入说明
</div>
<Paragraph
style={{
margin: 0,
fontSize: '13px',
color: designTokens.colors.neutral[700],
lineHeight: '1.8',
}}
>
<div style={{ marginBottom: '4px' }}>
<strong>交换机端口</strong>可直接批量导入端口无需先导入网卡
</div>
<div>
<strong>服务器端口</strong>必须先在"网卡管理"中添加网卡才能导入端口
服务器的网卡和端口是层级关系设备 网卡 端口
</div>
</Paragraph>
</div>
</div>
</div>
</div>
</Modal>
);
}
export default BatchImportModal;