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

Commit 346760c

Browse files
Optimized called APIs and in User groups.
1 parent 56ff238 commit 346760c

File tree

3 files changed

+63
-44
lines changed

3 files changed

+63
-44
lines changed
Lines changed: 8 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,16 @@
1-
import { Route, Switch } from "react-router";
1+
import React, {useState} from "react";
2+
import { Route, Switch } from "react-router-dom";
23
import PermissionList from "./permissionList";
34
import PermissionDetail from "./permissionDetail";
45
import { PERMISSION_SETTING, PERMISSION_SETTING_DETAIL, SETTING_URL } from "constants/routesURL";
56

6-
export default () => {
7+
export default function PermissionRoutes() {
8+
const [currentPage, setCurrentPage] = useState(1);
9+
const [pageSize, setPageSize] = useState(10);
710
return (
811
<Switch>
9-
<Route path={[SETTING_URL, PERMISSION_SETTING]} component={PermissionList}exact />
10-
<Route path={PERMISSION_SETTING_DETAIL} component={PermissionDetail} />
12+
<Route path={[SETTING_URL, PERMISSION_SETTING]} exactrender={(props)=><PermissionListcurrentPage={currentPage}pageSize={pageSize}setCurrentPage={setCurrentPage}setPageSize={setPageSize}/>} />
13+
<Route path={PERMISSION_SETTING_DETAIL} render={(props)=><PermissionDetailcurrentPageProp={currentPage}pageSizeProp={pageSize}/>} />
1114
</Switch>
1215
);
13-
};
16+
}

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

Lines changed: 32 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,13 @@
11
import React, {useEffect, useState} from "react";
2-
import { useDispatch, useSelector } from "react-redux";
3-
import { fetchGroupsAction } from "redux/reduxActions/orgActions";
2+
import { useSelector } from "react-redux";
43
import { getUser } from "redux/selectors/usersSelectors";
54
import styled from "styled-components";
65
import GroupPermission from "./groupUsersPermission";
76
import UsersPermission from "./orgUsersPermission";
8-
import { getOrgGroups } from "redux/selectors/orgSelectors";
97
import { useParams } from "react-router-dom";
10-
import {fetchGroupUsrPagination, fetchOrgUsrPagination} from "@lowcoder-ee/util/pagination/axios";
8+
import {fetchGroupUsrPagination, fetchOrgGroups,fetchOrgUsrPagination} from "@lowcoder-ee/util/pagination/axios";
119
import PaginationComp from "@lowcoder-ee/util/pagination/Pagination";
10+
import {OrgGroup} from "@lowcoder-ee/constants/orgConstants";
1211

1312
const PermissionContent = styled.div`
1413
display: flex;
@@ -20,34 +19,42 @@ const PermissionContent = styled.div`
2019
width: 100%;
2120
`;
2221

23-
constAll_Users="users";
22+
exportdefaultfunctionPermissionSetting(props: {currentPageProp: number,pageSizeProp: number}){
2423

25-
export default function PermissionSetting() { const user = useSelector(getUser);
26-
27-
const [elements, setElements] = useState<any>({ elements: [], total: 0, role: "" });
28-
const [orgMemberElements, setOrgMemberElements] = useState<any>({ elements: [], total: 0 })
24+
const {currentPageProp, pageSizeProp} = props;
25+
const user = useSelector(getUser);
26+
const [elements, setElements] = useState<any>({ elements: [], total: 1, role: "" });
27+
const [group, setGrouop] = useState<OrgGroup>();
28+
const [orgMemberElements, setOrgMemberElements] = useState<any>({ elements: [], total: 1 })
2929
const [currentPage, setCurrentPage] = useState(1);
3030
const [pageSize, setPageSize] = useState(10);
3131
const [modify, setModify] = useState(false);
3232

3333
const orgId = user.currentOrgId;
34-
const orgGroups = useSelector(getOrgGroups);
3534
const currentUser = useSelector(getUser);
36-
37-
const groupIdMap = new Map(orgGroups.map((group) => [group.groupId, group]));
38-
const dispatch = useDispatch();
3935
const selectKey = useParams<{ groupId: string }>().groupId;
40-
useEffect(() => {
41-
if (!orgId) {
42-
return;
43-
}
44-
dispatch(fetchGroupsAction(orgId));
45-
}, [orgId]);
36+
37+
useEffect( () => {
38+
fetchOrgGroups(
39+
{
40+
pageNum: currentPageProp,
41+
pageSize: pageSizeProp,
42+
}
43+
).then(result => {
44+
if (result.success && !!result.data){
45+
setGrouop(result.data.find(group => group.groupId === selectKey))
46+
}
47+
else
48+
console.error("ERROR: fetchFolderElements", result.error)
49+
})
50+
}, [currentPageProp, pageSizeProp]
51+
)
52+
4653
useEffect( () => {
47-
if (selectKey !== "users" && !!groupIdMap.get(selectKey))
54+
if (selectKey !== "users" && selectKey)
4855
fetchGroupUsrPagination(
4956
{
50-
groupId:groupIdMap.get(selectKey)!.groupId,
57+
groupId:selectKey,
5158
pageNum: currentPage,
5259
pageSize: pageSize,
5360
}
@@ -77,7 +84,7 @@ export default function PermissionSetting() { const user = useSelector(getUser)
7784
)
7885
}
7986
},
80-
[currentPage, pageSize, modify, groupIdMap.get(selectKey)]
87+
[currentPage, pageSize, modify, selectKey]
8188
)
8289

8390
if (!orgId) {
@@ -86,7 +93,7 @@ export default function PermissionSetting() { const user = useSelector(getUser)
8693

8794
return (
8895
<PermissionContent key={selectKey}>
89-
{selectKey === All_Users ? (
96+
{selectKey === "users" ? (
9097
<>
9198
<UsersPermission
9299
orgId={orgId}
@@ -99,10 +106,10 @@ export default function PermissionSetting() { const user = useSelector(getUser)
99106
<PaginationComp setCurrentPage={setCurrentPage} setPageSize={setPageSize} currentPage={currentPage} pageSize={pageSize} total={orgMemberElements.total} />
100107
</>
101108
) : (
102-
groupIdMap.has(selectKey) && (
109+
group && (
103110
<>
104111
<GroupPermission
105-
group={groupIdMap.get(selectKey)!}
112+
group={group}
106113
orgId={orgId}
107114
groupUsers={elements.elements}
108115
currentUserGroupRole={elements.role}

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

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -52,12 +52,21 @@ type DataItemInfo = {
5252
group?: OrgGroup;
5353
};
5454

55+
type PermissionSettingProps = {
56+
currentPage: number;
57+
setCurrentPage: (value: number) => void;
58+
pageSize: number;
59+
setPageSize: (value: number) => void;
60+
};
61+
5562
interface ElementsState {
5663
elements: OrgGroup[];
5764
total: number;
5865
}
5966

60-
export default function PermissionSetting() {
67+
export default function PermissionSetting(props: PermissionSettingProps) {
68+
69+
const {currentPage, setCurrentPage, pageSize, setPageSize} = props;
6170
let dataSource: DataItemInfo[] = [];
6271
const user = useSelector(getUser);
6372
const orgId = user.currentOrgId;
@@ -66,27 +75,27 @@ export default function PermissionSetting() {
6675
const { nameSuffixFunc, menuItemsFunc, menuExtraView } = usePermissionMenuItems(orgId);
6776
const [groupCreating, setGroupCreating] = useState(false);
6877
const [elements, setElements] = useState<ElementsState>({ elements: [], total: 0 });
69-
const [currentPage, setCurrentPage] = useState(1);
70-
const [pageSize, setPageSize] = useState(10);
7178
const [modify, setModify] = useState(false);
79+
const visibleOrgGroups = elements.elements.filter((g) => !g.allUsersGroup);
80+
const allUsersGroup = elements.elements.find((g) => g.allUsersGroup);
7281

7382
useEffect( () => {
74-
fetchOrgGroups(
83+
fetchOrgGroups(
7584
{
7685
pageNum: currentPage,
7786
pageSize: pageSize,
7887
}
79-
).then(result => {
80-
if (result.success){
81-
setElements({elements: result.data || [], total: result.total || 1})
82-
}
83-
else
84-
console.error("ERROR: fetchFolderElements", result.error)
85-
})
86-
}, [currentPage, pageSize, modify]
88+
).then(result => {
89+
if (result.success){
90+
setElements({elements: result.data || [], total: result.total || 1})
91+
}
92+
else
93+
console.error("ERROR: fetchFolderElements", result.error)
94+
})
95+
}, [currentPage, pageSize, modify]
8796
)
88-
constvisibleOrgGroups=elements.elements.filter((g)=>!g.allUsersGroup);
89-
constallUsersGroup=elements.elements.find((g)=>g.allUsersGroup);
97+
98+
9099
dataSource = currentPage === 1 ? [{
91100
key: "users",
92101
label: trans("memberSettings.allMembers"),

0 commit comments

Comments
(0)

AltStyle によって変換されたページ (->オリジナル) /