import classNames from "classnames"; import { useCallback, useEffect, useMemo, useState } from "react"; import { Button, Form, Input, Select, Table } from "antd"; import { PageContainer } from "@/components"; import style from "./index.module.scss"; import { debounce } from "lodash"; import { changeArchiveApi, getManageFileListAPi } from "@/api"; import { ARCHIVE_TYPE_MAP } from "@/constants"; import { ARCHIVE_TYPE } from "@/types"; import { downloadFile } from "@/utils"; import { getBaseURL } from "@dage/service"; const DEFAULT_PARAMS = { pageNum: 1, pageSize: 20, searchKey: "", archive: "", }; const ManagementReportPage = () => { const [form] = Form.useForm(); const [params, setParams] = useState({ ...DEFAULT_PARAMS, }); const [loading, setLoading] = useState(false); const [total, setTotal] = useState(0); const [list, setList] = useState<[]>([]); const baseUrl = getBaseURL(); const debounceSearch = useMemo( () => debounce((changedVal: unknown, vals: any) => { setParams({ ...params, ...vals }); }, 500), [params] ); const paginationChange = useCallback( () => (pageNum: number, pageSize: number) => { setParams({ ...params, pageNum, pageSize }); }, [params] ); const getList = useCallback(async () => { setLoading(true); try { const data = await getManageFileListAPi(params); setList(data.records); setTotal(data.total); } finally { setLoading(false); } }, [params]); const handleArchive = async (item: any) => { await changeArchiveApi( item.archive === ARCHIVE_TYPE.ARCHIVED ? ARCHIVE_TYPE.UNARCHIVED : ARCHIVE_TYPE.ARCHIVED, item.id ); getList(); }; useEffect(() => { getList(); }, []); return (