import { useAjax } from "@/Hook/useAjax" import { addGroupApi, delGroupApi, editGroupApi, getGroupListApi } from "@/services/launchAdq/subgroup" import { DeleteOutlined, FormOutlined, PlusOutlined } from "@ant-design/icons" import { Button, Input, message, Popconfirm, Space, Spin } from "antd" import React, { useEffect, useRef, useState } from "react" import './index.less' /** * 分组管理Left */ interface Props { } const GroupLeft: React.FC = (props) => { /*************************/ const [isNewGrouping, setIsNewGrouping] = useState(false); // 是否新增分组 const inputRef = useRef(null); const [groupData, setGroupData] = useState<{ groupName: string, remark?: string, groupId?: number }>({ groupName: '' }) // 分组添加 const [selectAccData, setSelectAccData] = useState<{ id: number, mpName: string }[]>([]) // 选中 const [queryForm, setQueryForm] = useState<{ groupId?: number, pageNum: number, pageSize: number }>({ pageNum: 1, pageSize: 20 }) const { groupId = 0 } = queryForm const addGroup = useAjax((params) => addGroupApi(params)) const editGroup = useAjax((params) => editGroupApi(params)) const getGroupList = useAjax(() => getGroupListApi()) const delGroup = useAjax((params) => delGroupApi(params)) /*************************/ /** 点击新增处理聚焦 */ useEffect(() => { if (isNewGrouping && inputRef?.current) { inputRef.current!.focus({ cursor: 'end', }); } }, [inputRef, isNewGrouping]) /** 获取分组 */ useEffect(() => { getGroupList.run() }, []) /** 新增修改分组 */ const addEditHandle = () => { if (groupData?.groupName) { if (groupData?.groupId) { editGroup.run(groupData).then((res: any) => { message.success('修改成功') setGroupData({ groupName: '' }) setIsNewGrouping(false) getGroupList.refresh() }) } else { addGroup.run(groupData).then((res: any) => { message.success('添加成功') setGroupData({ groupName: '' }) setIsNewGrouping(false) getGroupList.refresh() }) } } else { message.error('请填写分组名称') } } /** 删除分组 */ const delGroupHandle = (groupId: number) => { delGroup.run({ groupId }).then(res => { message.success('删除成功') getGroupList.refresh() if (queryForm.groupId === groupId) { setQueryForm({ ...queryForm, groupId: 0 }) } }) } return
全部分组
{isNewGrouping &&
组名
{ setGroupData({ ...groupData, groupName: e.target.value }) }} value={groupData?.groupName} />
{/*
分组备注:
{ setGroupData({ ...groupData, remark: e.target.value }) }} value={groupData?.remark} />
*/}
}
{ setQueryForm({ ...queryForm, groupId: 0 }); setSelectAccData([]) }}>
默认分组
{getGroupList?.data?.map((item: { groupName: string, groupId: number }, index: number) =>
{groupData?.groupId && groupData?.groupId === item?.groupId ?
组名
{ setGroupData({ ...groupData, groupName: e.target.value }) }} value={groupData?.groupName} />
{/*
分组备注:
{ setGroupData({ ...groupData, remark: e.target.value }) }} value={groupData?.remark} />
*/}
:
{ setQueryForm({ ...queryForm, groupId: item.groupId, pageNum: 1 }); setSelectAccData([]) }} key={item.groupId || index}>
{item.groupName}
{/* {item?.remark &&
{item?.remark}
} */}
{ e.stopPropagation(); setGroupData({ ...item }); setIsNewGrouping(false) }} /> { delGroupHandle(item.groupId) }} okText="确定" cancelText="取消" >
}
)}
} export default React.memo(GroupLeft)