import React, { useState, useEffect } from 'react'; import { Table, Button, Modal, Form, Input, Select, DatePicker, message, Card, Space, InputNumber, Switch, Upload, Progress, Checkbox } from 'antd'; import { PlusOutlined, EditOutlined, DeleteOutlined, SearchOutlined, UploadOutlined, DownloadOutlined, SettingOutlined, UndoOutlined, CloudServerOutlined, SwapOutlined, SafetyOutlined, DatabaseOutlined, AppstoreOutlined } from '@ant-design/icons'; import axios from 'axios'; import dayjs from 'dayjs'; const { Option } = Select; const { RangePicker } = DatePicker; // 可调整列宽的表头组件 const ResizeableTitle = (props) => { const { onResize, width, ...restProps } = props; if (!width) { return
请上传CSV格式的设备数据文件
支持的编码格式:GBK
CSV文件格式要求:
正在导入数据...
{importResult && importResult.statistics && (导入完成:
总记录数:{importResult.statistics.total || 0}
成功:{importResult.statistics.success || 0}
失败:{importResult.statistics.failed || 0}
{/* 显示导入失败记录详情表格 */} {(() => { // 检查是否有错误记录 const errors = importResult.statistics?.errors; const hasErrors = Array.isArray(errors) && errors.length > 0; // 即使没有errors字段,如果failed数量大于0,也应该提示用户 const hasFailedRecords = importResult.statistics?.failed > 0; return (hasErrors || hasFailedRecords) && (| 行号 | 失败原因 |
|---|---|
| {item.row || index + 1} | {item.error || '未知错误'} |