From 1080f33282adc1146bfd937f44bcae33b1631529 Mon Sep 17 00:00:00 2001 From: maggieyyy <61950669+maggieyyy@users.noreply.github.com> Date: Tue, 29 Oct 2024 15:12:43 +0800 Subject: [PATCH] fix: Modify member transfer icon and department --- .../src/components/aoplatform/MemberTransfer.tsx | 9 ++++++--- .../core/src/pages/member/MemberDropdownModal.tsx | 1 - .../core/src/pages/team/TeamInsideMember.tsx | 15 ++++++++++----- 3 files changed, 16 insertions(+), 9 deletions(-) diff --git a/frontend/packages/common/src/components/aoplatform/MemberTransfer.tsx b/frontend/packages/common/src/components/aoplatform/MemberTransfer.tsx index 7e549794..b582fe5c 100644 --- a/frontend/packages/common/src/components/aoplatform/MemberTransfer.tsx +++ b/frontend/packages/common/src/components/aoplatform/MemberTransfer.tsx @@ -2,11 +2,10 @@ import { TransferProps, TreeDataNode, Tree, Spin, Input } from "antd"; import { DataNode } from "antd/es/tree"; import { Ref, forwardRef, useEffect, useImperativeHandle, useMemo, useRef, useState } from "react"; -import { LoadingOutlined } from "@ant-design/icons"; +import { ApartmentOutlined, LoadingOutlined, UserOutlined } from "@ant-design/icons"; import { ColumnsType } from "antd/es/table"; import { $t } from "@common/locales"; import { useGlobalContext } from "@common/contexts/GlobalStateContext"; -import Search from "antd/es/input/Search"; export type TransferTableProps = { request?:(k?:string)=>Promise<{data:T[],success:boolean}> @@ -107,20 +106,23 @@ const generateTree = ( ...item, title, disableCheckbox:disabledData.indexOf(item.key as string) !== -1, + icon:, children: loop(item.children as T[]) }; } return { ...item, title, + icon:, isLeaf:true, disableCheckbox:disabledData.indexOf(item.key as string) !== -1 }; }); - console.log(searchWord, dataSource) return loop(dataSource); },[dataSource, state.language, searchWord]) + console.log(dataSource) + const getInitExpandKeys = (data:T[], expandKeys:string[] = [])=>{ data.forEach((item)=>{ if(item.children?.length){ @@ -160,6 +162,7 @@ const generateTree = ( onExpand={setExpandedKeys} treeData={translatedDataSource} blockNode + showIcon /> diff --git a/frontend/packages/core/src/pages/member/MemberDropdownModal.tsx b/frontend/packages/core/src/pages/member/MemberDropdownModal.tsx index 5d4cbe52..58860ec0 100644 --- a/frontend/packages/core/src/pages/member/MemberDropdownModal.tsx +++ b/frontend/packages/core/src/pages/member/MemberDropdownModal.tsx @@ -6,7 +6,6 @@ import { MemberDropdownModalHandle, MemberDropdownModalProps, DepartmentListItem import WithPermission from "@common/components/aoplatform/WithPermission.tsx"; import { $t } from "@common/locales/index.ts"; import { useGlobalContext } from "@common/contexts/GlobalStateContext.tsx"; -import { DataNode } from "antd/es/tree/index"; export const MemberDropdownModal = forwardRef((props,ref)=>{ const { message} = App.useApp() diff --git a/frontend/packages/core/src/pages/team/TeamInsideMember.tsx b/frontend/packages/core/src/pages/team/TeamInsideMember.tsx index 35c11e4e..dedf4f37 100644 --- a/frontend/packages/core/src/pages/team/TeamInsideMember.tsx +++ b/frontend/packages/core/src/pages/team/TeamInsideMember.tsx @@ -100,23 +100,27 @@ const TeamInsideMember:FC = ()=>{ ] : [...departmentMap.get('_withoutDepartment') || []]; - + let allMemberSelectedFlag:boolean = true for(const [k,v] of departmentMap){ if(k !== '_withoutDepartment' && allMemberIds.length > 0 ){ // 筛选出部门内没被勾选的用户,如果不存在没勾选用户,需要将部门id放入ids中 if(v.filter(m => allMemberIds.indexOf(m.id) === -1).length === 0){ setAllMemberSelectedDepartIds((pre)=>[...pre, k]) + }else if(['unknown','disable'].indexOf(k) === -1){ + allMemberSelectedFlag = false } } } - - if(!finalData[0].children || finalData[0].children.filter(m => allMemberIds.indexOf(m.id) === -1).length === 0){ - setAllMemberSelectedDepartIds((pre)=>[...pre, topDepartmentId]) + + if(departmentMap.get('_withoutDepartment')?.filter(x=>allMemberIds.indexOf(x)!==-1).length === 0 && allMemberSelectedFlag){ + setAllMemberSelectedDepartIds((pre)=>[...pre, topDepartmentId]) } + return {data:finalData, success: true} }).catch(()=>({data:[], success:false})) } + const getMemberList = ()=>{ return fetchData>('team/members',{method:'GET',eoParams:{keyword:searchWord, team:teamId},eoTransformKeys:['attach_time','is_delete']}).then(response=>{ @@ -331,7 +335,8 @@ const TeamInsideMember:FC = ()=>{ disabledData={treeDisabledData} request={()=>getDepartmentMemberList()} onSelect={(selectedData: Set) => { - setAddMemberBtnDisabled((selectedData.length === 0)); + const memberKeyFromModal = Array.from(selectedData)?.filter(x => allMemberIds.indexOf(x) === -1 &&selectableMemberIds.has(x)) || []; + setAddMemberBtnDisabled((memberKeyFromModal.length === 0)); }} searchPlaceholder={$t("输入名称查找用户")} />