ERP-node/WebContent/WEB-INF/view/common/searchEmployee.jsp

332 lines
11 KiB
Plaintext

<%@page import="com.pms.common.utils.CommonUtils"%>
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
<%@ include file="/WEB-INF/view/common/common_include.jsp"%>
<%
String userIdTargetObj = CommonUtils.checkNull(request.getParameter("userIdTargetObj"));
String userNameTargetObj = CommonUtils.checkNull(request.getParameter("userNameTargetObj"));
String deptIdTargetObj = CommonUtils.checkNull(request.getParameter("deptIdTargetObj"));
String deptNameTargetObj = CommonUtils.checkNull(request.getParameter("deptNameTargetObj"));
System.out.println("userIdTargetObj : "+userIdTargetObj);
System.out.println("userNameTargetObj : "+userNameTargetObj);
System.out.println("deptIdTargetObj : "+deptIdTargetObj);
System.out.println("deptNameTargetObj : "+deptNameTargetObj);
String searchDeptName = CommonUtils.checkNull(request.getParameter("searchDeptName"));
String searchUserName = CommonUtils.checkNull(request.getParameter("searchUserName"));
String searchUserId = CommonUtils.checkNull(request.getParameter("searchUserId"));
System.out.println("searchDeptName : "+searchDeptName);
System.out.println("searchUserName : "+searchUserName);
System.out.println("searchUserId : "+searchUserId);
boolean multiCheck = new Boolean(request.getParameter("multiCheck")).booleanValue();
System.out.println("multiCheck : "+multiCheck);
%>
<div id="wrap_pop02">
<div class="box01">
<div class="table01">
<form name="searchEmployeeForm" id="searchEmployeeForm" metohod="post" autocomplete="off">
<input type="hidden" name="multiCheck" id="multiCheck" value="${param.multiCheck}" />
<table summary="" class="pms_tableB" cellpadding="0">
<colgroup>
<col width="10%"/>
<col width="10%"/>
<col width="*"/>
</colgroup>
<thead>
<tr>
<th class="ta_c">사원명</th>
<td class="ta_c"><input type="text" name="searchUserName" id="searchUserName" value="${param.searchUserName}"></td>
<td class="ta_c" rowspan="3" style="text-align:center">
<div class="btn_area btn_area_ac">
<span class="btn">
<div class="btn_l"></div>
<div class="btn_c" id="btnSearch">조회</div>
<div class="btn_r"></div>
</span>
</div>
</td>
</tr>
<tr>
<th class="ta_c">부서명</th>
<td class="ta_c"><input type="text" name="searchDeptName" id="searchDeptName" value="${param.searchDeptName}"></td>
</tr>
<tr>
<th class="ta_c">사번</th>
<td class="ta_c"><input type="text" name="searchUserId" id="searchUserId" value="${param.searchUserId}"></td>
</tr>
</thead>
</table>
<div id="scroll" style="border:1;width:100%; height:240px; overflow: auto">
<table summary="" class="pms_tableB" id="employeeTable" cellpadding="0">
<caption></caption>
<colgroup>
<col width="5%" />
<col width="25%" />
<col width="25%" />
<col width="25%" />
<col width="20%" />
</colgroup>
<thead class="bb_2px">
<tr>
<th class="ta_c bg_th_2_t">
<c:if test="${param.multiCheck eq 'true'}">
<input type="checkbox" name="allChk" id="allChk">
</c:if>
</th>
<th class="ta_c bg_th_2_t">부서명</th>
<th class="ta_c bg_th_2_t">성명</th>
<th class="ta_c bg_th_2_t">직급</th>
<th class="ta_c bg_th_2_t">사번</th>
</tr>
</thead>
<tbody>
<c:choose>
<c:when test="${empty userList}">
<tr class="dataRow" onmouseover="fn_over(this)" onmouseout="fn_out(this)" style="cursor:pointer">
<td colspan="5" align="center">
<spring:message code="common.search.notfound" />
</td>
</tr>
</c:when>
<c:otherwise>
<c:forEach var="user" items="${userList}" varStatus="st">
<tr class="dataRow" onmouseover="fn_over(this)" onmouseout="fn_out(this)" style="cursor:pointer">
<td align="center">
<c:choose>
<c:when test="${'true' eq param.multiCheck}">
<input type="checkbox" name="chk" id="chk" value="${user.USERID}">
</c:when>
<c:when test="${'false' eq param.multiCheck} || ${'' eq param.multiCheck}">
&nbsp;
</c:when>
</c:choose>
</td>
<td align="center">${user.DEPTNAME}</td>
<td align="center">${user.USERNAME}</td>
<td align="center">${user.LEVELNAME}</td>
<td align="center">${user.USERID}</td>
</tr>
</c:forEach>
</c:otherwise>
</c:choose>
</tbody>
</table>
</div>
<div class="btn_area_ac btn_area">
<span class="btn">
<div class="btn_l"></div>
<div class="btn_c" id="btnRegist">적용</div>
<div class="btn_r"></div>
</span>
<span class="btn">
<div class="btn_l"></div>
<div class="btn_c" id="btnClose">닫기</div>
<div class="btn_r"></div>
</span>
</div>
</form>
</div>
</div>
</div>
<script>
$(function(){
$("#btnSearch").click(function(){
searchEmployee();
});
$("#btnClose").click(function(){
$("#SearchEmployee").dialog("close");
});
$("#btnApply").click(function(){
fn_apply();
});
$("input[type=text]").keydown(function(event){
if(event.keyCode == 13){
searchEmployee();
}
});
$("#allChk").click(function(){
fn_allChk($(this));
});
//row click시 checkbox 선택
$(document).on("click", ".dataRow", function(){
var multiCheck = $("#multiCheck").val();
$(this).children().children(":checkbox").each(function(){
this.checked = !this.checked;
});
if(multiCheck == "false"){
fn_apply($(this));
}
});
});
//적용
function fn_apply(obj){
var multiCheck = $("#multiCheck").val();
var userIdTargetObj = "${param.userIdTargetObj}";
var userNameTargetObj = "${param.userNameTargetObj}";
var deptIdTargetObj = "${param.deptIdTargetObj}";
var deptNameTargetObj = "${param.deptNameTargetObj}";
if(multiCheck == "true"){
//선택된 checkbox의 value를 모아서 return 해야함
var userIds = "";
var userNames = "";
var deptNames = "";
var deptIds = "";
$("input[name=chk]").each(function(){
if(this.checked){
if(userIds != "") userIds += ", "+$(this).attr("data-USERID");
else userIds = $(this).attr("data-USERID");
if(userNames != "") userNames += ", "+$(this).attr("data-USERNAME");
else userNames = $(this).attr("data-USERNAME");
if(deptNames != "") deptNames += ", "+$(this).attr("data-DEPTNAME");
else deptNames = $(this).attr("data-DEPTNAME");
if(deptIds != "") deptIds += ", "+$(this).attr("data-DEPTID");
else deptIds = $(this).attr("data-DEPTID");
}
});
$("#"+userIdTargetObj).val(userIds);
$("#"+userNameTargetObj).val(userNames);
$("#"+deptIdTargetObj).val(deptIds);
// $("#"+deptIdTargetObj).html(deptIds);
$("#"+deptNameTargetObj).val(deptNames);
// $("#"+deptNameTargetObj).html(deptNames);
}else{
//click된 row의 사번을 return 해야함
var userId = $(obj).attr("data-USERID");
var userName = $(obj).attr("data-USERNAME");
var deptId = $(obj).attr("data-DEPTID");
var deptName = $(obj).attr("data-DEPTNAME");
$("#"+userIdTargetObj).val(userId);
$("#"+userNameTargetObj).val(userName);
$("#"+deptIdTargetObj).val(deptId);
// $("#"+deptIdTargetObj).html(deptId);
$("#"+deptNameTargetObj).val(deptName);
// $("#"+deptNameTargetObj).html(deptName);
}
//$("#SearchEmployee").remove();
$("#SearchEmployee").dialog("close");
}
//자동 적용
function fn_autoApply(userId, userName, deptId, deptName){
var userIdTargetObj = "${param.userIdTargetObj}";
var userNameTargetObj = "${param.userNameTargetObj}";
var deptIdTargetObj = "${param.deptIdTargetObj}";
var deptNameTargetObj = "${param.deptNameTargetObj}";
$("#${param.userIdTargetObj}").val(userId);
$("#${param.userNameTargetObj}").val(userName);
$("#${param.deptIdTargetObj}").val(deptId);
$("#${param.deptIdTargetObj}").html(deptId);
$("#${param.deptNameTargetObj}").val(deptName);
$("#${param.deptNameTargetObj}").html(deptName);
$("#SearchEmployee").remove();
$("#SearchEmployee").dialog("close");
}
//전체 체크
function fn_allChk(obj){
var checked = $(obj).is(":checked");
$("input[name=chk]").each(function(){
if(checked) this.checked = true;
else this.checked = false;
});
}
//사원조회
function searchEmployee(){
var param = $("form[name=searchEmployeeForm]").serialize();
$.ajax({
type : "POST",
url : "/common/searchEmployee.do",
data : param,
dataType:"json",
complete:function(xhr){
if(xhr.status == 403) {
_unLoading();
jSwal.fire("", "<spring:message code="error.session.expired" />", function() {
top.document.location.href="<spring:eval expression="@property['login.url']" />";
});
} else {
var obj = $.parseJSON(xhr.responseText);
_unLoading();
if (obj != null) {
if (obj.length > 0) {
//화면에 조회된 데이터를 보여준다.
$(".dataRow").remove();
var multiCheck = $("#multiCheck").val();
var appendHtml = "";
$.each(obj, function(i, data){
// if(obj.length == 1){
// fn_autoApply(data.USERID, data.USERNAME, data.DEPTID, data.DEPTNAME);
// }
appendHtml += "<tr style=\"cursor:pointer\" class=\"dataRow\" onmouseover=\"fn_over(this)\" onmouseout=\"fn_out(this)\" data-USERID=\""+data.USERID+"\" data-USERNAME=\""+data.USERNAME+"\" data-DEPTID=\""+data.DEPTID+"\" data-DEPTNAME=\""+data.DEPTNAME+"\" style=\"cursor:hand;\">";
appendHtml += "<td align=\"center\">";
if(multiCheck == "true") appendHtml += "<input type=\"checkbox\" name=\"chk\" id=\"chk\" data-USERID=\""+data.USERID+"\" data-USERNAME=\""+data.USERNAME+"\" data-DEPTID=\""+data.DEPTID+"\" data-DEPTNAME=\""+data.DEPTNAME+"\">";
else appendHtml += "&nbsp;";
appendHtml += "</td>";
appendHtml += "<td align=\"center\">"+data.DEPTNAME+"</td>";
appendHtml += "<td align=\"center\">"+data.USERNAME+"</td>";
appendHtml += "<td align=\"center\">"+data.LEVELNAME+"</td>";
appendHtml += "<td align=\"center\">"+data.USERID+"</td>";
appendHtml += "</tr>";
});
$("#employeeTable").append(appendHtml);
} else {
//조회된 데이터가 없다는 메세지 출력
$(".dataRow").remove();
jSwal.fire(null, obj.message, function(){
var noDataHtml = "";
noDataHtml += "<tr class=\"dataRow\">";
noDataHtml += "<td colspan=\"5\" align=\"center\">";
noDataHtml += "<spring:message code='common.search.notfound' />";
noDataHtml += "</td>";
noDataHtml += "</tr>";
$("#employeeTable").append(noDataHtml);
});
}
}
}
}
});
}
function fn_over(obj){
obj.bgColor = "#c1e3fa";
}
function fn_out(obj){
obj.bgColor = "";
}
</script>