import classNames from "classnames"; import { useCallback, useEffect, useMemo, useState } from "react"; import { Button, Form, Input, Select, Table } from "antd"; import { PlusOutlined } from "@ant-design/icons"; import { useNavigate } from "react-router-dom"; import { PageContainer } from "@/components"; import { DageTableActions } from "@dage/pc-components"; import style from "./index.module.scss"; import { PUBLISH_STATUS_MAP, ASSESSMENT_TYPE_OPTIONS, PUBLISH_STATUS_OPTIONS, } from "../../../constants"; import { deleteManageIndexApi, getManageIndexListApi } from "@/api"; import { debounce } from "lodash"; import { ASS_INDEX_TYPE, IManageIndexDetail } from "@/types"; const DEFAULT_PARAMS = { pageNum: 1, pageSize: 20, searchKey: "", status: "", type: "", }; const ManagementIndexPage = () => { const navigate = useNavigate(); const [form] = Form.useForm(); const [loading, setLoading] = useState(false); const [params, setParams] = useState({ ...DEFAULT_PARAMS, }); const [total, setTotal] = useState(0); const [list, setList] = useState([]); 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 getManageIndexListApi(params); setList(data.records); setTotal(data.total); } finally { setLoading(false); } }, [params]); const handleDelete = async (item: IManageIndexDetail) => { await deleteManageIndexApi(item.id); getList(); }; useEffect(() => { getList(); }, []); return ( } >
{ return ASSESSMENT_TYPE_OPTIONS.find( (i) => i.value === item.type )?.label; }, }, { title: "说明", dataIndex: "remark", align: "center", minWidth: 100, ellipsis: true, }, { title: "考核周期", align: "center", minWidth: 100, render: (item: IManageIndexDetail) => { return `${item.dateStart}-${item.dateEnd}`; }, }, { title: "发布状态", align: "center", minWidth: 100, render: (item: IManageIndexDetail) => { return (

{PUBLISH_STATUS_MAP[item.status].label}

); }, }, { title: "编辑时间", dataIndex: "updateTime", align: "center", minWidth: 160, }, { title: "编辑人", dataIndex: "creatorName", align: "center", minWidth: 100, }, { title: "操作", align: "center", fixed: "right", render: (item: IManageIndexDetail) => { return ( navigate(`/management/index/edit/${item.type}/${item.id}`) } onDelete={handleDelete.bind(undefined, item)} renderBefore={ <> } /> ); }, }, ]} pagination={{ showQuickJumper: true, position: ["bottomCenter"], showSizeChanger: true, current: params.pageNum, pageSize: params.pageSize, total, onChange: paginationChange(), }} /> ); }; export default ManagementIndexPage;