import React, { useEffect, useState } from "react"; import { Input, Switch } from 'antd' import { KCIMTable } from "@/components/KCIMTable"; import { createFromIconfontCN } from "@ant-design/icons"; import { getCheckData } from "../checkGroupMana/service"; import { ModalForm, ProColumns } from "@ant-design/pro-components"; import { getData } from "../empMana/service"; // import './style.less'; interface TableSelecterProps { record: any } const IconFont = createFromIconfontCN({ scriptUrl: '', }); const TableSelecter = ({ tableSelecterType, record, open, title, onVisibleChange, rowKey = 'id', request, onFinish }: { record: any, open: boolean, title: string, onVisibleChange: (bool: boolean) => void, tableSelecterType:string, rowKey?: string, request?: (params: any) => Promise, onFinish?: (selectedKeys: React.Key[], selectedRows: any[]) => void }) => { const Table = React.forwardRef(({ }: TableSelecterProps, ref) => { const [datasource, set_datasource] = useState([]); const [selectedKeys, setSelectedKeys] = useState([]); const [selectedRows, set_selectedRows] = useState([]); const [showList, set_showList] = useState([]); const empColumns: ProColumns[] = [ { title: 'ID', dataIndex: 'id', }, { title: '姓名', dataIndex: 'name', }, ]; const checkGroupColumns: ProColumns[] = [ { title: 'ID', dataIndex: 'id', }, { title: '查核组名', dataIndex: 'id', }, { title: '是否查核组长', dataIndex: 'flag', renderText(flag, record, index, action) { return onSwitchChange(bool, record)} /> }, } ]; const onSwitchChange = (bool: boolean, record: any) => { const newData = datasource.map((item) => { if (item.id == record.id) { return { ...item, flag: bool } } else { return item } }); const newShowList = showList.map((item) => { if (item.id == record.id) { return { ...item, flag: bool } } else { return item } }); // console.log({newData,newShowList}); set_datasource([...newData]); set_showList([...newShowList]); } const onSelectChange = (newSelectedRowKeys: React.Key[], selectedRows: any) => { setSelectedKeys([...newSelectedRowKeys]); }; const saveHandle = async () => { onFinish && onFinish(selectedKeys, selectedRows); } const getTableData = async () => { const resp = await getData({ current: 1, pageSize: 500 }); if (resp) { set_showList(resp.list); set_datasource([...datasource, ...resp.list]); } return Promise.resolve([]); } useEffect(()=>{ console.log({record}); },[record]); useEffect(() => { getTableData() }, []) return (
} style={{ marginBottom: 8 }} onChange={(e) => { if (e.target.value.length != 0) { const result = datasource.filter(item => item.name.indexOf(e.target.value) != -1); set_showList(result); } else { set_showList(datasource); } }} />
close()}>取消 saveHandle()}>{`确认(${selectedKeys.length > 0 && selectedKeys.length})`}
) }); const close = () => { onVisibleChange && onVisibleChange(false); } return (
) } export default TableSelecter