Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commitfde73e9

Browse files
committed
Implemented pagination in groupUsersPermission.
1 parentcd7494b commitfde73e9

File tree

5 files changed

+102
-28
lines changed

5 files changed

+102
-28
lines changed

‎client/packages/lowcoder/src/api/orgApi.ts

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,12 @@ import {
1010
UpdateUserOrgRolePayload,
1111
}from"redux/reduxActions/orgActions";
1212
import{ApiResponse,GenericApiResponse}from"./apiResponses";
13-
import{GenericApiPaginationResponse,orgGroupRequestType}from"@lowcoder-ee/util/pagination/type";
13+
import{
14+
fetchOrgUserRequestType,
15+
GenericApiPaginationResponse,
16+
GroupUsersPaginationResponse,
17+
orgGroupRequestType
18+
}from"@lowcoder-ee/util/pagination/type";
1419

1520
exportinterfaceGroupUsersResponseextendsApiResponse{
1621
data:{
@@ -97,6 +102,11 @@ export class OrgApi extends Api {
97102
returnApi.get(OrgApi.fetchGroupUsersURL(groupId));
98103
}
99104

105+
staticfetchGroupUsersPagination(request:fetchOrgUserRequestType):AxiosPromise<GroupUsersPaginationResponse>{
106+
const{groupId, ...res}=request;
107+
returnApi.get(OrgApi.fetchGroupUsersURL(groupId),{...res});
108+
}
109+
100110
staticdeleteGroupUser(request:RemoveGroupUserPayload):AxiosPromise<ApiResponse>{
101111
returnApi.delete(OrgApi.deleteGroupUserURL(request.groupId),{
102112
userId:request.userId,

‎client/packages/lowcoder/src/pages/setting/permission/groupUsersPermission.tsx

Lines changed: 2 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -4,15 +4,13 @@ import { AddIcon, ArrowIcon, CustomSelect, PackUpIcon, SuperUserIcon } from "low
44
import{trans}from"i18n";
55
importProfileImagefrom"pages/common/profileImage";
66
importReact,{useEffect,useMemo}from"react";
7-
import{connect,useDispatch}from"react-redux";
8-
import{AppState}from"redux/reducers";
7+
import{useDispatch}from"react-redux";
98
import{
109
deleteGroupUserAction,
1110
fetchGroupUsersAction,
1211
quitGroupAction,
1312
updateUserGroupRoleAction,
1413
}from"redux/reduxActions/orgActions";
15-
import{getUser}from"redux/selectors/usersSelectors";
1614
importstyledfrom"styled-components";
1715
import{formatTimestamp}from"util/dateTimeUtils";
1816
import{currentOrgAdmin,isGroupAdmin}from"util/permissionUtils";
@@ -208,13 +206,4 @@ function GroupUsersPermission(props: GroupPermissionProp) {
208206
);
209207
}
210208

211-
constmapStateToProps=(state:AppState)=>{
212-
return{
213-
groupUsers:state.ui.org.groupUsers,
214-
groupUsersFetching:state.ui.org.groupUsersFetching,
215-
currentUser:getUser(state),
216-
currentUserGroupRole:state.ui.org.currentUserGroupRole,
217-
};
218-
};
219-
220-
exportdefaultconnect(mapStateToProps)(GroupUsersPermission);
209+
exportdefaultGroupUsersPermission;
Lines changed: 56 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,16 @@
1-
import{useEffect}from"react";
1+
importReact,{useEffect,useState}from"react";
22
import{useDispatch,useSelector}from"react-redux";
33
import{fetchGroupsAction}from"redux/reduxActions/orgActions";
44
import{getUser}from"redux/selectors/usersSelectors";
55
importstyledfrom"styled-components";
66
importGroupPermissionfrom"./groupUsersPermission";
77
importUsersPermissionfrom"./orgUsersPermission";
88
import{getOrgGroups}from"redux/selectors/orgSelectors";
9-
import{useParams}from"react-router";
9+
import{useParams}from"react-router-dom";
10+
import{AppState}from"redux/reducers";
11+
import{fetchGroupUsrPagination}from"@lowcoder-ee/util/pagination/axios";
12+
import{OrgGroup}from"@lowcoder-ee/constants/orgConstants";
13+
importPaginationCompfrom"@lowcoder-ee/util/pagination/Pagination";
1014

1115
constPermissionContent=styled.div`
1216
display: flex;
@@ -20,10 +24,18 @@ const PermissionContent = styled.div`
2024

2125
constAll_Users="users";
2226

23-
exportdefaultfunctionPermissionSetting(){
24-
constuser=useSelector(getUser);
27+
exportdefaultfunctionPermissionSetting(){constuser=useSelector(getUser);
28+
29+
const[elements,setElements]=useState<any>({elements:[],total:0});
30+
const[currentPage,setCurrentPage]=useState(1);
31+
const[pageSize,setPageSize]=useState(10);
32+
2533
constorgId=user.currentOrgId;
2634
constorgGroups=useSelector(getOrgGroups);
35+
constgroupUsers=useSelector((state:AppState)=>state.ui.org.groupUsers);
36+
constgroupUsersFetching=useSelector((state:AppState)=>state.ui.org.groupUsersFetching);
37+
constcurrentUserGroupRole=useSelector((state:AppState)=>state.ui.org.currentUserGroupRole);
38+
constcurrentUser=useSelector(getUser);
2739
constgroupIdMap=newMap(orgGroups.map((group)=>[group.groupId,group]));
2840
constdispatch=useDispatch();
2941
constselectKey=useParams<{groupId:string}>().groupId;
@@ -33,19 +45,49 @@ export default function PermissionSetting() {
3345
}
3446
dispatch(fetchGroupsAction(orgId));
3547
},[orgId]);
48+
49+
useEffect(()=>{
50+
if(selectKey!=="users")
51+
fetchGroupUsrPagination(
52+
{
53+
groupId:groupIdMap.get(selectKey)!.groupId,
54+
pageNum:currentPage,
55+
pageSize:pageSize,
56+
}
57+
).then(result=>{
58+
if(result.success){
59+
setElements({elements:result.data||[],total:result.total||1})
60+
}
61+
else
62+
console.error("ERROR: fetchFolderElements",result.error)
63+
})
64+
},[currentPage,pageSize]
65+
)
66+
3667
if(!orgId){
3768
returnnull;
3869
}
3970

4071
return(
41-
<PermissionContentkey={selectKey}>
42-
{selectKey===All_Users ?(
43-
<UsersPermissionorgId={orgId}/>
44-
) :(
45-
groupIdMap.has(selectKey)&&(
46-
<GroupPermissiongroup={groupIdMap.get(selectKey)!}orgId={orgId}/>
47-
)
48-
)}
49-
</PermissionContent>
72+
<PermissionContentkey={selectKey}>
73+
{selectKey===All_Users ?(
74+
<UsersPermissionorgId={orgId}/>
75+
) :(
76+
groupIdMap.has(selectKey)&&(
77+
<>
78+
<GroupPermission
79+
group={groupIdMap.get(selectKey)!}
80+
orgId={orgId}
81+
groupUsers={groupUsers}
82+
groupUsersFetching={groupUsersFetching}
83+
currentUserGroupRole={currentUserGroupRole}
84+
currentUser={currentUser}
85+
/>
86+
<PaginationCompsetCurrentPage={setCurrentPage}setPageSize={setPageSize}currentPage={currentPage}pageSize={pageSize}total={elements.total}/>
87+
</>
88+
89+
)
90+
)}
91+
</PermissionContent>
5092
);
51-
}
93+
}

‎client/packages/lowcoder/src/util/pagination/axios.ts

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
fetchAppRequestType,
55
fetchDBRequestType,
66
fetchFolderRequestType,
7+
fetchOrgUserRequestType,
78
orgGroupRequestType
89
}from"@lowcoder-ee/util/pagination/type";
910
importOrgApifrom"@lowcoder-ee/api/orgApi";
@@ -76,4 +77,21 @@ export const fetchDatasourcePagination = async (request: fetchDBRequestType)=> {
7677
error:error
7778
};
7879
}
80+
}
81+
82+
exportconstfetchGroupUsrPagination=async(request:fetchOrgUserRequestType)=>{
83+
try{
84+
constresponse=awaitOrgApi.fetchGroupUsersPagination(request);
85+
return{
86+
success:true,
87+
data:response.data.data,
88+
total:response.data.total
89+
}
90+
}catch(error:any){
91+
console.error('Failed to fetch data:',error);
92+
return{
93+
success:false,
94+
error:error
95+
};
96+
}
7997
}

‎client/packages/lowcoder/src/util/pagination/type.ts

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
import{GroupUser}from"@lowcoder-ee/constants/orgConstants";
2+
13
typeApplicationType={
24
[key:number]:string;// This allows numeric indexing
35
};
@@ -9,6 +11,14 @@ export interface GenericApiPaginationResponse<T> {
911
message:string;
1012
data:T;
1113
}
14+
exportinterfaceGroupUsersPaginationResponse{
15+
total:number;
16+
success:boolean;
17+
data:{
18+
members:GroupUser[];
19+
visitorRole:string;
20+
};
21+
}
1222

1323
exportconstApplicationPaginationType:ApplicationType={
1424
0:"",
@@ -46,3 +56,8 @@ export interface orgGroupRequestType{
4656
pageNum?:number;
4757
pageSize?:number;
4858
}
59+
exportinterfacefetchOrgUserRequestType{
60+
groupId:string;
61+
pageNum?:number;
62+
pageSize?:number;
63+
}

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp