import { MyBetaModalFormProps, MyButtons, MyColumns, MyProTableProps, } from '@/common'; import { MyModal } from '@/components/MyModal'; import { Apis } from '@/gen/Apis'; import { AssetProjectsPropertyTypeEnum } from '@/gen/Enums'; import { ProTable } from '@ant-design/pro-components'; import { useRef, useState } from 'react'; interface DataType { key?: React.Key; id?: React.Key; } export default function SurveysSelectList( props: MyBetaModalFormProps & { onChange?: (selectedRows: DataType[]) => void; type?: 'checkbox' | 'radio'; }, ) { const modalRef = useRef(); // const [selectedDataRow, setSelectedDataRow] = useState({}); const [getSelectedRow, setSelectedRow] = useState([]); const rowSelection: any = { onChange: (selectedRowKeys: React.Key[], selectedRows: DataType[]) => { console.log(selectedRows, 'selectedRows[0]'); setSelectedRow(selectedRows); }, getCheckboxProps: (record: any) => ({ disabled: record.deleted_at, checked: props?.item?.some((item: any) => { console.log(item, record); return item?.id === record?.id; }), }), defaultSelectedRowKeys: props?.item?.map((item: any) => item?.id) || [], }; return ( { setSelectedRow(props?.item); console.log(props?.item, 'props?.item?.id'); }} node={ MyProTableProps.request(params, sort, Apis.Asset.AssetProjects.List) } rowSelection={{ type: props?.type ? props?.type : 'checkbox', ...rowSelection, }} options={false} tableAlertOptionRender={() => { return ( { let res: any = getSelectedRow; props?.onChange?.(res); modalRef.current?.close(); }} title="确定选项" /> ); }} columns={[ MyColumns.ID({ search: false, }), { title: '项目名称', dataIndex: 'name', }, MyColumns.EnumTag({ title: '类型', dataIndex: 'property_type', valueEnum: AssetProjectsPropertyTypeEnum, search: false, }), { title: '地址', render: (_, i: any) => { return `${i?.province || ''} ${i?.city || ''} ${ i?.district || '' }${i?.address || ''}`; }, search: false, }, MyColumns.DeletedAt({ title: '启/禁用', dataIndex: 'deleted_at', search: false, }), ]} /> } > ); }