import Icon, { PlusOutlined, LoadingOutlined } from '@ant-design/icons'; import { Upload, message } from 'antd'; import type { RcFile } from 'antd/es/upload/interface'; import React, { useEffect, useState } from 'react'; import styles from './UploadVideo.module.less'; import { review, deleteIcon } from "./icon" import schema from "./schema" import FormItem from '../FormItem/FormItem' import Preview from "./preview" import { ChangeImgUrl, getItemProps } from "../../utils" import OCR from "../../utils/ocr" const UploadImg = (item: any) => { const data: any = getItemProps(schema, item) const { UploadProps, otherProps, componentType, FormItemProps, beforeUploadRules, callback, Type, form, ocr } = data const [imageUrl, setImageUrl] = useState(""); const [loading, setLoading] = useState(false); const { uploadText, imageUrl: _imageUrl } = otherProps const [isPreview, setIsPreview] = useState(false) useEffect(() => { _imageUrl ? setImageUrl(_imageUrl) : null }, []) const UploadButton = () => { return
{loading ? : <> {uploadText ?
{uploadText}
: null} }
} const AfterButon = () => { return
{ e.stopPropagation() }}>
setIsPreview(true)} /> {Type === "upload" ? { form && form?.setFieldValue(FormItemProps?.name, '') setImageUrl("") } } component={deleteIcon} /> : null}
} const beforeUpload = (file: RcFile) => { const { fileSize } = beforeUploadRules const isLt2M = file.size / 1024 / 1024 < fileSize; if (!isLt2M) { message.error(`图片大小不能超过${fileSize}MB!`); } return isLt2M; }; const handleChange = async (fileInput: any): Promise => { const { file } = fileInput; if (file.status === 'uploading') { setLoading(true); return ''; } if (file.status === 'done') { let url = ChangeImgUrl(file.response.data); if (ocr) { OCR({ code: ocr, facePhotoUrl: file.response.data }) } setLoading(false); setImageUrl(url); callback && callback(url) return ''; } }; return <> {isPreview ? : null} { componentType === 'FormItem' ? { if (info.file.status == 'done') { return info.file.response.data; } }} > {imageUrl ? : }
{beforeUploadRules?.tips}
: {imageUrl ? : } } }; export default UploadImg;