| import React, { useState, useEffect, useCallback, memo } from 'react'; |
| import { Menu } from './service'; |
| import { Select, Table, Button, Modal, message, Card, Form, Tag, DatePicker, Upload, Row, Col, Input, Radio, InputNumber } from 'antd'; |
| import { UploadOutlined } from '@ant-design/icons'; |
| import { getToken } from '@/utils/auth'; |
| import uploadFile from "@/redux/uploadFile"; |
| interface AddOrEditMenuProps { |
| visible: boolean; |
| menu: Menu | null; |
| croppData: any, |
| onClose: () => void; |
| onConfirm: () => void; |
| list: any[] |
| } |
| const ExportModel: React.FC<any> = (props: AddOrEditMenuProps) => { |
| const { visible } = props |
| const [fileLoading, setFileLoading] = useState<boolean>(false) |
| const [fileList, setFileList] = useState<any[]>([ |
| ]); |
| const onRemove = (file: any) => { |
| setFileList( |
| [] |
| ) |
| setFileLoading(false) |
| } |
| const beforeUpload = (file: any) => { |
| |
| const isLt50M = file.size / 1024 / 1024 < 50; |
| console.log(file,"data") |
| const isJpgOrPng = file.name.split(".")[1] == 'xlsx' || file.type == 'xls'; |
| if (!isJpgOrPng) { |
| message.error('上传的数据格式必须是xlsx或者xls格式'); |
| return false |
| } |
| if (!fileList.length) { |
| if (!isLt50M) { |
| message.error('文件不允许超过50M!'); |
| } else { |
| setFileList( |
| [...fileList, file] |
| ) |
| let formData = new FormData(); |
| formData.append('file', file) |
| uploadFile('manufacture/importData', formData).then((res) => { |
| if (res.code == 200) { |
| message.success("上传成功") |
| setFileLoading(true) |
| } |
| }) |
| } |
| } else { |
| message.error('只能上传一个文件'); |
| return false; |
| } |
| }; |
| const onOk = (() => { |
| props.onConfirm() |
| }) |
| return ( |
| <div> |
| <Modal maskClosable={false} |
| |
| width="60%" |
| visible={visible} |
| title="表格导入" |
| onCancel={props.onClose} |
| onOk={onOk}> |
| <Form.Item |
| labelCol={{ span: 8 }} |
| label="表格导入" |
| > |
| <Upload name="file" |
| fileList={fileList} |
| beforeUpload={beforeUpload} |
| onRemove={onRemove} |
| headers={{ "Authorization": getToken() || "" }} |
| > |
| <Button icon={<UploadOutlined />} |
| >上传</Button> |
| </Upload> |
| </Form.Item> |
| |
| </Modal > |
| </div > |
| ) |
| |
| |
| } |
| |
| export default ExportModel |
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· SQL Server 2025 AI相关能力初探
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南