회원가입시 인사시스템 연동정보 호출 기능 추가. 회원가입 양식 변경 등.
parent
7aabcae1b1
commit
d38469999c
|
|
@ -37,18 +37,12 @@ public class BaseController {
|
|||
@GetMapping("/login")
|
||||
public ModelAndView goLogin() {
|
||||
ModelAndView mav = new ModelAndView("login/login");
|
||||
mav.addObject("OgList", codeMgtService.selectCodeMgtList("OG"));
|
||||
mav.addObject("OfcList", codeMgtService.selectCodeMgtList("OFC"));
|
||||
mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT"));
|
||||
return mav;
|
||||
}
|
||||
|
||||
@GetMapping("/login-error")
|
||||
public ModelAndView loginError() {
|
||||
ModelAndView mav = new ModelAndView("login/login");
|
||||
mav.addObject("OgList", codeMgtService.selectCodeMgtList("OG"));
|
||||
mav.addObject("OfcList", codeMgtService.selectCodeMgtList("OFC"));
|
||||
mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT"));
|
||||
mav.addObject("loginError", true);
|
||||
return mav;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,20 +2,47 @@ package com.dbnt.faisp.kwms;
|
|||
|
||||
import com.dbnt.faisp.kwms.model.VEmployee;
|
||||
import com.dbnt.faisp.kwms.service.KwmsService;
|
||||
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
|
||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||
import com.dbnt.faisp.main.userInfo.service.UserInfoService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.web.bind.annotation.GetMapping;
|
||||
import org.springframework.web.bind.annotation.RequestMapping;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
import org.springframework.web.servlet.ModelAndView;
|
||||
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
@RequestMapping("/kwms")
|
||||
public class KwmsController {
|
||||
private final KwmsService kwmsService;
|
||||
private final UserInfoService userInfoService;
|
||||
private final CodeMgtService codeMgtService;
|
||||
|
||||
@GetMapping("/getEmpInfo")
|
||||
public UserInfo getEmpInfo(VEmployee empInfo){
|
||||
return kwmsService.selectEmpInfo(empInfo.getDicCode());
|
||||
public ModelAndView getEmpInfo(VEmployee empInfo) throws Exception {
|
||||
ModelAndView mav = new ModelAndView("login/joinForm");
|
||||
if(userInfoService.selectUserInfoToDicCode(empInfo.getDicCode()) == null){
|
||||
UserInfo userInfo = kwmsService.selectEmpInfo(empInfo.getDicCode());
|
||||
if(userInfo==null){
|
||||
mav.addObject("joinFlag", "F");
|
||||
mav.addObject("userInfo", empInfo);
|
||||
mav.addObject("msg", "검색 결과가 없습니다.");
|
||||
}else{
|
||||
mav.addObject("joinFlag", "T");
|
||||
mav.addObject("userInfo", userInfo);
|
||||
mav.addObject("ogList", codeMgtService.selectCodeMgtList("OG"));
|
||||
mav.addObject("ofcList", codeMgtService.selectCodeMgtList("OFC"));
|
||||
mav.addObject("titleList", codeMgtService.selectCodeMgtList("JT"));
|
||||
mav.addObject("outturnList", codeMgtService.selectCodeMgtList("OTC"));
|
||||
mav.addObject("seriesList", codeMgtService.selectCodeMgtList("SRC"));
|
||||
mav.addObject("languageList", codeMgtService.selectCodeMgtList("LNG"));
|
||||
}
|
||||
}else{
|
||||
mav.addObject("joinFlag", "F");
|
||||
mav.addObject("userInfo", empInfo);
|
||||
mav.addObject("msg", "이미 가입된 식별번호입니다.");
|
||||
}
|
||||
return mav;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -2,13 +2,14 @@ package com.dbnt.faisp.kwms.service;
|
|||
|
||||
import com.dbnt.faisp.kwms.model.VEmployee;
|
||||
import com.dbnt.faisp.kwms.repository.VEmployeeRepository;
|
||||
import com.dbnt.faisp.main.codeMgt.model.CodeMgt;
|
||||
import com.dbnt.faisp.main.codeMgt.service.CodeMgtService;
|
||||
import com.dbnt.faisp.main.userInfo.model.UserInfo;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.time.LocalDate;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
|
||||
@Service
|
||||
@RequiredArgsConstructor
|
||||
|
|
@ -16,9 +17,13 @@ public class KwmsService {
|
|||
private final VEmployeeRepository vEmployeeRepository;
|
||||
private final CodeMgtService codeMgtService;
|
||||
|
||||
public UserInfo selectEmpInfo(String dicCode) {
|
||||
public UserInfo selectEmpInfo(String dicCode){
|
||||
VEmployee empInfo = vEmployeeRepository.findByDicCode(dicCode).orElse(null);
|
||||
return convertVEmployeeToUserInfo(empInfo);
|
||||
if(empInfo==null){
|
||||
return null;
|
||||
}else{
|
||||
return convertVEmployeeToUserInfo(empInfo);
|
||||
}
|
||||
}
|
||||
|
||||
private UserInfo convertVEmployeeToUserInfo(VEmployee empInfo){
|
||||
|
|
@ -35,6 +40,12 @@ public class KwmsService {
|
|||
userInfo.setOutturnCd(codeMgtService.searchCode("OTC", empInfo.getGyunggwa()));
|
||||
userInfo.setSeriesCd(codeMgtService.searchCode("SRC", empInfo.getJikbyul()));
|
||||
|
||||
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyyMMdd");
|
||||
empInfo.setBirthDate(
|
||||
(Integer.parseInt(empInfo.getBirthDate().substring(0,2))>60?"19":"20")+empInfo.getBirthDate());
|
||||
userInfo.setBirthDate(LocalDate.parse(empInfo.getBirthDate(), formatter));
|
||||
userInfo.setPoliceInDate(LocalDate.parse(empInfo.getPoliceBmngIl(), formatter));
|
||||
userInfo.setTitleInDate(LocalDate.parse(empInfo.getHnJikgeupImyngil(), formatter));
|
||||
return userInfo;
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -8,6 +8,7 @@ import lombok.NoArgsConstructor;
|
|||
import lombok.Setter;
|
||||
import org.hibernate.annotations.DynamicInsert;
|
||||
import org.hibernate.annotations.DynamicUpdate;
|
||||
import org.springframework.format.annotation.DateTimeFormat;
|
||||
import org.springframework.security.core.GrantedAuthority;
|
||||
import org.springframework.security.core.authority.SimpleGrantedAuthority;
|
||||
import org.springframework.security.core.userdetails.UserDetails;
|
||||
|
|
@ -41,6 +42,7 @@ public class UserInfo extends BaseModel implements UserDetails{
|
|||
@Column(name = "user_nm")
|
||||
private String userNm;
|
||||
@Column(name = "birth_date")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate birthDate;
|
||||
@Column(name = "sex")
|
||||
private String sex;
|
||||
|
|
@ -65,6 +67,7 @@ public class UserInfo extends BaseModel implements UserDetails{
|
|||
@Column(name = "title_cd")
|
||||
private String titleCd;
|
||||
@Column(name = "wrt_dt")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm")
|
||||
private LocalDateTime wrtDt;
|
||||
@Column(name = "group_cd")
|
||||
private String groupCd;
|
||||
|
|
@ -85,12 +88,16 @@ public class UserInfo extends BaseModel implements UserDetails{
|
|||
@Column(name = "language_cd")
|
||||
private String languageCd;
|
||||
@Column(name = "police_in_date")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate policeInDate;
|
||||
@Column(name = "organ_in_date")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate organInDate;
|
||||
@Column(name = "ofc_in_date")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate ofcInDate;
|
||||
@Column(name = "title_in_date")
|
||||
@DateTimeFormat(pattern = "yyyy-MM-dd")
|
||||
private LocalDate titleInDate;
|
||||
|
||||
@Transient
|
||||
|
|
|
|||
|
|
@ -7,8 +7,9 @@ import java.util.Optional;
|
|||
|
||||
|
||||
public interface UserInfoRepository extends JpaRepository<UserInfo, Integer> {
|
||||
Optional<UserInfo> findByUserId(String userId);
|
||||
Optional<UserInfo> findByUserId(String userId);
|
||||
|
||||
Optional<UserInfo> findByUserSeq(Integer userSeq);
|
||||
Optional<UserInfo> findByUserSeq(Integer userSeq);
|
||||
|
||||
Optional<UserInfo> findByDicCode(String dicCode);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -77,6 +77,10 @@ public class UserInfoService implements UserDetailsService {
|
|||
return userInfoRepository.findByUserSeq(userSeq).orElse(null);
|
||||
}
|
||||
|
||||
public UserInfo selectUserInfoToDicCode(String dicCode){
|
||||
return userInfoRepository.findByDicCode(dicCode).orElse(null);
|
||||
}
|
||||
|
||||
@Transactional
|
||||
public int updateUserApproval(List<UserInfo> userInfo) {
|
||||
int cnt = 0;
|
||||
|
|
|
|||
|
|
@ -36,10 +36,11 @@
|
|||
email,
|
||||
og_cd,
|
||||
ofc_cd,
|
||||
title_cd,
|
||||
wrt_dt
|
||||
from user_info
|
||||
<include refid="selectUserInfoWhere"></include>
|
||||
order by og_cd, ofc_cd desc
|
||||
order by og_cd, ofc_cd, title_cd desc
|
||||
limit #{rowCnt} offset #{firstIndex}
|
||||
</select>
|
||||
|
||||
|
|
|
|||
|
|
@ -1,17 +1,20 @@
|
|||
$(document).on('change', '#dicCode', function (){
|
||||
if(this.value!==''){
|
||||
$(document).on('click', '#dicCodeSearchBtn', function (){
|
||||
const dicCode = $("#dicCode").val();
|
||||
if(dicCode!==''){
|
||||
$.ajax({
|
||||
url: '/kwms/getEmpInfo',
|
||||
data: {dicCode: this.value},
|
||||
data: {dicCode: dicCode},
|
||||
type: 'GET',
|
||||
dataType:"json",
|
||||
success: function(data){
|
||||
debugger
|
||||
dataType:"html",
|
||||
success: function(html){
|
||||
$("#userInsertModalContent").empty().append(html)
|
||||
},
|
||||
error:function(){
|
||||
|
||||
error:function(e){
|
||||
debugger
|
||||
}
|
||||
});
|
||||
}else{
|
||||
alert("공무원식별번호를 입력해주세요.")
|
||||
}
|
||||
})
|
||||
|
||||
|
|
@ -51,8 +54,9 @@ function valueCheck(){
|
|||
const password = targetForm.find("#modalPassword");
|
||||
const passwordConfirm = targetForm.find("#passwordConfirm");
|
||||
const userNm = targetForm.find("#userNm").val();
|
||||
const phoneNo = targetForm.find("#phoneNo").val();
|
||||
const email = targetForm.find("#email").val();
|
||||
const ogCd = targetForm.find("#ogCd").val();
|
||||
const ofcCd = targetForm.find("#ofcCd").val();
|
||||
const titleCd = targetForm.find("#titleCd").val();
|
||||
let returnFlag = true;
|
||||
|
||||
|
|
@ -75,7 +79,15 @@ function valueCheck(){
|
|||
returnFlag = false;
|
||||
}
|
||||
if(!userNm){
|
||||
alert("이름 입력해주세요.");
|
||||
alert("이름을 입력해주세요.");
|
||||
returnFlag = false;
|
||||
}
|
||||
if(!phoneNo){
|
||||
alert("휴대전화를 입력해주세요.");
|
||||
returnFlag = false;
|
||||
}
|
||||
if(!email){
|
||||
alert("이메일을 입력해주세요.");
|
||||
returnFlag = false;
|
||||
}
|
||||
if(returnFlag){
|
||||
|
|
@ -96,10 +108,6 @@ function valueCheck(){
|
|||
alert("관서를 선택해주세요.");
|
||||
returnFlag = false;
|
||||
}
|
||||
if(!ofcCd){
|
||||
alert("부서를 선택해주세요.");
|
||||
returnFlag = false;
|
||||
}
|
||||
if(!titleCd){
|
||||
alert("계급을 선택해주세요.");
|
||||
returnFlag = false;
|
||||
|
|
|
|||
|
|
@ -96,17 +96,36 @@
|
|||
<td>
|
||||
<input type="checkbox" id="userChk" name="userChk" class="userInfoCheckBox" th:value="${userInfo.userSeq}">
|
||||
</td>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.ogCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
<th:block th:if="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.ogCd eq null or userInfo.ogCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OG')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.ogCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.ofcCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
<th:block th:if="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.ofcCd eq null or userInfo.ofcCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('OFC')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.ofcCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<th:block th:if="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
|
||||
<td></td>
|
||||
</th:block>
|
||||
<th:block th:unless="${userInfo.titleCd eq null or userInfo.titleCd eq ''}">
|
||||
<th:block th:each="commonCode:${session.commonCode.get('JT')}">
|
||||
<th:block th:if="${commonCode.itemCd == userInfo.titleCd}">
|
||||
<td th:text="${commonCode.itemValue}"></td>
|
||||
</th:block>
|
||||
</th:block>
|
||||
</th:block>
|
||||
<td></td>
|
||||
<td th:text="${userInfo.userNm}"></td>
|
||||
<td th:text="${userInfo.userId}"></td>
|
||||
<td th:text="${#temporals.format(userInfo.wrtDt, 'yyyy-MM-dd HH:mm:ss')}"></td>
|
||||
|
|
|
|||
|
|
@ -0,0 +1,161 @@
|
|||
<!DOCTYPE html>
|
||||
<html lang="ko" xmlns:th="http://www.thymeleaf.org">
|
||||
<div class="modal-content " id="userInsertModalContent">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="userInsertModalLabel">사용자 신청</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body" th:if="${joinFlag eq 'F'}">
|
||||
<div class="mb-3 mt-3 row">
|
||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" th:value="${userInfo.dicCode}">
|
||||
<label for="dicCode" style="font-size: 12px" th:text="${msg}"></label>
|
||||
</div>
|
||||
<button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="modal-body" th:if="${joinFlag eq 'T'}">
|
||||
<form id="userInfoInsert" action="#" th:action="@{/admin/insertUserInfo}" method="post">
|
||||
<div class="mb-3 mt-3 row">
|
||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off" th:value="${userInfo.dicCode}">
|
||||
</div>
|
||||
<button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">아이디</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off">
|
||||
<label for="userId" style="font-size: 12px">6~20자 사이의 알파벳, 숫자를 입력하세요</label>
|
||||
</div>
|
||||
<label for="userNm" class="col-sm-2 col-form-label col-form-label-sm text-center">이름</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class=" form-control form-control-sm" id="userNm" name="userNm" autocomplete="off" th:value="${userInfo.userNm}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="modalPassword" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" class="form-control form-control-sm" id="modalPassword" name="password" >
|
||||
<label for="userId" style="font-size: 12px">8~16자 사이의 알파벳, 숫자, 특수문자 조합</label>
|
||||
</div>
|
||||
<label for="passwordConfirm" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호 확인</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" class="form-control form-control-sm" id="passwordConfirm">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="phoneNo" class="col-sm-2 col-form-label col-form-label-sm text-center">휴대전화</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="tel" class="form-control form-control-sm" id="phoneNo" name="phoneNo">
|
||||
</div>
|
||||
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">이메일</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="email" class="form-control form-control-sm" id="email" name="email">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="sex" class="col-sm-2 col-form-label col-form-label-sm text-center">성별</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="sex" name="sex">
|
||||
<option value="M" th:selected="${userInfo.sex eq 'M'}">남</option>
|
||||
<option value="F" th:selected="${userInfo.sex eq 'F'}">여</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="birthDate" class="col-sm-2 col-form-label col-form-label-sm text-center">생년월일</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="birthDate" name="birthDate" th:value="${userInfo.birthDate}">
|
||||
</div>
|
||||
<label for="policeInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">해양경찰배명일</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="policeInDate" name="policeInDate" th:value="${userInfo.policeInDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">관서</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="ogCd" name="ogCd">
|
||||
<option value="">--선택--</option>
|
||||
<th:block th:each="code:${ogList}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ogCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="organInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현관서전입일</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="organInDate" name="organInDate" th:value="${userInfo.organInDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="ofcCd" class="col-sm-2 col-form-label col-form-label-sm text-center">부서</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="ofcCd" name="ofcCd">
|
||||
<option value="">--선택--</option>
|
||||
<th:block th:each="code:${ofcList}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.ofcCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="ofcInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현부서임용일</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="ofcInDate" name="ofcInDate" th:value="${userInfo.ofcInDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">계급</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="titleCd" name="titleCd">
|
||||
<option value="">--선택--</option>
|
||||
<th:block th:each="code:${titleList}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.titleCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="titleInDate" class="col-sm-2 col-form-label col-form-label-sm text-center">현계급임용일</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="titleInDate" name="titleInDate" th:value="${userInfo.titleInDate}">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="outturnCd" class="col-sm-2 col-form-label col-form-label-sm text-center">경과</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="outturnCd" name="outturnCd">
|
||||
<option value="">--선택--</option>
|
||||
<th:block th:each="code:${outturnList}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.groupCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
<label for="seriesCd" class="col-sm-2 col-form-label col-form-label-sm text-center">직별</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="seriesCd" name="seriesCd">
|
||||
<option value="">--선택--</option>
|
||||
<th:block th:each="code:${seriesList}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.seriesCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="languageCd" class="col-sm-2 col-form-label col-form-label-sm text-center">외국어특채</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="languageCd" name="languageCd">
|
||||
<option value="">--선택--</option>
|
||||
<th:block th:each="code:${languageList}">
|
||||
<option th:value="${code.itemCd}" th:text="${code.itemValue}" th:selected="${code.itemCd eq userInfo.groupCd}"></option>
|
||||
</th:block>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer" th:if="${joinFlag eq 'T'}">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>
|
||||
<button type="button" class="btn btn-primary" id="saveBtn">신청</button>
|
||||
</div>
|
||||
</div>
|
||||
</html>
|
||||
|
|
@ -52,119 +52,19 @@
|
|||
|
||||
<div class="modal fade" id="userInsertModal" data-bs-backdrop="static" data-bs-keyboard="false" tabindex="-1" aria-labelledby="userInsertModalLabel" aria-hidden="true">
|
||||
<div class="modal-dialog modal-lg">
|
||||
<div class="modal-content ">
|
||||
<div class="modal-content " id="userInsertModalContent">
|
||||
<div class="modal-header">
|
||||
<h5 class="modal-title" id="userInsertModalLabel">사용자 신청</h5>
|
||||
<button type="button" class="btn-close" data-bs-dismiss="modal" aria-label="Close"></button>
|
||||
</div>
|
||||
<div class="modal-body">
|
||||
<form id="userInfoInsert" action="#" th:action="@{/admin/insertUserInfo}" method="post">
|
||||
<div class="mb-3 mt-3 row">
|
||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off">
|
||||
</div>
|
||||
<div class="mb-3 mt-3 row">
|
||||
<label for="dicCode" class="col-sm-2 col-form-label col-form-label-sm text-center ">공무원식별번호</label>
|
||||
<div class="col-sm-3">
|
||||
<input type="text" class="form-control form-control-sm" id="dicCode" name="dicCode" autocomplete="off">
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="userId" class="col-sm-2 col-form-label col-form-label-sm text-center ">아이디</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="userId" name="userId" autocomplete="off">
|
||||
<label for="userId" style="font-size: 12px">6~20자 사이의 알파벳, 숫자를 입력하세요</label>
|
||||
</div>
|
||||
<label for="userNm" class="col-sm-2 col-form-label col-form-label-sm text-center">이름</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class=" form-control form-control-sm" id="userNm" name="userNm" autocomplete="off">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="modalPassword" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" class="form-control form-control-sm" id="modalPassword" name="password" >
|
||||
<label for="userId" style="font-size: 12px">8~16자 사이의 알파벳, 숫자, 특수문자 조합</label>
|
||||
</div>
|
||||
<label for="passwordConfirm" class="col-sm-2 col-form-label col-form-label-sm text-center">비밀번호 확인</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="password" class="form-control form-control-sm" id="passwordConfirm">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="telP" class="col-sm-2 col-form-label col-form-label-sm text-center">휴대전화</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="tel" class="form-control form-control-sm" id="telP">
|
||||
</div>
|
||||
<label for="email" class="col-sm-2 col-form-label col-form-label-sm text-center">이메일</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="email" class="form-control form-control-sm" id="email">
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">관서</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="ogCd" name="ogCd">
|
||||
<option value="">--선택--</option>
|
||||
<option th:each="val : ${OgList}" th:value="${val?.itemCd}" th:utext="${val?.itemValue}">
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
<label for="ofcCd" class="col-sm-2 col-form-label col-form-label-sm text-center">부서</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="ofcCd" name="ofcCd">
|
||||
<option value="">--선택--</option>
|
||||
<option th:each="val : ${OfcList}" th:value="${val?.itemCd}" th:utext="${val?.itemValue}">
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="ogCd" class="col-sm-2 col-form-label col-form-label-sm text-center">계급</label>
|
||||
<div class="col-sm-4">
|
||||
<select class="form-select form-select-sm" id="titleCd" name="titleCd">
|
||||
<option value="">--선택--</option>
|
||||
<option th:each="val : ${titleList}" th:value="${val?.itemCd}" th:utext="${val?.itemValue}">
|
||||
</option>
|
||||
</select>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row" >
|
||||
<label for="address" class="col-sm-2 col-form-label col-form-label-sm text-center">주소</label>
|
||||
<div class="col-sm-8">
|
||||
<input type="adress" class="form-control form-control-sm" id="address">
|
||||
</div>
|
||||
<div class="col-sm-2">
|
||||
<button type="button" class="btn btn-sm btn-secondary" id="search">주소검색</button>
|
||||
</div>
|
||||
</div>
|
||||
<div class="mb-3 row">
|
||||
<label for="addresses" class="col-sm-2 col-form-label col-form-label-sm text-center">상세주소</label>
|
||||
<div class="col-sm-10">
|
||||
<input type="address" class="form-control form-control-sm" id="addresses">
|
||||
</div>
|
||||
</div>
|
||||
<!--<div class="mb-3 row">
|
||||
<label for="photo" class="col-sm-2 col-form-label col-form-label-sm text-center">사진</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="file" style="font-size: 12px" class="form-control form-control-sm" id="photo">
|
||||
</div>
|
||||
<label for="sign" class="col-sm-2 col-form-label col-form-label-sm text-center">서명</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="file" style="font-size: 12px" class="form-control form-control-sm" id="sign">
|
||||
</div>
|
||||
</div>-->
|
||||
<!--<div class="mb-3 row">
|
||||
<label for="tel" class="col-sm-2 col-form-label col-form-label-sm text-center">요청사항</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="need">
|
||||
</div>
|
||||
<label for="precautions" class="col-sm-2 col-form-label col-form-label-sm text-center">주의사항</label>
|
||||
<div class="col-sm-4">
|
||||
<input type="text" class="form-control form-control-sm" id="precautions">
|
||||
</div>
|
||||
</div>-->
|
||||
</form>
|
||||
</div>
|
||||
<div class="modal-footer">
|
||||
<button type="button" class="btn btn-secondary" data-bs-dismiss="modal" id="closeModalBtn">닫기</button>
|
||||
<button type="button" class="btn btn-primary" id="saveBtn">신청</button>
|
||||
<button type="button" class="btn btn-sm btn-outline-primary col-sm-1" id="dicCodeSearchBtn">검색</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue