From dcdbc542eef8eee461540ef7b70a025330fc9005 Mon Sep 17 00:00:00 2001 From: Alex Cheung Date: Mon, 11 Sep 2023 13:50:09 +0800 Subject: [PATCH] update new gld use by admin --- .../pnspsUserDetailPage/UserGroupCard.js | 4 +- .../pnspsUserDetailPage/UserGroupTable.js | 5 +- .../UserInformationCard.js | 73 +++++++++-------- src/pages/pnspsUserDetailPage/index.js | 75 +++++++++++------ .../pnspsUserSearchPage/UserSearchForm.js | 81 ++++++++++--------- src/pages/pnspsUserSearchPage/index.js | 23 +++--- 6 files changed, 153 insertions(+), 108 deletions(-) diff --git a/src/pages/pnspsUserDetailPage/UserGroupCard.js b/src/pages/pnspsUserDetailPage/UserGroupCard.js index 063d4af..00f2a0e 100644 --- a/src/pages/pnspsUserDetailPage/UserGroupCard.js +++ b/src/pages/pnspsUserDetailPage/UserGroupCard.js @@ -15,7 +15,7 @@ const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingCompo // ==============================|| DASHBOARD - DEFAULT ||============================== // -const UserGroupCard = ({isCollectData, updateUserGroupList,userData}) => { +const UserGroupCard = ({isCollectData, updateUserGroupList,userData,isNewRecord}) => { const [currentUserData, setCurrentUserData] = React.useState({}); const [onReady, setOnReady] = useState(false); const [selectedRow, setSelectedRow] = useState([]); @@ -30,7 +30,6 @@ const UserGroupCard = ({isCollectData, updateUserGroupList,userData}) => { useEffect(() => { //if state data are ready and assign to different field - // if (Object.keys(userData).length > 0 &¤tUserData !== undefined) { if (Object.keys(userData).length > 0 &¤tUserData !== undefined) { setOnReady(true); } @@ -56,6 +55,7 @@ const UserGroupCard = ({isCollectData, updateUserGroupList,userData}) => { ); diff --git a/src/pages/pnspsUserDetailPage/UserGroupTable.js b/src/pages/pnspsUserDetailPage/UserGroupTable.js index 4e24bc1..871ff2e 100644 --- a/src/pages/pnspsUserDetailPage/UserGroupTable.js +++ b/src/pages/pnspsUserDetailPage/UserGroupTable.js @@ -13,7 +13,7 @@ const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingCompo // ==============================|| EVENT TABLE ||============================== // -export default function UserGroupTable({setSelectedRow, userGroup}) { +export default function UserGroupTable({setSelectedRow, userGroup,isNewRecord}) { const [groupData, setGroupData] = useState([]); const [onReady, setOnReady] = useState(false); const [currentSelectedRow, setCurrentSelectedRow] = useState(userGroup); @@ -33,8 +33,7 @@ export default function UserGroupTable({setSelectedRow, userGroup}) { useEffect(() => { //if state data are ready and assign to different field - console.log(groupData) - if (groupData!== undefined) { + if (groupData.length > 0||isNewRecord) { setOnReady(true); } }, [groupData]); diff --git a/src/pages/pnspsUserDetailPage/UserInformationCard.js b/src/pages/pnspsUserDetailPage/UserInformationCard.js index 01baee3..72e0dc0 100644 --- a/src/pages/pnspsUserDetailPage/UserInformationCard.js +++ b/src/pages/pnspsUserDetailPage/UserInformationCard.js @@ -1,7 +1,10 @@ // material-ui import { - FormControl, IconButton, - Grid, InputAdornment, Typography, FormLabel, + FormControl, + IconButton, + Grid, + InputAdornment, + Typography, FormLabel, OutlinedInput, } from '@mui/material'; import MainCard from "../../components/MainCard"; @@ -96,40 +99,42 @@ const UserInformationCard = ({isCollectData, updateUserObject,userData,isNewReco + { + isNewRecord? + + + + Password: + - - - - Password: + + + + + {showPassword ? : } + + + } + /> + + - - - - - - {showPassword ? : } - - - } - /> - - - - + : null + } diff --git a/src/pages/pnspsUserDetailPage/index.js b/src/pages/pnspsUserDetailPage/index.js index 032cf51..fc14732 100644 --- a/src/pages/pnspsUserDetailPage/index.js +++ b/src/pages/pnspsUserDetailPage/index.js @@ -9,7 +9,7 @@ import {useEffect, useState} from "react"; import * as React from "react"; import axios from "axios"; import {useNavigate,useParams} from "react-router-dom"; -import {GLD_USER_PATH,DELETE_USER} from "../../utils/ApiPathConst"; +import {GLD_USER_PATH,DELETE_USER,POST_ADMIN_USER_REGISTER} from "../../utils/ApiPathConst"; import Loadable from 'components/Loadable'; import { lazy } from 'react'; @@ -130,29 +130,58 @@ const UserMaintainPage = () => { if(userConfirm && onReady){ const deletedUserAuth = getDeletedRecordWithRefList(refUserData.authIds,userAuthData); const deletedUserGroup = getDeletedRecordWithRefList(refUserData.groupIds,userGroupData); - axios.post(`${GLD_USER_PATH}/${params.id}`, - { - "enName": editedCustomerData.enName, - "locked": editedCustomerData.locked, - // "password": editedCustomerData.password, - // "phone": editedCustomerData.phone, - "post": editedCustomerData.post, - "emailAddress": editedCustomerData.emailAddress, - "addGroupIds": userGroupData, - "removeGroupIds": deletedUserGroup, - "addAuthIds": userAuthData, - "removeAuthIds": deletedUserAuth, - }, - ).then((response) => { - if (response.status === 204) { - // notifySaveSuccess(); - navigate('/userSearchview'); - } - }) - .catch(error => { - console.log(error); - return false; + // console.log(userGroupData) + // console.log(userAuthData) + if( parseInt(params.id) >= -1){ + axios.post(`${GLD_USER_PATH}/${params.id}`, + { + "enName": editedCustomerData.enName, + "locked": editedCustomerData.locked, + // "password": editedCustomerData.password, + // "phone": editedCustomerData.phone, + "post": editedCustomerData.post, + "emailAddress": editedCustomerData.emailAddress, + "addGroupIds": userGroupData, + "removeGroupIds": deletedUserGroup, + "addAuthIds": userAuthData, + "removeAuthIds": deletedUserAuth, + }, + ).then((response) => { + if (response.status === 204) { + // notifySaveSuccess(); + navigate('/userSearchview'); + } + }) + .catch(error => { + console.log(error); + return false; + }); + }else{ + axios.post(POST_ADMIN_USER_REGISTER, + { + "username": editedCustomerData.username, + "name": editedCustomerData.username, + "password": editedCustomerData.password, + "enName": editedCustomerData.enName, + "locked": editedCustomerData.locked, + "emailAddress": editedCustomerData.emailAddress, + "post": editedCustomerData.post, + "addGroupIds": userGroupData, + "removeGroupIds": [], + "addAuthIds": userAuthData, + "removeAuthIds": [], + }, + ).then((response) => { + if (response.status === 200) { + // notifySaveSuccess(); + navigate('/userSearchview'); + } + }) + .catch(error => { + console.log(error); + return false; }); + } } setUserConfirm(false); }, [editedCustomerData,userGroupData,userAuthData]); diff --git a/src/pages/pnspsUserSearchPage/UserSearchForm.js b/src/pages/pnspsUserSearchPage/UserSearchForm.js index e2fc547..47dc8ca 100644 --- a/src/pages/pnspsUserSearchPage/UserSearchForm.js +++ b/src/pages/pnspsUserSearchPage/UserSearchForm.js @@ -14,11 +14,14 @@ import { import Checkbox from "@mui/material/Checkbox"; import * as React from "react"; -// import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'; +import AddCircleOutlineIcon from '@mui/icons-material/AddCircleOutline'; +import {useNavigate} from "react-router"; + // ==============================|| DASHBOARD - DEFAULT ||============================== // const UserSearchForm = ({applySearch}) => { + const navigate = useNavigate(); const [type, setType] = useState([]); const [locked, setLocked] = useState(false); @@ -51,9 +54,10 @@ const UserSearchForm = ({applySearch}) => { reset(); } - // const handleNewUserClick = (id) => () => { - // navigate('/user/'+ id); - // }; + const handleNewUserClick = (id) => { + // console.log(id) + navigate('/user/'+ id); + }; return ( { {/*last row*/} - - - - - - - - - {/* - - - */} - {/* + + + - */} + + + + + + + + + + + + diff --git a/src/pages/pnspsUserSearchPage/index.js b/src/pages/pnspsUserSearchPage/index.js index 73104fe..9b1d127 100644 --- a/src/pages/pnspsUserSearchPage/index.js +++ b/src/pages/pnspsUserSearchPage/index.js @@ -1,6 +1,9 @@ // material-ui import { - Grid, Typography + Grid, + Typography, + Stack, + // Button } from '@mui/material'; import MainCard from "../../components/MainCard"; import {useEffect, useState} from "react"; @@ -8,9 +11,6 @@ import axios from "axios"; import {GLD_USER_PATH} from "../../utils/ApiPathConst"; import * as React from "react"; -// import LoadingComponent from "../extra-pages/LoadingComponent"; -// import SearchForm from "./UserSearchForm"; -// import EventTable from "./UserTable"; import Loadable from 'components/Loadable'; import { lazy } from 'react'; const LoadingComponent = Loadable(lazy(() => import('../extra-pages/LoadingComponent'))); @@ -20,7 +20,6 @@ const EventTable = Loadable(lazy(() => import('./UserTable'))); // ==============================|| DASHBOARD - DEFAULT ||============================== // const UserSettingPage = () => { - const [record,setRecord] = useState([]); const [searchCriteria, setSearchCriteria] = useState({}); const [onReady, setOnReady] = useState(false); @@ -61,10 +60,16 @@ const UserSettingPage = () => { !onReady ? : - - - View User - + + + + + + View User + + + + {/*row 1*/}