import { useEffect, useState } from "react"; import { Button, Row, Col, Modal, Image, Empty, message, Pagination, } from "antd"; import { resource, resourceCategory } from "../../api"; import styles from "./index.module.less"; import { CreateResourceCategory } from "../create-rs-category"; import { CloseOutlined } from "@ant-design/icons"; import { UploadImageSub } from "./upload-image-sub"; import { TreeCategory } from "../../compenents"; interface Option { id: string | number; name: string; children?: Option[]; } interface ImageItem { id: number; category_id: number; name: string; extension: string; size: number; disk: string; file_id: string; path: string; url: string; created_at: string; } interface PropsInterface { onSelected: (url: string) => void; } export const UploadImageButton = (props: PropsInterface) => { const [showModal, setShowModal] = useState(false); const [category_ids, setCategoryIds] = useState([]); const [imageList, setImageList] = useState([]); const [refresh, setRefresh] = useState(false); const [page, setPage] = useState(1); const [size, setSize] = useState(12); const [total, setTotal] = useState(0); // 获取图片列表 const getImageList = () => { let categoryIds = category_ids.join(","); resource .resourceList(page, size, "", "", "", "IMAGE", categoryIds) .then((res: any) => { setTotal(res.data.result.total); setImageList(res.data.result.data); }) .catch((err) => { console.log("错误,", err); }); }; // 重置列表 const resetImageList = () => { setPage(1); setImageList([]); setRefresh(!refresh); }; // 加载图片列表 useEffect(() => { getImageList(); }, [category_ids, refresh, page, size]); return ( <> {showModal && ( { setShowModal(false); }} open={true} width="1000px" maskClosable={false} > setCategoryIds(keys)} /> { resetImageList(); }} > {imageList.length === 0 && ( )} {imageList.map((item) => ( { props.onSelected(item.url); setShowModal(false); }} > ))} {imageList.length > 0 && ( { setPage(currentPage); setSize(currentSize); }} defaultCurrent={page} total={total} /> )} )} ); };