import React, { useCallback, useRef } from "react"; import styles from "./index.module.scss"; import { MessageFu } from "@/utils/message"; import { API_upFile } from "@/store/action/layout"; import { fileDomInitialFu } from "@/utils/domShow"; import { UploadOutlined, DeleteOutlined, EyeOutlined } from "@ant-design/icons"; import store from "@/store"; import MyPopconfirm from "../MyPopconfirm"; export type ZupAudioType = { fileName: string; filePath: string; }; type Props = { fileInfo: ZupAudioType; upDataFu: (info: ZupAudioType) => void; delFu: () => void; dirCode: string; myUrl: string; size?: number; isLook?: boolean; }; function ZupAudio({ size = 10, isLook = false, fileInfo, upDataFu, delFu, dirCode, myUrl, }: Props) { // 上传 无障碍音频的 点击 const handeUpAudio = useCallback( async (e: React.ChangeEvent) => { if (e.target.files) { // 拿到files信息 const filesInfo = e.target.files[0]; // console.log("-----", filesInfo); // 校验格式 const type = ["audio/mpeg"]; if (!type.includes(filesInfo.type)) { e.target.value = ""; return MessageFu.warning(`只支持.mp3格式!`); } // 校验大小 if (filesInfo.size > size * 1024 * 1024) { e.target.value = ""; return MessageFu.warning(`最大支持${size}M!`); } // 创建FormData对象 const fd = new FormData(); fd.append("type", "audio"); fd.append("dirCode", dirCode); fd.append("file", filesInfo); e.target.value = ""; try { const res = await API_upFile(fd, myUrl); if (res.code === 0) { MessageFu.success("上传成功!"); // console.log(res); upDataFu(res.data); } fileDomInitialFu(); } catch (error) { fileDomInitialFu(); } } }, [dirCode, myUrl, size, upDataFu] ); // 上传附近的ref const myInput = useRef(null); return ( ); } const MemoZupAudio = React.memo(ZupAudio); export default MemoZupAudio;