/* eslint-disable @typescript-eslint/no-use-before-define */ import CustomTree from '@/pages/components/customTree'; import { TeamOutlined } from '@ant-design/icons'; import type { PopoverProps } from 'antd'; import { Alert, Button, Popconfirm, Popover, Space, Tabs } from 'antd'; import React, { useEffect, useState } from 'react'; import SelectConponents from '../selectConponents'; import CustomTable from './table'; interface SelectedTableProps { placement?: PopoverProps['placement']; selectedOrg?: number; onCancel?: () => void; onOk?: (values: any) => void; orgTreeData?: User.OrganizationNode[]; value?: any; onChange?: (values: any) => void; } const SelectedTable: React.FC = (props) => { const { placement = 'bottomLeft', orgTreeData, value: formValue, onChange: onBindUserChange, } = props; const [open, setOpen] = useState(false); const [tableData, setTableData] = useState([]); //用户选择列表 const [selectedRowKeys, setSelectedRowKeys] = useState<[]>([]); const [selectedRows, setSelectedRows] = useState([]); // 用户组 const [checkedKeys, setCheckedKeys] = useState([]); const [checkedRow, setCheckedRow] = useState([]); // 已绑定用户列表选择 const [bindTableKeys, setBindTableKeys] = useState([]); useEffect(() => { console.log('formValue==========', formValue); const userList: any = []; const groupList: any = []; const userId: any = []; const groupId: any = []; if (formValue && formValue.length > 0) { formValue.forEach((item: any) => { if (item.type === 1) { userList.push(item); userId.push(item.id); } else { groupList.push(item); groupId.push(item.id); } }); setSelectedRowKeys(userId); setSelectedRows(userList); setCheckedKeys(groupId); setCheckedRow(groupList); } }, [formValue]); // const onOrgSelect = (selectedKeys: React.Key[], info: any) => {}; const onCheckChange = (keys: any[], info: any) => { const { checkedNodes } = info; console.log('info=========', info); setCheckedKeys(keys); setCheckedRow(checkedNodes); }; const onHnadleCancel = () => { setOpen(false); setSelectedRowKeys([]); setSelectedRows([]); setCheckedKeys([]); setCheckedRow([]); }; const onHandleOk = () => { const list: any[] = []; // 用户 (selectedRows || []).forEach((item) => { list.push({ id: item.id, name: item.name, type: 1, }); }); // 用户组 checkedRow.forEach((item) => { list.push({ id: item.id, name: item.name, type: 2, }); }); setTableData(list); onBindUserChange(list); onHnadleCancel(); }; const onUserTableSelect = (keys: any[], row: any[]) => { console.log('selectedRowKeys changed: ', keys); console.log('selectedRowKeys rows: ', row); setSelectedRowKeys(keys as any); setSelectedRows(row); }; const onSelectChange = (keys: any[]) => { console.log('selectedRowKeys changed: ', keys); setBindTableKeys(keys as any); }; const handleDelete = (record?: any) => { console.log('record=====handleDelete', record); if (record) { // 单个删除 const { id } = record || {}; const newData = tableData.filter((item) => item.id !== id); setTableData(newData); } else { // 批量删除 const newData = tableData.filter( (item) => !bindTableKeys.includes(item.id), ); setTableData(newData); setSelectedRowKeys([]); setSelectedRows([]); } }; const accessPopover = (
} />
); return ( <>
handleDelete()} disabled={bindTableKeys.length === 0} okText="删除" cancelText="取消" >
); }; export default SelectedTable;