fix:외사경찰 교육현황 완료
parent
ca2acee2a9
commit
9836412eee
|
|
@ -8,6 +8,7 @@ import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
|
||||||
import com.dbnt.faisp.main.fipTarget.model.PartInfo;
|
import com.dbnt.faisp.main.fipTarget.model.PartInfo;
|
||||||
import com.dbnt.faisp.main.fipTarget.model.ShipInfo;
|
import com.dbnt.faisp.main.fipTarget.model.ShipInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
||||||
|
import com.dbnt.faisp.main.userInfo.model.UserEdu;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
||||||
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
|
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
|
||||||
|
|
@ -187,6 +188,7 @@ public class FaispController {
|
||||||
mav.addObject("searchParams", userInfo);
|
mav.addObject("searchParams", userInfo);
|
||||||
return mav;
|
return mav;
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/educationMgt")
|
@GetMapping("/educationMgt")
|
||||||
public ModelAndView educationMgt(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo, HttpServletResponse response){
|
public ModelAndView educationMgt(@AuthenticationPrincipal UserInfo loginUser, UserInfo userInfo, HttpServletResponse response){
|
||||||
ModelAndView mav = new ModelAndView("faisp/educationMgt");
|
ModelAndView mav = new ModelAndView("faisp/educationMgt");
|
||||||
|
|
@ -196,7 +198,7 @@ public class FaispController {
|
||||||
}
|
}
|
||||||
|
|
||||||
//메뉴권한 확인
|
//메뉴권한 확인
|
||||||
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/policeList").get(0).getAccessAuth();
|
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/educationMgt").get(0).getAccessAuth();
|
||||||
mav.addObject("accessAuth", accessAuth);
|
mav.addObject("accessAuth", accessAuth);
|
||||||
userInfo.setQueryInfo();
|
userInfo.setQueryInfo();
|
||||||
mav.addObject("policeList", userInfoService.selectPoliceList(userInfo));
|
mav.addObject("policeList", userInfoService.selectPoliceList(userInfo));
|
||||||
|
|
@ -209,13 +211,31 @@ public class FaispController {
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping("/eduEditModal")
|
@GetMapping("/eduEditModal")
|
||||||
public ModelAndView eduEditModal(@AuthenticationPrincipal UserInfo loginUser,UserInfo userInfo){
|
public ModelAndView eduEditModal(@AuthenticationPrincipal UserInfo loginUser,UserEdu userEdu){
|
||||||
ModelAndView mav = new ModelAndView("/faisp/eduEditModal");
|
ModelAndView mav = new ModelAndView("/faisp/eduEditModal");
|
||||||
//메뉴권한 확인
|
|
||||||
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/policeList").get(0).getAccessAuth();
|
|
||||||
mav.addObject("accessAuth", accessAuth);
|
|
||||||
return mav;
|
|
||||||
|
|
||||||
|
//메뉴권한 확인
|
||||||
|
String accessAuth = authMgtService.selectAccessConfigList(loginUser.getUserSeq(), "/faisp/educationMgt").get(0).getAccessAuth();
|
||||||
|
mav.addObject("accessAuth", accessAuth);
|
||||||
|
mav.addObject("userInfo", userInfoService.selectPoliceInfo(userEdu.getUserSeq()));
|
||||||
|
mav.addObject("eduList", userInfoService.selectEduList(userEdu));
|
||||||
|
mav.addObject("userSeq", loginUser.getUserSeq());
|
||||||
|
return mav;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/saveEdu")
|
||||||
|
@ResponseBody
|
||||||
|
public int saveEdu(@AuthenticationPrincipal UserInfo loginUser,@RequestBody List<UserEdu> userEdu){
|
||||||
|
System.out.println("userEdu"+userEdu);
|
||||||
|
int userSeq = userInfoService.saveEdu(loginUser,userEdu);
|
||||||
|
return userSeq;
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/deleteEdu")
|
||||||
|
@ResponseBody
|
||||||
|
public int deleteEdu(@RequestBody UserEdu userEdu) {
|
||||||
|
int userSeq = userInfoService.deleteEdu(userEdu);
|
||||||
|
return userSeq;
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<PersonnelStatus> calcStatusList(List<PersonnelStatus> statusList) {
|
private List<PersonnelStatus> calcStatusList(List<PersonnelStatus> statusList) {
|
||||||
|
|
|
||||||
|
|
@ -2,6 +2,7 @@ package com.dbnt.faisp.main.userInfo.mapper;
|
||||||
|
|
||||||
import com.dbnt.faisp.main.userInfo.model.DashboardConfig;
|
import com.dbnt.faisp.main.userInfo.model.DashboardConfig;
|
||||||
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
||||||
|
import com.dbnt.faisp.main.userInfo.model.UserEdu;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
||||||
import com.dbnt.faisp.util.ParamMap;
|
import com.dbnt.faisp.util.ParamMap;
|
||||||
|
|
@ -29,4 +30,8 @@ public interface UserInfoMapper {
|
||||||
UserInfoHistory selectpoliceHistoryView(UserInfoHistory userInfoHistory);
|
UserInfoHistory selectpoliceHistoryView(UserInfoHistory userInfoHistory);
|
||||||
|
|
||||||
List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus);
|
List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus);
|
||||||
|
|
||||||
|
UserInfo selectPoliceInfo(Integer userSeq);
|
||||||
|
|
||||||
|
List<UserEdu> selectEduList(UserEdu userEdu);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -59,6 +59,19 @@ public class UserEdu extends BaseModel{
|
||||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||||
private LocalDateTime wrtDt;
|
private LocalDateTime wrtDt;
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String toString() {
|
||||||
|
return "UserEdu [eduSeq=" + eduSeq + ", userSeq=" + userSeq + ", eduName=" + eduName + ", eduSdate=" + eduSdate
|
||||||
|
+ ", eduEdate=" + eduEdate + ", eduRa=" + eduRa + ", wrtOrgan=" + wrtOrgan + ", wrtPart=" + wrtPart
|
||||||
|
+ ", wrtTitle=" + wrtTitle + ", wrtUserSeq=" + wrtUserSeq + ", wrtNm=" + wrtNm + ", wrtDt=" + wrtDt + "]";
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@Embeddable
|
@Embeddable
|
||||||
@Data
|
@Data
|
||||||
@NoArgsConstructor
|
@NoArgsConstructor
|
||||||
|
|
|
||||||
|
|
@ -9,6 +9,8 @@ import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
|
|
||||||
public interface UserEduRepository extends JpaRepository<UserEdu, UserEdu.UserEduId> {
|
public interface UserEduRepository extends JpaRepository<UserEdu, UserEdu.UserEduId> {
|
||||||
|
|
||||||
|
UserEdu findTopByUserSeqOrderByEduSeqDesc(Integer userSeq);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -6,9 +6,12 @@ import com.dbnt.faisp.main.fipTarget.model.ShipInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.mapper.UserInfoMapper;
|
import com.dbnt.faisp.main.userInfo.mapper.UserInfoMapper;
|
||||||
import com.dbnt.faisp.main.userInfo.model.DashboardConfig;
|
import com.dbnt.faisp.main.userInfo.model.DashboardConfig;
|
||||||
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
import com.dbnt.faisp.main.userInfo.model.PersonnelStatus;
|
||||||
|
import com.dbnt.faisp.main.userInfo.model.UserEdu;
|
||||||
|
import com.dbnt.faisp.main.userInfo.model.UserEdu.UserEduId;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||||
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
import com.dbnt.faisp.main.userInfo.model.UserInfoHistory;
|
||||||
import com.dbnt.faisp.main.userInfo.repository.DashboardConfigRepository;
|
import com.dbnt.faisp.main.userInfo.repository.DashboardConfigRepository;
|
||||||
|
import com.dbnt.faisp.main.userInfo.repository.UserEduRepository;
|
||||||
import com.dbnt.faisp.main.userInfo.repository.UserInfoHistoryRepository;
|
import com.dbnt.faisp.main.userInfo.repository.UserInfoHistoryRepository;
|
||||||
import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository;
|
import com.dbnt.faisp.main.userInfo.repository.UserInfoRepository;
|
||||||
import com.dbnt.faisp.util.ParamMap;
|
import com.dbnt.faisp.util.ParamMap;
|
||||||
|
|
@ -33,6 +36,7 @@ public class UserInfoService implements UserDetailsService {
|
||||||
private final UserInfoRepository userInfoRepository;
|
private final UserInfoRepository userInfoRepository;
|
||||||
private final UserInfoHistoryRepository userInfoHistoryRepository;
|
private final UserInfoHistoryRepository userInfoHistoryRepository;
|
||||||
private final DashboardConfigRepository dashboardConfigRepository;
|
private final DashboardConfigRepository dashboardConfigRepository;
|
||||||
|
private final UserEduRepository userEduRepository;
|
||||||
private final UserInfoMapper userInfoMapper;
|
private final UserInfoMapper userInfoMapper;
|
||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
|
|
@ -296,4 +300,47 @@ public class UserInfoService implements UserDetailsService {
|
||||||
public List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus) {
|
public List<PersonnelStatus> selectPersonnelStatusList(PersonnelStatus personnelStatus) {
|
||||||
return userInfoMapper.selectPersonnelStatusList(personnelStatus);
|
return userInfoMapper.selectPersonnelStatusList(personnelStatus);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public UserInfo selectPoliceInfo(Integer userSeq) {
|
||||||
|
return userInfoMapper.selectPoliceInfo(userSeq);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public int saveEdu(@AuthenticationPrincipal UserInfo loginUser,List<UserEdu> userEdu) {
|
||||||
|
int userSeq = 0;
|
||||||
|
for(UserEdu ue : userEdu ) {
|
||||||
|
UserEdu dbEdu = userEduRepository.findTopByUserSeqOrderByEduSeqDesc(ue.getUserSeq());
|
||||||
|
if (dbEdu == null) {
|
||||||
|
ue.setEduSeq(1);
|
||||||
|
ue.setWrtOrgan(loginUser.getOgCd());
|
||||||
|
ue.setWrtPart(loginUser.getOfcCd());
|
||||||
|
ue.setWrtTitle(loginUser.getTitleCd());
|
||||||
|
ue.setWrtUserSeq(loginUser.getUserSeq());
|
||||||
|
ue.setWrtNm(loginUser.getUserNm());
|
||||||
|
ue.setWrtDt(LocalDateTime.now());
|
||||||
|
userEduRepository.save(ue);
|
||||||
|
} else {
|
||||||
|
ue.setEduSeq(dbEdu.getEduSeq()+ 1);
|
||||||
|
ue.setWrtOrgan(loginUser.getOgCd());
|
||||||
|
ue.setWrtPart(loginUser.getOfcCd());
|
||||||
|
ue.setWrtTitle(loginUser.getTitleCd());
|
||||||
|
ue.setWrtUserSeq(loginUser.getUserSeq());
|
||||||
|
ue.setWrtNm(loginUser.getUserNm());
|
||||||
|
ue.setWrtDt(LocalDateTime.now());
|
||||||
|
userEduRepository.save(ue);
|
||||||
|
}
|
||||||
|
userSeq = ue.getUserSeq();
|
||||||
|
}
|
||||||
|
return userSeq;
|
||||||
|
}
|
||||||
|
public List<UserEdu> selectEduList(UserEdu userEdu) {
|
||||||
|
return userInfoMapper.selectEduList(userEdu);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Transactional
|
||||||
|
public int deleteEdu(UserEdu userEdu) {
|
||||||
|
userEduRepository.deleteById(new UserEduId(userEdu.getEduSeq(), userEdu.getUserSeq()));
|
||||||
|
return userEdu.getUserSeq();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -228,4 +228,35 @@
|
||||||
</foreach>
|
</foreach>
|
||||||
order by c.organ_type, c.parent_organ, c.organ_cd
|
order by c.organ_type, c.parent_organ, c.organ_cd
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
<select id="selectPoliceInfo" resultType="UserInfo" parameterType="Integer">
|
||||||
|
select user_seq,
|
||||||
|
user_nm,
|
||||||
|
(select item_value from code_mgt where item_cd = title_cd) as title_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = og_cd) as og_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = ofc_cd) as ofc_cd,
|
||||||
|
(select item_value from code_mgt where item_cd = sex) as sex,
|
||||||
|
birth_date,
|
||||||
|
(select item_value from code_mgt where item_cd = language_cd) as language_cd
|
||||||
|
from user_info
|
||||||
|
where user_seq = #{userSeq}
|
||||||
|
</select>
|
||||||
|
|
||||||
|
<select id="selectEduList" resultType="UserEdu" parameterType="UserEdu">
|
||||||
|
select edu_seq,
|
||||||
|
user_seq,
|
||||||
|
edu_name,
|
||||||
|
edu_sdate,
|
||||||
|
edu_edate,
|
||||||
|
edu_ra,
|
||||||
|
(select item_value from code_mgt where item_cd = wrt_organ) as wrt_organ,
|
||||||
|
(select item_value from code_mgt where item_cd = wrt_part) as wrt_part,
|
||||||
|
(select item_value from code_mgt where item_cd = wrt_title) as wrt_title,
|
||||||
|
wrt_user_seq,
|
||||||
|
wrt_nm,
|
||||||
|
wrt_dt
|
||||||
|
from user_edu
|
||||||
|
where user_seq = #{userSeq}
|
||||||
|
order by edu_seq desc
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|
@ -5,7 +5,7 @@ $(document).on('click', '.policeTr', function (event){
|
||||||
const target = event.target;
|
const target = event.target;
|
||||||
if(!(target.className === "checkBoxTd" ||$(target).parents("td").length>0)){
|
if(!(target.className === "checkBoxTd" ||$(target).parents("td").length>0)){
|
||||||
const userSeq = (Number($(this).find(".userSeq").val()));
|
const userSeq = (Number($(this).find(".userSeq").val()));
|
||||||
showModal(1);
|
showModal(userSeq);
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
@ -45,7 +45,7 @@ $(document).on('click', '#notPoliceTab', function (){
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#eduAddBtn', function (){
|
$(document).on('click', '#eduAddBtn', function (){
|
||||||
const userSeq = (Number(1));
|
const userSeq = (Number($(this).data('userseq')));
|
||||||
$('#insertEdu').append(
|
$('#insertEdu').append(
|
||||||
'<div id="eduDiv">'+
|
'<div id="eduDiv">'+
|
||||||
'<div class="mb-4 row">'+
|
'<div class="mb-4 row">'+
|
||||||
|
|
@ -81,7 +81,7 @@ $(document).on('click', '#eduAddBtn', function (){
|
||||||
format: "yyyy-mm-dd",
|
format: "yyyy-mm-dd",
|
||||||
language: "ko"
|
language: "ko"
|
||||||
});
|
});
|
||||||
eduList.push({useSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""});
|
eduList.push({userSeq:userSeq, eduName:"",eduSdate:"",eduEdate:"",eduRa:""});
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '.rowDeleteBtn', function (){
|
$(document).on('click', '.rowDeleteBtn', function (){
|
||||||
|
|
@ -110,7 +110,56 @@ $(document).on('change', '.eduInput', function (){
|
||||||
})
|
})
|
||||||
|
|
||||||
$(document).on('click', '#saveBtn', function (){
|
$(document).on('click', '#saveBtn', function (){
|
||||||
console.log(eduList);
|
if(eduList.length < 1){
|
||||||
|
alert("새로 입력된 교육정보가 없습니다.");
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
if(confirm("저장하시겠습니까?")){
|
||||||
|
contentFade("in");
|
||||||
|
$.ajax({
|
||||||
|
type : 'POST',
|
||||||
|
data : JSON.stringify(eduList),
|
||||||
|
url : "/faisp/saveEdu",
|
||||||
|
contentType: 'application/json',
|
||||||
|
beforeSend: function (xhr){
|
||||||
|
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||||
|
},
|
||||||
|
success : function(data) {
|
||||||
|
contentFade("out");
|
||||||
|
alert("교육등록이 완료되었습니다.");
|
||||||
|
showModal(data);
|
||||||
|
eduList.length = 0;
|
||||||
|
},
|
||||||
|
error : function(xhr, status) {
|
||||||
|
contentFade("out");
|
||||||
|
alert("교육등록을 실패하였습니다");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
|
})
|
||||||
|
|
||||||
|
$(document).on('click', '#deleteBtn', function (){
|
||||||
|
const eduSeq = (Number($(this).data('eduseq')));
|
||||||
|
const userSeq = (Number($(this).data('userseq')));
|
||||||
|
if(confirm("삭제하시겠습니까?")){
|
||||||
|
$.ajax({
|
||||||
|
type : 'POST',
|
||||||
|
url : "/faisp/deleteEdu",
|
||||||
|
data : JSON.stringify({eduSeq:eduSeq,
|
||||||
|
userSeq:userSeq}),
|
||||||
|
contentType: 'application/json',
|
||||||
|
beforeSend: function (xhr){
|
||||||
|
xhr.setRequestHeader($("[name='_csrf_header']").val(), $("[name='_csrf']").val());
|
||||||
|
},
|
||||||
|
success : function(data) {
|
||||||
|
alert("삭제 처리되었습니다.");
|
||||||
|
showModal(data);
|
||||||
|
},
|
||||||
|
error : function(xhr, status) {
|
||||||
|
alert("삭제 처리에 실패하였습니다");
|
||||||
|
}
|
||||||
|
})
|
||||||
|
}
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1,42 +1,42 @@
|
||||||
<!DOCTYPE html>
|
<!DOCTYPE html>
|
||||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||||
<div class="modal-header">
|
<div class="modal-header">
|
||||||
<h5 class="modal-title" th:text="${userInfo.userStatus eq 'USC003' ? '現 외사경찰 상세' : userInfo.userStatus eq 'USC006' ? '前 외사경찰 상세' : userInfo.userStatus eq 'USC007' ? '非 외사경찰 상세' : null}"></h5>
|
<h5 class="modal-title">외사경찰 교육 등록</h5>
|
||||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||||
</div>
|
</div>
|
||||||
<div class="modal-body">
|
<div class="modal-body">
|
||||||
<div class="mb-3 mt-3 row">
|
<div class="mb-3 mt-3 row">
|
||||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center">직급</label>
|
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center">직급</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" >
|
<input type="text" class="form-control form-control-sm" th:value="${userInfo.titleCd}" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">생년월일</label>
|
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">생년월일</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off" readonly>
|
<input type="text" class="form-control form-control-sm" th:value="${userInfo.birthDate}" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">성명</label>
|
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">성명</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="tel" class="form-control form-control-sm" id="phoneNo" name="phoneNo" >
|
<input type="tel" class="form-control form-control-sm" th:value="|${userInfo.ogCd} ${userInfo.ofcCd} ${userInfo.userNm}|" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
|
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
|
||||||
<div class="col-sm-4">
|
<div class="col-sm-4">
|
||||||
<input type="email" class="form-control form-control-sm" id="email" name="email" >
|
<input type="email" class="form-control form-control-sm" th:value="${userInfo.sex}" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">학력사항</label>
|
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">학력사항</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="email" class="form-control form-control-sm" id="email" name="email" >
|
<input type="email" class="form-control form-control-sm" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="sex" class="col-sm-1 col-form-label col-form-label-sm text-center">학교</label>
|
<label for="sex" class="col-sm-1 col-form-label col-form-label-sm text-center">학교</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="email" class="form-control form-control-sm" id="email" name="email" >
|
<input type="email" class="form-control form-control-sm" readonly>
|
||||||
</div>
|
</div>
|
||||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어</label>
|
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어</label>
|
||||||
<div class="col-sm-2">
|
<div class="col-sm-2">
|
||||||
<input type="email" class="form-control form-control-sm" id="email" name="email" >
|
<input type="email" class="form-control form-control-sm" th:value="${userInfo.languageCd}" readonly>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="mb-3 row">
|
<div class="mb-3 row">
|
||||||
|
|
@ -46,7 +46,7 @@
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<div class="card">
|
<div class="card">
|
||||||
<div class="card-body">
|
<div class="card-body text-center">
|
||||||
<div class="row">
|
<div class="row">
|
||||||
<table class="table table-striped" id="categoryTable">
|
<table class="table table-striped" id="categoryTable">
|
||||||
<thead>
|
<thead>
|
||||||
|
|
@ -58,18 +58,20 @@
|
||||||
</tr>
|
</tr>
|
||||||
</thead>
|
</thead>
|
||||||
<tbody class="overflow-scroll">
|
<tbody class="overflow-scroll">
|
||||||
<tr class="historyInfoTr">
|
<tr th:each="list:${eduList}">
|
||||||
<td></td>
|
<td th:text="${list.eduName}"></td>
|
||||||
<td></td>
|
<td th:text="|${list.eduSdate}~${list.eduEdate}|"></td>
|
||||||
<td></td>
|
<td th:text="${list.eduRa}"></td>
|
||||||
<td></td>
|
<td>
|
||||||
|
<button type="button" class="btn btn-sm btn-danger" id="deleteBtn" th:data-eduseq="${list.eduSeq}" th:data-userseq="${list.userSeq}" th:if="${accessAuth eq 'ACC003'} or ${list.wrtUserSeq eq userSeq}">삭제</button>
|
||||||
|
</td>
|
||||||
</tr>
|
</tr>
|
||||||
</tbody>
|
</tbody>
|
||||||
</table>
|
</table>
|
||||||
|
|
||||||
<div id="insertEdu">
|
<div id="insertEdu">
|
||||||
<div class="row justify-content-center">
|
<div class="row justify-content-center">
|
||||||
<button class="btn btn-sm btn-outline-primary col-auto" id="eduAddBtn"><i class="bi bi-plus-lg"></i></button>
|
<button class="btn btn-sm btn-outline-primary col-auto" th:data-userseq="${userInfo.userSeq}" id="eduAddBtn"><i class="bi bi-plus-lg"></i></button>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -43,9 +43,6 @@
|
||||||
</th:block>
|
</th:block>
|
||||||
</select>
|
</select>
|
||||||
</div>
|
</div>
|
||||||
<div class="col-auto">
|
|
||||||
<button type="button" class="btn btn-success" id="goExcel">엑셀다운</button>
|
|
||||||
</div>
|
|
||||||
</div>
|
</div>
|
||||||
<div class="row justify-content-end pe-3 py-1">
|
<div class="row justify-content-end pe-3 py-1">
|
||||||
<div class="col-auto">
|
<div class="col-auto">
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue