import { useEffect, useState } from "react"; import { Button, Row, Col, Popconfirm, Image, Table, Typography, Input, message, Space, } from "antd"; import { course } from "../../api"; import styles from "./index.module.less"; import { PlusOutlined, ReloadOutlined } from "@ant-design/icons"; import type { ColumnsType } from "antd/es/table"; import { dateFormat } from "../../utils/index"; import { Link, useNavigate } from "react-router-dom"; import { TreeDepartment, TreeCategory, PerButton } from "../../compenents"; interface DataType { id: React.Key; title: string; created_at: string; thumb: string; charge: number; is_show: number; } export const CoursePage = () => { const navigate = useNavigate(); const [list, setList] = 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 [title, setTitle] = useState(""); const [dep_ids, setDepIds] = useState([]); const columns: ColumnsType = [ { title: "ID", key: "id", dataIndex: "id", }, { title: "封面", dataIndex: "thumb", render: (thumb: string) => ( ), }, { title: "课程标题", dataIndex: "title", render: (text: string) => {text}, }, { title: "时间", dataIndex: "created_at", render: (text: string) => {dateFormat(text)}, }, { title: "是否显示", dataIndex: "is_show", render: (is_show: number) => ( {is_show === 1 ? "· 显示" : "· 隐藏"} ), }, { title: "操作", key: "action", fixed: "right", width: 100, render: (_, record: any) => ( navigate(`/course/update/${record.id}`)} /> removeItem(record.id)} okText="确定" cancelText="取消" > null} /> ), }, ]; // 删除图片 const removeItem = (id: number) => { if (id === 0) { return; } course.destroyCourse(id).then(() => { message.success("删除成功"); resetList(); }); }; // 获取视频列表 const getList = () => { setLoading(true); let categoryIds = category_ids.join(","); let depIds = dep_ids.join(","); course .courseList(page, size, "", "", title, depIds, categoryIds) .then((res: any) => { setTotal(res.data.total); setList(res.data.data); setLoading(false); }) .catch((err: any) => { console.log("错误,", err); }); }; // 重置列表 const resetList = () => { setPage(1); setSize(10); setList([]); setTitle(""); setRefresh(!refresh); }; // 加载列表 useEffect(() => { getList(); }, [category_ids, dep_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)} />
部门:
setDepIds(keys)} />
课程名称: { setTitle(e.target.value); }} style={{ width: 160 }} placeholder="请输入课程名称" />
} p="course" onClick={() => null} />
record.id} /> ); };