import { overviewApi } from "@/api"; import { GetOverviewListParams, OverviewParams } from "@/types"; import { formatDate } from "@/utils/date"; import { Button, DatePicker, Form, FormInstance, Input, Popconfirm, Table, } from "antd"; import { debounce } from "lodash"; import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import { useNavigate } from "react-router-dom"; const { RangePicker } = DatePicker; const DEFAULT_PARAMS: GetOverviewListParams = { startTime: "", endTime: "", searchKey: "", pageNum: 1, pageSize: 20, }; export default function Overview() { const navigate = useNavigate(); const [list, setList] = useState([]); const [total, setTotal] = useState(0); const formRef = useRef(null); const [params, setParams] = useState({ ...DEFAULT_PARAMS, }); const getOverviewList = useCallback(async () => { const data = await overviewApi.getList(params); setList(data.records); setTotal(data.total); }, [params]); const handleDel = useCallback( async (id: number) => { await overviewApi.del(id); getOverviewList(); }, [getOverviewList] ); const COLUMNS = useMemo(() => { return [ { title: "企业名称", dataIndex: "name", }, { title: "成立日期", dataIndex: "createDay", }, { title: "简介", width: 400, ellipsis: true, render: (item: OverviewParams) => item.description ? item.description : "(空)", }, { title: "操作", width: 230, render(item: OverviewParams) { return ( <> <> ); }, }, ]; }, [handleDel, navigate]); useEffect(() => { getOverviewList(); }, [getOverviewList]); const handleAdd = useCallback(() => { navigate("/overview/create"); }, [navigate]); const debounceSearch = useMemo( () => debounce( ( changedVal: OverviewParams, vals: OverviewParams & { date: string[] } ) => { const { date, ...rest } = vals; let startTime = ""; let endTime = ""; if (date && date[0] && date[1]) { startTime = formatDate(date[0]) + " 00:00:00"; endTime = formatDate(date[1]) + " 23:59:59"; } setParams({ ...params, ...rest, startTime, endTime }); }, 500 ), [params] ); const handleReset = useCallback(() => { setParams({ ...DEFAULT_PARAMS }); formRef.current?.resetFields(); }, [formRef]); return (
); }