/* eslint-disable array-callback-return */ // index.tsx import { ERROR_CODE } from '@/constants/constants'; import { bindUserAdd, getBindUserList } from '@/services/terminal'; import { getGroupTree } from '@/services/userList'; import { Button, Form, message, Modal } from 'antd'; import React, { useEffect, useState } from 'react'; import SelectedTable from '../selectedTable'; import styles from './index.less'; interface UserEditModalProps { onCancel: () => void; onOk: (values?: any) => void; confirmLoading?: boolean; dataDetial?: Termial.ModalBaseNode; selectedOrg?: number; } const BindUserModal: React.FC = ({ // orgTreeData, onCancel, onOk, confirmLoading = false, dataDetial, }) => { const { recordData, visible } = dataDetial || {}; const { device_id, device_group_id } = recordData || {}; const [orgTreeData, setOrgTreeData] = useState([]); const [userDataSource, setUserDataSource] = useState([]); // const [groupDataSource, setGroupDataSource] = useState([]); const [form] = Form.useForm(); const getGroupList = async () => { const params = { type: 1, }; try { const result = await getGroupTree(params); console.log('result=====', result); const { code, data = [] } = result || {}; if (code === ERROR_CODE) { if (data.length > 0) { const { children = [] } = data[0] || {}; setOrgTreeData(children); } } else { message.error(result.message || '获取终端分组失败'); } } catch (err) { message.error('获取终端分组失败'); } }; useEffect(() => { getGroupList(); }, [visible]); useEffect(() => { if (!device_id) return; const payload = { device_id: device_id }; getBindUserList(payload).then((res: any) => { const { code, data = [] } = res || {}; if (code === ERROR_CODE) { if (data && data.length > 0) { const list: any[] = []; data.map((item: any) => { const { type, user_id, user_name, user_group_id, user_group_name } = item || {}; const obj: any = { ...item }; delete obj.id; if (type === 1) { list.push({ table_id: `user_${user_id}`, id: user_id, name: user_name, user_name: user_name, type: type, }); } else { list.push({ table_id: `group_${user_group_id}`, id: user_group_id, name: user_group_name, type: type, }); } }); setUserDataSource(data); const initialValues = { user_list: list }; form.setFieldsValue(initialValues); } } }); }, [visible, form, recordData]); const onBind = (payload: any) => { bindUserAdd(payload) .then((res: any) => { const { code } = res || {}; if (code === ERROR_CODE) { message.success('绑定成功'); onOk(); } else { message.error('绑定失败'); } }) .catch(() => {}); }; const handleOk = async () => { try { const values = await form.validateFields(); const { user_list = [] } = values || {}; const list: any[] = []; user_list.forEach((item: any) => { const { type, id } = item || {}; if (type === 1) { // 用户 const obj: any = { device_id, device_group_id, type: type, user_id: id, }; const newData = userDataSource.filter( (record) => record.user_id === item.id && record.type === 1, ); if (newData && newData.length === 1) { obj.id = newData[0].id; } list.push(obj); } else { //用户分组 const obj: any = { device_id, device_group_id, type: type, user_group_id: id, }; const newData = userDataSource.filter( (record) => record.user_group_id === item.id && record.type === 2, ); if (newData && newData.length === 1) { obj.id = newData[0].id; } list.push(obj); } }); const payload = { data: list, device_id:device_id, }; onBind(payload); } catch (error) { message.error('请检查表单字段'); } }; return ( // // // // } >
{/* */}
); }; export default BindUserModal;