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

Commitea6d088

Browse files
committed
Implemented pagination in organizations's member.
1 parentfde73e9 commitea6d088

File tree

5 files changed

+83
-32
lines changed

5 files changed

+83
-32
lines changed

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

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,11 @@ import {
1111
}from"redux/reduxActions/orgActions";
1212
import{ApiResponse,GenericApiResponse}from"./apiResponses";
1313
import{
14+
fetchGroupUserRequestType,
1415
fetchOrgUserRequestType,
1516
GenericApiPaginationResponse,
1617
GroupUsersPaginationResponse,
17-
orgGroupRequestType
18+
orgGroupRequestType,OrgUsersPaginationResponse
1819
}from"@lowcoder-ee/util/pagination/type";
1920

2021
exportinterfaceGroupUsersResponseextendsApiResponse{
@@ -98,11 +99,16 @@ export class OrgApi extends Api {
9899
returnApi.get(OrgApi.fetchOrgUsersURL(orgId));
99100
}
100101

102+
staticfetchOrgUsersPagination(request:fetchOrgUserRequestType):AxiosPromise<OrgUsersPaginationResponse>{
103+
const{orgId, ...res}=request;
104+
returnApi.get(OrgApi.fetchOrgUsersURL(orgId),{...res});
105+
}
106+
101107
staticfetchGroupUsers(groupId:string):AxiosPromise<GroupUsersResponse>{
102108
returnApi.get(OrgApi.fetchGroupUsersURL(groupId));
103109
}
104110

105-
staticfetchGroupUsersPagination(request:fetchOrgUserRequestType):AxiosPromise<GroupUsersPaginationResponse>{
111+
staticfetchGroupUsersPagination(request:fetchGroupUserRequestType):AxiosPromise<GroupUsersPaginationResponse>{
106112
const{groupId, ...res}=request;
107113
returnApi.get(OrgApi.fetchGroupUsersURL(groupId),{...res});
108114
}

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

Lines changed: 2 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -15,15 +15,13 @@ import { trans, transToNode } from "i18n";
1515
importInviteDialogfrom"pages/common/inviteDialog";
1616
importProfileImagefrom"pages/common/profileImage";
1717
importReact,{useEffect,useMemo}from"react";
18-
import{connect,useDispatch,useSelector}from"react-redux";
19-
import{AppState}from"redux/reducers";
18+
import{useDispatch,useSelector}from"react-redux";
2019
import{
2120
deleteOrgUserAction,
2221
fetchOrgUsersAction,
2322
quitOrgAction,
2423
updateUserOrgRoleAction,
2524
}from"redux/reduxActions/orgActions";
26-
import{getUser}from"redux/selectors/usersSelectors";
2725
importstyledfrom"styled-components";
2826
import{formatTimestamp}from"util/dateTimeUtils";
2927
import{currentOrgAdmin}from"util/permissionUtils";
@@ -299,17 +297,4 @@ function OrgUsersPermission(props: UsersPermissionProp) {
299297
);
300298
}
301299

302-
constmapStateToProps=(state:AppState)=>{
303-
console.log({
304-
orgUsersFetching:state.ui.org.orgUsersFetching,
305-
orgUsers:state.ui.org.orgUsers,
306-
currentUser:getUser(state),
307-
})
308-
return{
309-
orgUsersFetching:state.ui.org.orgUsersFetching,
310-
orgUsers:state.ui.org.orgUsers,
311-
currentUser:getUser(state),
312-
};
313-
};
314-
315-
exportdefaultconnect(mapStateToProps)(OrgUsersPermission);
300+
exportdefaultOrgUsersPermission;

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

Lines changed: 34 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -8,8 +8,7 @@ import UsersPermission from "./orgUsersPermission";
88
import{getOrgGroups}from"redux/selectors/orgSelectors";
99
import{useParams}from"react-router-dom";
1010
import{AppState}from"redux/reducers";
11-
import{fetchGroupUsrPagination}from"@lowcoder-ee/util/pagination/axios";
12-
import{OrgGroup}from"@lowcoder-ee/constants/orgConstants";
11+
import{fetchGroupUsrPagination,fetchOrgUsrPagination}from"@lowcoder-ee/util/pagination/axios";
1312
importPaginationCompfrom"@lowcoder-ee/util/pagination/Pagination";
1413

1514
constPermissionContent=styled.div`
@@ -27,15 +26,17 @@ const All_Users = "users";
2726
exportdefaultfunctionPermissionSetting(){constuser=useSelector(getUser);
2827

2928
const[elements,setElements]=useState<any>({elements:[],total:0});
29+
const[orgMemberElements,setOrgMemberElements]=useState<any>({elements:[],total:0})
3030
const[currentPage,setCurrentPage]=useState(1);
3131
const[pageSize,setPageSize]=useState(10);
3232

3333
constorgId=user.currentOrgId;
3434
constorgGroups=useSelector(getOrgGroups);
35-
constgroupUsers=useSelector((state:AppState)=>state.ui.org.groupUsers);
3635
constgroupUsersFetching=useSelector((state:AppState)=>state.ui.org.groupUsersFetching);
3736
constcurrentUserGroupRole=useSelector((state:AppState)=>state.ui.org.currentUserGroupRole);
3837
constcurrentUser=useSelector(getUser);
38+
constorgUsersFetching=useSelector((state:AppState)=>state.ui.org.orgUsersFetching);
39+
3940
constgroupIdMap=newMap(orgGroups.map((group)=>[group.groupId,group]));
4041
constdispatch=useDispatch();
4142
constselectKey=useParams<{groupId:string}>().groupId;
@@ -60,8 +61,25 @@ export default function PermissionSetting() { const user = useSelector(getUser)
6061
}
6162
else
6263
console.error("ERROR: fetchFolderElements",result.error)
63-
})
64-
},[currentPage,pageSize]
64+
}
65+
)
66+
else
67+
fetchOrgUsrPagination(
68+
{
69+
orgId:orgId,
70+
pageNum:currentPage,
71+
pageSize:pageSize,
72+
}
73+
).then(result=>{
74+
if(result.success){
75+
setOrgMemberElements({elements:result.data||[],total:result.total||1})
76+
}
77+
else
78+
console.error("ERROR: fetchFolderElements",result.error)
79+
}
80+
)
81+
},
82+
[currentPage,pageSize]
6583
)
6684

6785
if(!orgId){
@@ -71,14 +89,23 @@ export default function PermissionSetting() { const user = useSelector(getUser)
7189
return(
7290
<PermissionContentkey={selectKey}>
7391
{selectKey===All_Users ?(
74-
<UsersPermissionorgId={orgId}/>
92+
<>
93+
<UsersPermission
94+
orgId={orgId}
95+
orgUsersFetching={orgUsersFetching}
96+
// orgUsers={!orgMemberElements.elements.members ? [] : orgMemberElements.elements.members}
97+
orgUsers={orgMemberElements.elements}
98+
currentUser={currentUser}
99+
/>
100+
<PaginationCompsetCurrentPage={setCurrentPage}setPageSize={setPageSize}currentPage={currentPage}pageSize={pageSize}total={orgMemberElements.total}/>
101+
</>
75102
) :(
76103
groupIdMap.has(selectKey)&&(
77104
<>
78105
<GroupPermission
79106
group={groupIdMap.get(selectKey)!}
80107
orgId={orgId}
81-
groupUsers={groupUsers}
108+
groupUsers={elements.elements}
82109
groupUsersFetching={groupUsersFetching}
83110
currentUserGroupRole={currentUserGroupRole}
84111
currentUser={currentUser}

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

Lines changed: 22 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ import {
44
fetchAppRequestType,
55
fetchDBRequestType,
66
fetchFolderRequestType,
7+
fetchGroupUserRequestType,
78
fetchOrgUserRequestType,
89
orgGroupRequestType
910
}from"@lowcoder-ee/util/pagination/type";
@@ -79,13 +80,30 @@ export const fetchDatasourcePagination = async (request: fetchDBRequestType)=> {
7980
}
8081
}
8182

82-
exportconstfetchGroupUsrPagination=async(request:fetchOrgUserRequestType)=>{
83+
exportconstfetchGroupUsrPagination=async(request:fetchGroupUserRequestType)=>{
8384
try{
8485
constresponse=awaitOrgApi.fetchGroupUsersPagination(request);
8586
return{
8687
success:true,
87-
data:response.data.data,
88-
total:response.data.total
88+
data:response.data.data.members,
89+
total:response.data.data.total
90+
}
91+
}catch(error:any){
92+
console.error('Failed to fetch data:',error);
93+
return{
94+
success:false,
95+
error:error
96+
};
97+
}
98+
}
99+
100+
exportconstfetchOrgUsrPagination=async(request:fetchOrgUserRequestType)=>{
101+
try{
102+
constresponse=awaitOrgApi.fetchOrgUsersPagination(request);
103+
return{
104+
success:true,
105+
data:response.data.data.members,
106+
total:response.data.data.total,
89107
}
90108
}catch(error:any){
91109
console.error('Failed to fetch data:',error);
@@ -94,4 +112,4 @@ export const fetchGroupUsrPagination = async (request: fetchOrgUserRequestType)=
94112
error:error
95113
};
96114
}
97-
}
115+
}

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

Lines changed: 17 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import{GroupUser}from"@lowcoder-ee/constants/orgConstants";
1+
import{GroupUser,OrgUser}from"@lowcoder-ee/constants/orgConstants";
22

33
typeApplicationType={
44
[key:number]:string;// This allows numeric indexing
@@ -12,11 +12,20 @@ export interface GenericApiPaginationResponse<T> {
1212
data:T;
1313
}
1414
exportinterfaceGroupUsersPaginationResponse{
15-
total:number;
1615
success:boolean;
1716
data:{
1817
members:GroupUser[];
1918
visitorRole:string;
19+
total:number;
20+
};
21+
}
22+
23+
exportinterfaceOrgUsersPaginationResponse{
24+
success:boolean;
25+
data:{
26+
total:number;
27+
members:OrgUser[];
28+
visitorRole:string;
2029
};
2130
}
2231

@@ -57,6 +66,12 @@ export interface orgGroupRequestType{
5766
pageSize?:number;
5867
}
5968
exportinterfacefetchOrgUserRequestType{
69+
orgId:string;
70+
pageNum?:number;
71+
pageSize?:number;
72+
}
73+
74+
exportinterfacefetchGroupUserRequestType{
6075
groupId:string;
6176
pageNum?:number;
6277
pageSize?:number;

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp