Merge branch 'master' of http://118.219.150.34:50501/DBNT/kcscDev into thkim
commit
081f34f883
|
|
@ -11,13 +11,13 @@ function CheckBox({name, grpCd, selectedValue}){
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
if(selectedValue){
|
if(checkBox&&selectedValue){
|
||||||
const itemCdAry = selectedValue.split(',');
|
const itemCdAry = selectedValue.split(',');
|
||||||
itemCdAry.forEach(function(itemCd){
|
itemCdAry.forEach(function(itemCd){
|
||||||
document.querySelector(`#chkBox_${itemCd}`).checked = true;
|
document.querySelector(`#chkBox_${itemCd}`).checked = true;
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
}, [selectedValue]);
|
}, [checkBox]);
|
||||||
|
|
||||||
function getCodeItemList() {
|
function getCodeItemList() {
|
||||||
EgovNet.requestFetch(
|
EgovNet.requestFetch(
|
||||||
|
|
|
||||||
|
|
@ -10,6 +10,7 @@ function SelectOption({name, grpCd, selectedValue}){
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
getCodeItemList()
|
getCodeItemList()
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
setValue(selectedValue)
|
setValue(selectedValue)
|
||||||
}, [selectedValue]);
|
}, [selectedValue]);
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,6 @@ function List({}) {
|
||||||
});
|
});
|
||||||
|
|
||||||
const [listTag, setListTag] = useState([]);
|
const [listTag, setListTag] = useState([]);
|
||||||
const [userSeOption, setUserSeOption] = useState([]);
|
|
||||||
|
|
||||||
const [paginationInfo, setPaginationInfo] = useState({});
|
const [paginationInfo, setPaginationInfo] = useState({});
|
||||||
|
|
||||||
|
|
@ -40,32 +39,24 @@ function List({}) {
|
||||||
(resp) => {
|
(resp) => {
|
||||||
setPaginationInfo(resp.result.paginationInfo);
|
setPaginationInfo(resp.result.paginationInfo);
|
||||||
let mutListTag = [];
|
let mutListTag = [];
|
||||||
let userSeTag = [];
|
|
||||||
|
|
||||||
setListTag([]);
|
setListTag([]);
|
||||||
setUserSeOption([]);
|
|
||||||
// 리스트 항목 구성
|
// 리스트 항목 구성
|
||||||
resp.result.userList.forEach(function (item, index) {
|
resp.result.userList.forEach(function (item, index) {
|
||||||
mutListTag.push(
|
mutListTag.push(
|
||||||
<div className={"list_item"} key={"userListDiv_"+index}>
|
<div className={"list_item"} key={"userListDiv_"+index}>
|
||||||
<div>{item.userSe}</div>
|
<div><a href={"#"} onClick={()=>{userInfoModal(item)}}>{item.userId}</a></div>
|
||||||
<div><a href={"#"} onClick={()=>{userInfoModal(item.userSeq)}}>{item.userId}</a></div>
|
|
||||||
<div>{item.userNm}</div>
|
<div>{item.userNm}</div>
|
||||||
<div>{item.email}</div>
|
<div>{item.email}</div>
|
||||||
<div>{item.phoneNum}</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><button className={"btn btn_red_h31 px-1"} onClick={()=>{removeUserInfo(item.userSeq)}}>삭제</button></div>
|
||||||
</div>
|
</div>
|
||||||
);
|
);
|
||||||
});
|
});
|
||||||
if(!mutListTag.length) mutListTag.push(<p className="no_data" key="0">검색된 결과가 없습니다.</p>); // 게시판 목록 초기값
|
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);
|
setListTag(mutListTag);
|
||||||
setUserSeOption(userSeTag);
|
|
||||||
},
|
},
|
||||||
function (resp) {
|
function (resp) {
|
||||||
console.log("err response : ", resp);
|
console.log("err response : ", resp);
|
||||||
|
|
@ -85,9 +76,9 @@ function List({}) {
|
||||||
setSearchCondition({...searchCondition, pageIndex: passedPage})
|
setSearchCondition({...searchCondition, pageIndex: passedPage})
|
||||||
});
|
});
|
||||||
|
|
||||||
function userInfoModal(userSeq){
|
function userInfoModal(userInfo){
|
||||||
handleShow()
|
handleShow()
|
||||||
setModalBody(<UserInfoModal userSeq={userSeq} reloadFunction={retrieveList}></UserInfoModal>)
|
setModalBody(<UserInfoModal savedInfo={userInfo} reloadFunction={retrieveList}></UserInfoModal>)
|
||||||
}
|
}
|
||||||
|
|
||||||
const removeUserInfo = useCallback((seq)=>{
|
const removeUserInfo = useCallback((seq)=>{
|
||||||
|
|
@ -137,16 +128,6 @@ function List({}) {
|
||||||
{/* <!-- 검색조건 --> */}
|
{/* <!-- 검색조건 --> */}
|
||||||
<div className="condition">
|
<div className="condition">
|
||||||
<ul>
|
<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">
|
<li className="third_1 L">
|
||||||
<label className="f_select" htmlFor="sel1">
|
<label className="f_select" htmlFor="sel1">
|
||||||
<select id="sel1" title="조건" defaultValue={searchCondition.searchCondition}
|
<select id="sel1" title="조건" defaultValue={searchCondition.searchCondition}
|
||||||
|
|
@ -170,7 +151,6 @@ function List({}) {
|
||||||
|
|
||||||
<div className="board_list userList">
|
<div className="board_list userList">
|
||||||
<div className="head">
|
<div className="head">
|
||||||
<span>구분</span>
|
|
||||||
<span>아이디</span>
|
<span>아이디</span>
|
||||||
<span>이름</span>
|
<span>이름</span>
|
||||||
<span>이메일</span>
|
<span>이메일</span>
|
||||||
|
|
|
||||||
|
|
@ -9,38 +9,8 @@ import SelectOption from "components/commonCode/SelectOption";
|
||||||
import CheckBox from "components/commonCode/CheckBox";
|
import CheckBox from "components/commonCode/CheckBox";
|
||||||
import CODE from "../../../constants/code";
|
import CODE from "../../../constants/code";
|
||||||
|
|
||||||
function UserInfoModal({userSeq, reloadFunction}){
|
function UserInfoModal({savedInfo, 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 userInfoChange(e){
|
function userInfoChange(e){
|
||||||
e.preventDefault();
|
e.preventDefault();
|
||||||
e.stopPropagation();
|
e.stopPropagation();
|
||||||
|
|
@ -53,7 +23,6 @@ function UserInfoModal({userSeq, reloadFunction}){
|
||||||
userNm: form.userNm.value,
|
userNm: form.userNm.value,
|
||||||
email: form.email.value,
|
email: form.email.value,
|
||||||
phoneNum: form.phoneNum.value,
|
phoneNum: form.phoneNum.value,
|
||||||
userSe: form.userSe.value,
|
|
||||||
userRole: '',
|
userRole: '',
|
||||||
status: form.status.value,
|
status: form.status.value,
|
||||||
}
|
}
|
||||||
|
|
@ -88,26 +57,22 @@ function UserInfoModal({userSeq, reloadFunction}){
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
useEffect(() => {
|
|
||||||
getModalContent();
|
|
||||||
}, []);
|
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
<Modal.Header closeButton>
|
<Modal.Header closeButton>
|
||||||
<Modal.Title>
|
<Modal.Title>
|
||||||
{userInfo.userNm} 상세정보
|
{savedInfo?.userNm} 상세정보
|
||||||
</Modal.Title>
|
</Modal.Title>
|
||||||
</Modal.Header>
|
</Modal.Header>
|
||||||
<Modal.Body>
|
<Modal.Body>
|
||||||
<Form onSubmit={(e) =>{userInfoChange(e)}} noValidate>
|
<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.Group as={Row} className="mb-3">
|
||||||
<Form.Label column sm={3}>
|
<Form.Label column sm={3}>
|
||||||
아이디
|
아이디
|
||||||
</Form.Label>
|
</Form.Label>
|
||||||
<Col sm={9}>
|
<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>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
<Form.Group as={Row} className="mb-3">
|
<Form.Group as={Row} className="mb-3">
|
||||||
|
|
@ -131,7 +96,7 @@ function UserInfoModal({userSeq, reloadFunction}){
|
||||||
이름
|
이름
|
||||||
</Form.Label>
|
</Form.Label>
|
||||||
<Col sm={9}>
|
<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>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
<Form.Group as={Row} className="mb-3">
|
<Form.Group as={Row} className="mb-3">
|
||||||
|
|
@ -139,7 +104,7 @@ function UserInfoModal({userSeq, reloadFunction}){
|
||||||
이메일
|
이메일
|
||||||
</Form.Label>
|
</Form.Label>
|
||||||
<Col sm={9}>
|
<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>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
<Form.Group as={Row} className="mb-3">
|
<Form.Group as={Row} className="mb-3">
|
||||||
|
|
@ -147,15 +112,7 @@ function UserInfoModal({userSeq, reloadFunction}){
|
||||||
연락처
|
연락처
|
||||||
</Form.Label>
|
</Form.Label>
|
||||||
<Col sm={9}>
|
<Col sm={9}>
|
||||||
<Form.Control type="text" name="phoneNum" placeholder="연락처" required defaultValue={userInfo?.phoneNum} />
|
<Form.Control type="text" name="phoneNum" placeholder="연락처" required defaultValue={savedInfo?.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} />
|
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
<Form.Group as={Row} className="mb-3">
|
<Form.Group as={Row} className="mb-3">
|
||||||
|
|
@ -163,7 +120,7 @@ function UserInfoModal({userSeq, reloadFunction}){
|
||||||
사용자 권한
|
사용자 권한
|
||||||
</Form.Label>
|
</Form.Label>
|
||||||
<Col sm={9}>
|
<Col sm={9}>
|
||||||
<CheckBox name={"userRole"} grpCd={"ROLE"} selectedValue={userInfo?.userRole} />
|
<CheckBox name={"userRole"} grpCd={"ROLE"} selectedValue={savedInfo?.userRole} />
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
<Form.Group as={Row} className="mb-3">
|
<Form.Group as={Row} className="mb-3">
|
||||||
|
|
@ -171,7 +128,7 @@ function UserInfoModal({userSeq, reloadFunction}){
|
||||||
상태
|
상태
|
||||||
</Form.Label>
|
</Form.Label>
|
||||||
<Col sm={9}>
|
<Col sm={9}>
|
||||||
<SelectOption name={"status"} grpCd={"ACC_STUS"} selectedValue={userInfo?.status} />
|
<SelectOption name={"status"} grpCd={"ACC_STUS"} selectedValue={savedInfo?.status} />
|
||||||
</Col>
|
</Col>
|
||||||
</Form.Group>
|
</Form.Group>
|
||||||
<Row className="mb-3">
|
<Row className="mb-3">
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,6 @@ public class AdminUsersService extends EgovAbstractServiceImpl {
|
||||||
}
|
}
|
||||||
savedInfo.setEmail(info.getEmail());
|
savedInfo.setEmail(info.getEmail());
|
||||||
savedInfo.setPhoneNum(info.getPhoneNum());
|
savedInfo.setPhoneNum(info.getPhoneNum());
|
||||||
savedInfo.setUserSe(info.getUserSe());
|
|
||||||
savedInfo.setUserRole(info.getUserRole());
|
savedInfo.setUserRole(info.getUserRole());
|
||||||
savedInfo.setStatus(info.getStatus());
|
savedInfo.setStatus(info.getStatus());
|
||||||
savedInfo.setLastChgId(updateUser);
|
savedInfo.setLastChgId(updateUser);
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,8 @@ public class UserInfo extends BoardParams implements UserDetails{
|
||||||
|
|
||||||
@Transient
|
@Transient
|
||||||
private String passwordChk;
|
private String passwordChk;
|
||||||
|
@Transient
|
||||||
|
private String statusValue;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@JsonIgnore
|
@JsonIgnore
|
||||||
|
|
|
||||||
|
|
@ -11,7 +11,8 @@
|
||||||
a.user_nm,
|
a.user_nm,
|
||||||
a.phone_num,
|
a.phone_num,
|
||||||
a.user_role,
|
a.user_role,
|
||||||
c.item_nm as status
|
a.status,
|
||||||
|
c.item_nm as status_value
|
||||||
from user_info a
|
from user_info a
|
||||||
inner join tc_code_item b on a.user_se = b.item_cd
|
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
|
inner join tc_code_item c on a.status = c.item_cd
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue