import { useEffect, useState } from "react"; import { Modal, Table, message, Space } from "antd"; import { resource } from "../../../api"; // import styles from "./index.module.less"; import { ExclamationCircleFilled } from "@ant-design/icons"; import type { ColumnsType } from "antd/es/table"; import { dateFormat } from "../../../utils/index"; import { TreeCategory, DurationText, PerButton } from "../../../compenents"; import { UploadVideoButton } from "../../../compenents/upload-video-button"; const { confirm } = Modal; interface DataType { id: React.Key; name: string; created_at: string; disk: string; } const ResourceVideosPage = () => { const [videoList, setVideoList] = useState([]); const [videosExtra, setVideoExtra] = useState([]); const [adminUsers, setAdminUsers] = useState({}); const [refresh, setRefresh] = useState(false); const [page, setPage] = useState(1); const [size, setSize] = useState(10); const [total, setTotal] = useState(0); const [loading, setLoading] = useState(true); const [category_ids, setCategoryIds] = useState([]); const [selLabel, setLabel] = useState("全部视频"); const columns: ColumnsType = [ // { // title: "封面", // dataIndex: "id", // render: (id: string) => ( // // ), // }, { title: "视频名称", dataIndex: "name", render: (text: string) => (
{text}
), }, { title: "视频时长", dataIndex: "id", render: (id: string) => ( ), }, { title: "创建人", dataIndex: "admin_id", render: (text: number) => JSON.stringify(adminUsers) !== "{}" && {adminUsers[text]}, }, { title: "视频时长", dataIndex: "created_at", render: (text: string) => {dateFormat(text)}, }, { title: "操作", key: "action", fixed: "right", width: 100, render: (_, record: any) => ( removeResource(record.id)} disabled={null} /> ), }, ]; // 删除图片 const removeResource = (id: number) => { if (id === 0) { return; } confirm({ title: "操作确认", icon: , content: "确认删除此视频?", centered: true, okText: "确认", cancelText: "取消", onOk() { resource.destroyResource(id).then(() => { message.success("删除成功"); resetVideoList(); }); }, onCancel() { console.log("Cancel"); }, }); }; // 获取视频列表 const getVideoList = () => { setLoading(true); let categoryIds = category_ids.join(","); resource .resourceList(page, size, "", "", "", "VIDEO", categoryIds) .then((res: any) => { setTotal(res.data.result.total); setVideoList(res.data.result.data); setVideoExtra(res.data.videos_extra); setAdminUsers(res.data.admin_users); setLoading(false); }) .catch((err: any) => { console.log("错误,", err); }); }; // 重置列表 const resetVideoList = () => { setPage(1); setSize(10); setVideoList([]); setRefresh(!refresh); }; // 加载视频列表 useEffect(() => { getVideoList(); }, [category_ids, refresh, page, size]); const paginationProps = { current: page, //当前页码 pageSize: size, total: total, // 总条数 onChange: (page: number, pageSize: number) => handlePageChange(page, pageSize), //改变页码的函数 showSizeChanger: true, }; const handlePageChange = (page: number, pageSize: number) => { setPage(page); setSize(pageSize); }; return ( <>
{ setCategoryIds(keys); if (typeof title === "string") { setLabel(title); } else { setLabel(title.props.children[0]); } }} />
视频 | {selLabel}
{ resetVideoList(); }} >
record.id} /> ); }; export default ResourceVideosPage;