Merge branch 'master' of http://118.219.150.34:50501/DBNT/kcscDev into thkim

thkim
thkim 2024-01-25 14:04:51 +09:00
commit 081f34f883
7 changed files with 21 additions and 81 deletions

View File

@ -11,13 +11,13 @@ function CheckBox({name, grpCd, selectedValue}){
}, []);
useEffect(() => {
if(selectedValue){
if(checkBox&&selectedValue){
const itemCdAry = selectedValue.split(',');
itemCdAry.forEach(function(itemCd){
document.querySelector(`#chkBox_${itemCd}`).checked = true;
})
}
}, [selectedValue]);
}, [checkBox]);
function getCodeItemList() {
EgovNet.requestFetch(

View File

@ -10,6 +10,7 @@ function SelectOption({name, grpCd, selectedValue}){
useEffect(() => {
getCodeItemList()
}, []);
useEffect(() => {
setValue(selectedValue)
}, [selectedValue]);

View File

@ -20,7 +20,6 @@ function List({}) {
});
const [listTag, setListTag] = useState([]);
const [userSeOption, setUserSeOption] = useState([]);
const [paginationInfo, setPaginationInfo] = useState({});
@ -40,32 +39,24 @@ function List({}) {
(resp) => {
setPaginationInfo(resp.result.paginationInfo);
let mutListTag = [];
let userSeTag = [];
setListTag([]);
setUserSeOption([]);
//
resp.result.userList.forEach(function (item, index) {
mutListTag.push(
<div className={"list_item"} key={"userListDiv_"+index}>
<div>{item.userSe}</div>
<div><a href={"#"} onClick={()=>{userInfoModal(item.userSeq)}}>{item.userId}</a></div>
<div><a href={"#"} onClick={()=>{userInfoModal(item)}}>{item.userId}</a></div>
<div>{item.userNm}</div>
<div>{item.email}</div>
<div>{item.phoneNum}</div>
<div>{item.status}</div>
<div>{item.statusValue}</div>
<div><button className={"btn btn_red_h31 px-1"} onClick={()=>{removeUserInfo(item.userSeq)}}>삭제</button></div>
</div>
);
});
if(!mutListTag.length) mutListTag.push(<p className="no_data" key="0">검색된 결과가 없습니다.</p>); //
resp.result.userSeOption.forEach(function (item, index){
userSeTag.push(<option value={item.itemCd}>{item.itemNm}</option>)
})
setListTag(mutListTag);
setUserSeOption(userSeTag);
},
function (resp) {
console.log("err response : ", resp);
@ -85,9 +76,9 @@ function List({}) {
setSearchCondition({...searchCondition, pageIndex: passedPage})
});
function userInfoModal(userSeq){
function userInfoModal(userInfo){
handleShow()
setModalBody(<UserInfoModal userSeq={userSeq} reloadFunction={retrieveList}></UserInfoModal>)
setModalBody(<UserInfoModal savedInfo={userInfo} reloadFunction={retrieveList}></UserInfoModal>)
}
const removeUserInfo = useCallback((seq)=>{
@ -137,16 +128,6 @@ function List({}) {
{/* <!-- 검색조건 --> */}
<div className="condition">
<ul>
<li className="third_1 L">
<label className="f_select" htmlFor="sel1">
<select id="sel1" title="구분" defaultValue={searchCondition.userSe}
onChange={(e) => {setSearchCondition({...searchCondition, userSe: e.target.value})}}>
<option value="">전체</option>
{userSeOption}
</select>
</label>
</li>
<li className="third_1 L">
<label className="f_select" htmlFor="sel1">
<select id="sel1" title="조건" defaultValue={searchCondition.searchCondition}
@ -170,7 +151,6 @@ function List({}) {
<div className="board_list userList">
<div className="head">
<span>구분</span>
<span>아이디</span>
<span>이름</span>
<span>이메일</span>

View File

@ -9,38 +9,8 @@ import SelectOption from "components/commonCode/SelectOption";
import CheckBox from "components/commonCode/CheckBox";
import CODE from "../../../constants/code";
function UserInfoModal({userSeq, reloadFunction}){
const [userInfo, setUserInfo] = useState({ userSeq: '', userId: '', password: '', passwordChk: '', userNm: '', email: '', phoneNum: '', userSe:'', userRole:'', status:''});
function getModalContent(){
EgovNet.requestFetch(
'/admin/users/info?userSeq='+userSeq,
{
method: "GET"
},
(resp) => {
const respInfo = resp.result.userInfo;
const info = {
userSeq: respInfo.userSeq,
userId: respInfo.userId,
userNm: respInfo.userNm,
email: respInfo.email,
phoneNum: respInfo.phoneNum,
password: "",
passwordChk: "",
userSe: respInfo.userSe,
userRole: respInfo.userRole,
status: respInfo.status
}
setUserInfo(info);
},
(resp) => {
console.log("err response : ", resp);
}
);
}
function UserInfoModal({savedInfo, reloadFunction}){
function userInfoChange(e){
e.preventDefault();
e.stopPropagation();
@ -53,7 +23,6 @@ function UserInfoModal({userSeq, reloadFunction}){
userNm: form.userNm.value,
email: form.email.value,
phoneNum: form.phoneNum.value,
userSe: form.userSe.value,
userRole: '',
status: form.status.value,
}
@ -88,26 +57,22 @@ function UserInfoModal({userSeq, reloadFunction}){
)
}
useEffect(() => {
getModalContent();
}, []);
return (
<>
<Modal.Header closeButton>
<Modal.Title>
{userInfo.userNm} 상세정보
{savedInfo?.userNm} 상세정보
</Modal.Title>
</Modal.Header>
<Modal.Body>
<Form onSubmit={(e) =>{userInfoChange(e)}} noValidate>
<input type={"hidden"} name={"userSeq"} defaultValue={userInfo.userSeq} />
<input type={"hidden"} name={"userSeq"} defaultValue={savedInfo?.userSeq} />
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
아이디
</Form.Label>
<Col sm={9}>
<Form.Control type="text" name="userId" placeholder="아이디" required defaultValue={userInfo?.userId} readOnly/>
<Form.Control type="text" name="userId" placeholder="아이디" required defaultValue={savedInfo?.userId} readOnly/>
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
@ -131,7 +96,7 @@ function UserInfoModal({userSeq, reloadFunction}){
이름
</Form.Label>
<Col sm={9}>
<Form.Control type="text" name="userNm" placeholder="이름" required defaultValue={userInfo?.userNm} />
<Form.Control type="text" name="userNm" placeholder="이름" required defaultValue={savedInfo?.userNm} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
@ -139,7 +104,7 @@ function UserInfoModal({userSeq, reloadFunction}){
이메일
</Form.Label>
<Col sm={9}>
<Form.Control type="email" name="email" placeholder="email" required defaultValue={userInfo?.email} />
<Form.Control type="email" name="email" placeholder="email" required defaultValue={savedInfo?.email} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
@ -147,15 +112,7 @@ function UserInfoModal({userSeq, reloadFunction}){
연락처
</Form.Label>
<Col sm={9}>
<Form.Control type="text" name="phoneNum" placeholder="연락처" required defaultValue={userInfo?.phoneNum} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
<Form.Label column sm={3}>
사용자 유형
</Form.Label>
<Col sm={9}>
<SelectOption name={"userSe"} grpCd={"ACC_TYPE"} selectedValue={userInfo?.userSe} />
<Form.Control type="text" name="phoneNum" placeholder="연락처" required defaultValue={savedInfo?.phoneNum} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
@ -163,7 +120,7 @@ function UserInfoModal({userSeq, reloadFunction}){
사용자 권한
</Form.Label>
<Col sm={9}>
<CheckBox name={"userRole"} grpCd={"ROLE"} selectedValue={userInfo?.userRole} />
<CheckBox name={"userRole"} grpCd={"ROLE"} selectedValue={savedInfo?.userRole} />
</Col>
</Form.Group>
<Form.Group as={Row} className="mb-3">
@ -171,7 +128,7 @@ function UserInfoModal({userSeq, reloadFunction}){
상태
</Form.Label>
<Col sm={9}>
<SelectOption name={"status"} grpCd={"ACC_STUS"} selectedValue={userInfo?.status} />
<SelectOption name={"status"} grpCd={"ACC_STUS"} selectedValue={savedInfo?.status} />
</Col>
</Form.Group>
<Row className="mb-3">

View File

@ -50,7 +50,6 @@ public class AdminUsersService extends EgovAbstractServiceImpl {
}
savedInfo.setEmail(info.getEmail());
savedInfo.setPhoneNum(info.getPhoneNum());
savedInfo.setUserSe(info.getUserSe());
savedInfo.setUserRole(info.getUserRole());
savedInfo.setStatus(info.getStatus());
savedInfo.setLastChgId(updateUser);

View File

@ -70,6 +70,8 @@ public class UserInfo extends BoardParams implements UserDetails{
@Transient
private String passwordChk;
@Transient
private String statusValue;
@Override
@JsonIgnore

View File

@ -11,7 +11,8 @@
a.user_nm,
a.phone_num,
a.user_role,
c.item_nm as status
a.status,
c.item_nm as status_value
from user_info a
inner join tc_code_item b on a.user_se = b.item_cd
inner join tc_code_item c on a.status = c.item_cd