779 lines
29 KiB
Plaintext
779 lines
29 KiB
Plaintext
<%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%>
|
|
<%@ page import="com.pms.common.utils.*"%>
|
|
<%@ page import="java.util.*" %>
|
|
<%@include file= "/init.jsp" %>
|
|
<!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
|
|
<title><%=Constants.SYSTEM_NAME%></title>
|
|
<c:set var="actionType" value="${param.actionType}" />
|
|
<c:set var="objid" value="${partInfoMap.OBJID}" />
|
|
|
|
<c:set var="status" value="${partInfoMap.STATUS}" />
|
|
|
|
<script type="text/javascript">
|
|
|
|
$(document).ready(function(){
|
|
fnc_datepick();
|
|
fnc_setFileDropZone("shapeDropZone", "${objid}", "${SHAPE_CODE}", "${SHAPE_NAME}", "shapeAreaDraw",true,null,null);
|
|
fnc_setFileDropZone("dataDropZone", "${objid}", "${DATA_CODE}", "${DATA_NAME}", "dataAreaDraw",false,null,null);
|
|
fnc_setFileDropZone("attachDropZone", "${objid}", "${ATTACH_CODE}", "${ATTACH_NAME}", "attachAreaDraw",false,null,null);
|
|
|
|
shapeAreaDraw();
|
|
dataAreaDraw();
|
|
attachAreaDraw();
|
|
|
|
if("regist" == "${actionType}"){
|
|
$("#conversionFile").remove();
|
|
}else{
|
|
getCarList("${partInfoMap.OEM_OBJID}","${partInfoMap.CAR_OBJID}");
|
|
getProductList("${partInfoMap.PRODUCT_GROUP_OBJID}","${partInfoMap.PRODUCT_OBJID}");
|
|
}
|
|
});
|
|
|
|
function refeshAttachFileArea(){
|
|
shapeAreaDraw();
|
|
dataAreaDraw();
|
|
attachAreaDraw();
|
|
}
|
|
|
|
function savePart(){
|
|
var flag = false;
|
|
var url = "/part/saveStartDevPartInfo.do";
|
|
flag = duplicatePartChk();
|
|
|
|
if(!flag){
|
|
if(fnc_valitate("form1")){
|
|
|
|
if(confirm("저장 하시겠습니까?")){
|
|
var param = $("#form1").serialize();
|
|
$.ajax({
|
|
type : "POST",
|
|
url : url,
|
|
data: param,
|
|
dataType:"json",
|
|
async:false,
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
},
|
|
success: function(result){
|
|
if(null != result){
|
|
Swal.fire(result.message);
|
|
opener.search();
|
|
self.close();
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//파트의 중복여부를 체크한다.
|
|
function duplicatePartChk(){
|
|
var flag = false;
|
|
var partNo = $("#partNo").val();
|
|
var objid = $("#objid").val();
|
|
|
|
var paramData = {"search_partNo":partNo, "targetObjId":objid, "isStartDevPart":"0"};
|
|
if(partNo != ""){
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/part/duplicatePartChk.do",
|
|
data: paramData,
|
|
dataType:"json",
|
|
async:false,
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
},
|
|
success: function(result){
|
|
if(null != result){
|
|
if(0 < result.length){
|
|
Swal.fire("이미 해당 Part No가 존재합니다.");
|
|
flag = true;
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
return flag;
|
|
}
|
|
|
|
//고객사에 따른 차종의 목록을 가져온다.
|
|
function getCarList(oemObjid,carObjid){
|
|
var carSelectObj = $("#car");
|
|
$(carSelectObj).find("option").remove();
|
|
$(carSelectObj).append("<option value=''>선택</option>");
|
|
|
|
if("" == oemObjid || null == oemObjid){
|
|
return false;
|
|
}else{
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/admin/getOEMsCarList.do",
|
|
data:{ "status" : "active" , "oemObjId" : oemObjid},
|
|
dataType:"json",
|
|
async:false,
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
},
|
|
success: function(result){
|
|
if(null != result){
|
|
for(var i=0;i<result.length;i++){
|
|
var objid = result[i].OBJID;
|
|
var carName = result[i].CAR_NAME;
|
|
var carCode = result[i].CAR_CODE;
|
|
$(carSelectObj).append("<option value='"+objid+"'>"+carCode+"</option>");
|
|
}
|
|
if("" != carObjid){
|
|
$(carSelectObj).val(carObjid);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//제품군에 따른 제품의 목록을 가져온다.
|
|
function getProductList(productFamilyObjid,productObjid){
|
|
var productSelectObj = $("#product");
|
|
$(productSelectObj).find("option").remove();
|
|
$(productSelectObj).append("<option value=''>선택</option>");
|
|
|
|
if("" == productFamilyObjid || null == productFamilyObjid){
|
|
return false;
|
|
}else{
|
|
$.ajax({
|
|
type : "POST",
|
|
url : "/specData/getProductList.do",
|
|
data:{ "status" : "active", "productGroupObjid" : productFamilyObjid},
|
|
dataType:"json",
|
|
async:false,
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
},
|
|
success: function(result){
|
|
if(null != result){
|
|
for(var i=0;i<result.length;i++){
|
|
$(productSelectObj).append("<option value='"+result[i].OBJID+"'>"+result[i].PRODUCT_NAME+"</option>");
|
|
}
|
|
if("" != productObjid){
|
|
$(productSelectObj).val(productObjid);
|
|
}
|
|
}
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
|
|
//형상 영역을 display 한다.
|
|
function shapeAreaDraw(){
|
|
fn_fileCallback("shape","${SHAPE_CODE}");
|
|
}
|
|
|
|
//DATA 영역을 display 한다.
|
|
function dataAreaDraw(){
|
|
fn_fileCallback("data","${DATA_CODE}");
|
|
}
|
|
|
|
//참고자료 영역을 display 한다.
|
|
function attachAreaDraw(){
|
|
fn_fileCallback("attach","${ATTACH_CODE}");
|
|
}
|
|
|
|
//첨부파일 목록을 가져온다.
|
|
function fn_fileCallback(areaId,fileType){
|
|
$.ajax({
|
|
url:"/common/getFileList.do",
|
|
type:"POST",
|
|
data:{"targetObjId":"${objid}", "docType":fileType},
|
|
dataType:"json",
|
|
async:false,
|
|
success:function(data){
|
|
|
|
if(0 < data.length){
|
|
$("#"+areaId+"FileArea").empty();
|
|
|
|
if(0 < $("#"+areaId+"DefaultRow").length){
|
|
$("#"+areaId+"DefaultRow").hide();
|
|
}
|
|
|
|
$.each(data, function(i){
|
|
|
|
var appendText = "";
|
|
if("shape" == areaId){
|
|
var path = data[i].FILE_PATH;
|
|
var fileName = data[i].SAVED_FILE_NAME;
|
|
var fileExt = data[i].UPPER_FILE_EXT;
|
|
|
|
if(fileExt == "JPEG" || fileExt == "JPG"){
|
|
var srcLocation = encodeURI("/common/viewImage.do?realFileName="+data[i].REAL_FILE_NAME+"&savedFileName="+data[i].SAVED_FILE_NAME+"&attDir="+data[i].FILE_PATH);
|
|
appendText+= "<tr>";
|
|
appendText+= " <td>";
|
|
appendText+= " <img src='"+srcLocation+"' height='100' width='100' onclick=\"openImagePopUp(this.src)\" style='cursor:pointer;' />";
|
|
appendText+= " </td>";
|
|
appendText+= " <td>";
|
|
appendText+= " <div class='delete_btn' onclick='javascript:fnc_deleteFile(\""+data[i].OBJID+"\", \"refeshAttachFileArea\")'></div>";
|
|
appendText+= " </td>";
|
|
appendText+= "</tr>";
|
|
|
|
//파일드롭다운 영역 hide
|
|
$("#"+areaId+"DropZone").hide();
|
|
//첨부파일 목록 영역 show
|
|
$("#"+areaId+"AttachFileList").show();
|
|
$("#"+areaId+"FileArea").empty();
|
|
|
|
}else{
|
|
Swal.fire("형상에 업로드 가능한 확장자(jpeg,jpg)가 아닙니다.");
|
|
fileDelete(data[i].OBJID,"refeshAttachFileArea",false);
|
|
}
|
|
}else{
|
|
appendText+= "<tr>";
|
|
appendText+= " <td>"+(i+1)+"</a></td>";
|
|
appendText+= " <td><p><a href='javascript:fnc_downloadFile(\""+data[i].OBJID+"\")'>"+data[i].REAL_FILE_NAME+"</a>";
|
|
appendText+= " <div class='delete_btn' onclick='javascript:fnc_deleteFile(\""+data[i].OBJID+"\", \"refeshAttachFileArea\")'></div></p></td>";
|
|
appendText+= " <td>"+data[i].DEPT_NAME+" "+data[i].USER_NAME+"</td>";
|
|
appendText+= " <td>"+data[i].REGDATE+"</td>";
|
|
appendText+= "</tr>";
|
|
}
|
|
$("#"+areaId+"FileArea").append(appendText);
|
|
});
|
|
}else{
|
|
$("#"+areaId+"DropZone").show();
|
|
$("#"+areaId+"FileArea").empty();
|
|
}
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
}
|
|
});
|
|
}
|
|
|
|
function fileDelete(fileObjId, callbackFnc, confirmFlag){
|
|
if(confirmFlag){
|
|
fnc_deleteFile(fileObjId, callbackFnc);
|
|
}else{
|
|
$.ajax({
|
|
url:"/common/deleteFileInfo.do",
|
|
type:"POST",
|
|
data:{"objId":fileObjId},
|
|
dataType:"json",
|
|
async:true,
|
|
success:function(data){
|
|
eval(callbackFnc+"();");
|
|
},
|
|
error: function(jqxhr, status, error){
|
|
Swal.fire(jqxhr.statusText + ", " + status + ", " + error);
|
|
Swal.fire(jqxhr.status);
|
|
Swal.fire(jqxhr.responseText);
|
|
}
|
|
});
|
|
}
|
|
}
|
|
|
|
//형상 클릭 시 확대 팝업
|
|
function openImagePopUp(url){
|
|
var img=new Image();
|
|
img.src=url;
|
|
var img_width=img.width;
|
|
var img_height=img.height;
|
|
var win_width=img.width+25;
|
|
var height=img.height+30;
|
|
|
|
window.open(url,"partListShapeImgPopUp","width="+img_width+",height="+height+", menubars=no, scrollbars=yes, resizable=yes'");
|
|
}
|
|
//숫자 및 영문 유효성 검사
|
|
function onlyOneTypeCheck(type,obj){
|
|
|
|
var patternNumber = /[0-9]/;
|
|
var patternAlphabet = /^[A-Za-z]*$/;
|
|
var patternPrimeNumber1 = /^\d*[.]\d*$/; //소수점이 2개 들어가지 못하게 한다.
|
|
var patternPrimeNumber2 = /^\d{3}$/; //1000이하만 입력하도록 한다.
|
|
var patternPrimeNumber3 = /^\d*[.]\d{2}$/; //소수점 2째 자리 까지만 입력 하도록 한다.
|
|
var patternPrimeNumber4 = /^-?(\d{1,4}([.]\d{0,2})?)?$/; //소수점 2째 자리 까지만 입력 하도록 한다.
|
|
|
|
var message = "유효하지 않은 값입니다.";
|
|
|
|
if(type == "number"){
|
|
if("-" != obj.value){
|
|
for(var i=0;i<obj.value.length;i++){
|
|
var chk = obj.value.substring(i,i+1);
|
|
|
|
if(!chk.match(patternNumber)){
|
|
Swal.fire("숫자만 입력 가능합니다.");
|
|
obj.value = "";
|
|
break;
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
|
|
}else if(type == "alphabet"){
|
|
for(var i=0;i<obj.value.length;i++){
|
|
var chk = obj.value.substring(i,i+1);
|
|
|
|
if(!chk.match(patternAlphabet)){
|
|
Swal.fire("영문자만 입력 가능합니다.");
|
|
obj.value = "";
|
|
break;
|
|
return false;
|
|
}
|
|
}
|
|
}else if(type == "primeNumber"){
|
|
if("-" != obj.value){
|
|
|
|
if(!obj.value.match(patternPrimeNumber4)){
|
|
Swal.fire("정수 4자리, 소수점 2째 자리까지 입력 가능합니다.");
|
|
obj.value = "";
|
|
return false;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
//재질 데이터의 입력에 따라 두께,중량의 정보를 변경한다.
|
|
function fn_changeMaterial(){
|
|
var materialVal = $("#material").val();
|
|
if("" != materialVal && "-" != materialVal){
|
|
$("#thickness").val("-");
|
|
$("#weight").val("-");
|
|
}
|
|
}
|
|
|
|
</script>
|
|
</head>
|
|
<body class="backcolor_light_blue">
|
|
<form name="hiddenForm" id="hiddenForm" method="post">
|
|
<input type="hidden" name="objid">
|
|
</form>
|
|
<form name="form1" id="form1" method="post">
|
|
<input type="hidden" name="objid" id="objid" value="${objid}">
|
|
<input type="hidden" name="isLast" id="isLast" value="${partInfoMap.IS_LAST}">
|
|
<input type="hidden" name="actionType" id="actionType" value="${actionType}">
|
|
<input type="hidden" name="status" id="status" value="${partInfoMap.STATUS}">
|
|
<section class="part_popup_min_width">
|
|
<div class="pdm_menu_name">
|
|
<h2>
|
|
<span>시작 Part 등록</span>
|
|
</h2>
|
|
</div>
|
|
<div id="partPopupFormWrap">
|
|
<div class="form_popup_title"> 시작 Part 등록 정보 입력</div>
|
|
<table id="partPopupForm">
|
|
<colgroup>
|
|
<col width="13%"/>
|
|
<col width="38%"/>
|
|
<col width="*"/>
|
|
<col width="13%"/>
|
|
<col width="18%"/>
|
|
<col width="19%"/>
|
|
</colgroup>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">품번</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="partNo" id="partNo" class="short_text_area" value="${partInfoMap.PART_NO}" required reqTitle="품번" maxlength="13" />
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">RH P/No.</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" name="rhPartNo" id="rhPartNo" class="text_area" value="${partInfoMap.RH_PART_NO_ORG}" required reqTitle="RH P/No." maxlength="13"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">품명</label>
|
|
</td>
|
|
<td colspan="5">
|
|
<input type="text" name="partName" id="partName" class="short_text_area" value="${partInfoMap.PART_NAME}" required reqTitle="품명" maxlength="32"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">고객사</label>
|
|
</td>
|
|
<td>
|
|
<select name="oem" id="oem" onchange="getCarList(this.value,'${partInfoMap.CAR_OBJID}')" type="select" required reqTitle="고객사">
|
|
<c:choose>
|
|
<c:when test="${empty oemList}">
|
|
<option value="">선택</option>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<option value="">선택</option>
|
|
<c:forEach var="item" items="${oemList}" varStatus="varStatus">
|
|
<option value="${item.OBJID}" ${item.OBJID eq partInfoMap.OEM_OBJID ? 'selected':''}>${item.OEM_NAME} ${empty item.OEM_CODE?'':'('}${item.OEM_CODE}${empty item.OEM_CODE?'':')'}</option>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</select>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">차종</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="car" id="car" type="select" required reqTitle="차종"></select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">제품군</label>
|
|
</td>
|
|
<td>
|
|
<select name="productFamily" id="productFamily" onchange="getProductList(this.value,'${partInfoMap.PRODUCT_OBJID}')" type="select" required reqTitle="제품군">
|
|
<c:choose>
|
|
<c:when test="${empty productGroupList}">
|
|
<option value="">선택</option>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<option value="">선택</option>
|
|
<c:forEach var="item" items="${productGroupList}" varStatus="varStatus">
|
|
<option value="${item.OBJID}" ${item.OBJID eq partInfoMap.PRODUCT_GROUP_OBJID ? 'selected':''}>${item.PRODUCT_GROUP_NAME}</option>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</select>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">제품</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="product" id="product" type="select" required reqTitle="제품"></select>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">EO No.</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="eoNo" id="eoNo" class="short_text_area" value="${partInfoMap.EO_NO_ORG}" required reqTitle="EO No" maxlength="32"/>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">EO Date</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" name="eoDate" id="eoDate" class="short_text_area" value="${partInfoMap.EO_ISSUE_DATE_ORG}" reqTitle="EO Date" maxlength="32"/>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">Rev</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="revision" id="revision" class="short_text_area" value="${partInfoMap.REV}" required reqTitle="Rev" maxlength="9">
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="checkboxName_20px tr_title_border_bottom">
|
|
<label for="">출도구분</label>
|
|
</td>
|
|
<td>
|
|
<input type="radio" name="drawReleaseType" value="dev" ${'dev' eq partInfoMap.DRAWING_RELEASE_TYPE ? 'checked':''} reqTitle="출도구분">
|
|
<span>개발</span>
|
|
<input type="radio" name="drawReleaseType" value="product" ${'product' eq partInfoMap.DRAWING_RELEASE_TYPE ? 'checked':''}>
|
|
<span>양산</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="checkboxName_10px tr_title_border_bottom">
|
|
<label for="">부품구분</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="radio" name="partType" value="unique" ${'unique' eq partInfoMap.PART_TYPE ? 'checked':''} reqTitle="부품구분">
|
|
<span>Unique part</span>
|
|
<input type="radio" name="partType" value="standard" ${'standard' eq partInfoMap.PART_TYPE ? 'checked':''}>
|
|
<span>표준 품</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="checkboxName_20px tr_title_border_bottom">
|
|
<label for="">도면구분</label>
|
|
</td>
|
|
<td>
|
|
<input type="radio" name="drawType" value="draw" ${'draw' eq partInfoMap.DRAWING_TYPE ? 'checked':''} onclick="changeDrawArea(this.value);" required reqTitle="도면구분">
|
|
<span>D</span>
|
|
<input type="radio" name="drawType" value="shownOn" ${'shownOn' eq partInfoMap.DRAWING_TYPE ? 'checked':''} onclick="changeDrawArea(this.value);">
|
|
<span>S</span>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">도면번호</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" name="drawingNo" id="drawingNo" class="short_text_area" value="${empty partInfoMap.DRAWING_NO_ORG ? '':partInfoMap.DRAWING_NO_ORG}" required reqTitle="도면번호" maxlength="13" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">재질</label>
|
|
</td>
|
|
<td>
|
|
<!-- <select name="material" id="material" type="select" required reqTitle="재질" onchange="fn_changeMaterial();"> -->
|
|
<select name="material" id="material" type="select" reqTitle="재질">
|
|
<c:choose>
|
|
<c:when test="${empty materialList}">
|
|
<option value="">선택</option>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<option value="">선택</option>
|
|
<c:forEach var="item" items="${materialList}" varStatus="varStatus">
|
|
<option value="${item.OBJID}" ${item.OBJID eq partInfoMap.MATERIAL_OBJID ? 'selected':''}>${item.MATERIAL_NAME}</option>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</select>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">두께</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="text" name="thickness" id="thickness" class="short_text_area" value="${partInfoMap.THICKNESS}" maxlength="5" reqTitle="두께" />
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">대체재질 유무</label>
|
|
</td>
|
|
<td>
|
|
<select name="subMaterialType" id="subMaterialType" type="select" reqTitle="대체재질 유무">
|
|
<option value="">선택</option>
|
|
<option value="Y" ${'Y' eq partInfoMap.SUB_MATERIAL_TYPE ? 'selected':''}>Y</option>
|
|
<option value="N" ${'N' eq partInfoMap.SUB_MATERIAL_TYPE ? 'selected':''}>N</option>
|
|
</select>
|
|
<select name="subMaterial" id="subMaterial" type="select" reqTitle="대체재질">
|
|
<c:choose>
|
|
<c:when test="${empty materialList}">
|
|
<option value="">선택</option>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<option value="">선택</option>
|
|
<c:forEach var="item" items="${materialList}" varStatus="varStatus">
|
|
<option value="${item.OBJID}" ${item.OBJID eq partInfoMap.SUB_MATERIAL_OBJID ? 'selected':''}>${item.MATERIAL_NAME}</option>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</select>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">시작공용품</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<input type="radio" name="startCommonProductType" value="Y" ${'Y' eq partInfoMap.START_COMMON_PRODUCT_TYPE ? 'checked':''} required reqTitle="시작공용품">
|
|
<span>Y</span>
|
|
<input type="radio" name="startCommonProductType" value="N" ${'N' eq partInfoMap.START_COMMON_PRODUCT_TYPE ? 'checked':''}>
|
|
<span>N</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">자재유형</label>
|
|
</td>
|
|
<td>
|
|
<select name="materialType" id="materialType" type="select" required reqTitle="자재유형">
|
|
<c:choose>
|
|
<c:when test="${empty materialTypeList}">
|
|
<option value="">선택</option>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<option value="">선택</option>
|
|
<c:forEach var="item" items="${materialTypeList}" varStatus="varStatus">
|
|
<option value="${item.OBJID}" ${item.OBJID eq partInfoMap.MATERIAL_TYPE_OBJID ? 'selected':''}>${item.MATERIAL_TYPE_NAME}</option>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</select>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">사양</label>
|
|
</td>
|
|
<td colspan="2">
|
|
<select name="optionSpec" id="optionSpec" type="select" reqTitle="사양">
|
|
<c:choose>
|
|
<c:when test="${empty optionSpecList}">
|
|
<option value="">선택</option>
|
|
</c:when>
|
|
<c:otherwise>
|
|
<option value="">선택</option>
|
|
<c:forEach var="item" items="${optionSpecList}" varStatus="varStatus">
|
|
<option value="${item.OBJID}" ${item.OBJID eq partInfoMap.PART_OPTION ? 'selected':''}>${item.OPTION_NAME}</option>
|
|
</c:forEach>
|
|
</c:otherwise>
|
|
</c:choose>
|
|
</select>
|
|
</td>
|
|
</tr>
|
|
<tr id="img_tr" >
|
|
<td class="tr_title_border_bottom">
|
|
<label for="">weight(g)</label>
|
|
</td>
|
|
<td>
|
|
<input type="text" name="weight" id="weight" class="short_text_area" value="${partInfoMap.WEIGHT}" maxlength="10" reqTitle="weight(g)" onchange="onlyOneTypeCheck('primeNumber',this)"/>
|
|
</td>
|
|
<td></td>
|
|
<td class="tr_title_border_bottom" >
|
|
<label for="">형상</label>
|
|
</td>
|
|
<td colspan="2" id="img_position_re">
|
|
<div id="shapeDropZone" class="dropzone">Drag & Drop Files Here</div>
|
|
<div id="shapeAttachFileList">
|
|
<table id="shapeFileAreaTable" class="spec_data_in_table">
|
|
<tbody id="shapeFileArea">
|
|
</tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="6" class="hr_td"><hr></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="checkboxName_60px tr_title_border_bottom">
|
|
<label for="">기변항목</label>
|
|
</td>
|
|
<td colspan="6">
|
|
<input type="checkbox" name="changeItem" value="changeGeometry" ${empty connectChangeItemInfo.changeGeometry ? '' : connectChangeItemInfo.changeGeometry} required reqTitle="기변항목">
|
|
<span class="span_margin">형상변경</span>
|
|
<input type="checkbox" name="changeItem" value="materialThickChange" ${empty connectChangeItemInfo.materialThickChange ? '' : connectChangeItemInfo.materialThickChange}>
|
|
<span>재질/두께변경</span>
|
|
<input type="checkbox" name="changeItem" value="cycleChange" ${empty connectChangeItemInfo.cycleChange ? '' : connectChangeItemInfo.cycleChange}>
|
|
<span>주기변경</span>
|
|
<input type="checkbox" name="changeItem" value="constructChange" ${empty connectChangeItemInfo.constructChange ? '' : connectChangeItemInfo.constructChange}>
|
|
<span>구성변경</span>
|
|
<input type="checkbox" name="changeItem" value="weldingSpot" ${empty connectChangeItemInfo.weldingSpot ? '' : connectChangeItemInfo.weldingSpot}>
|
|
<span class="span_margin_1">용접점</span>
|
|
<input type="checkbox" name="changeItem" value="structurGlue" ${empty connectChangeItemInfo.structurGlue ? '' : connectChangeItemInfo.structurGlue}>
|
|
<span class="span_margin_2">구조용접착제</span> </br>
|
|
<input type="checkbox" name="changeItem" value="first" ${empty connectChangeItemInfo.first ? '' : connectChangeItemInfo.first}>
|
|
<span class="span_margin_3">초도</span>
|
|
<input type="checkbox" name="changeItem" value="etc" ${empty connectChangeItemInfo.etc ? '' : connectChangeItemInfo.etc}>
|
|
<span>기타</span>
|
|
<input type="checkbox" name="changeItem" value="none" ${empty connectChangeItemInfo.none ? '' : connectChangeItemInfo.none} >
|
|
<span>해당 無</span>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="6" class="hr_td"><hr></td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom">
|
|
<label for="">비고</label>
|
|
</td>
|
|
<td colspan="5">
|
|
<textarea style="resize:none; height:60px;" name="remarks" id="remarks">${partInfoMap.REMARKS}</textarea>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" rowspan="2">
|
|
<label for="">DATA</label>
|
|
</td>
|
|
<td colspan="5">
|
|
<div id="dataDropZone" class="dropzone">Drag & Drop Files Here</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="6" >
|
|
<div style="overflow-y:scroll;">
|
|
<table class="fileListscrollThead" style="width:100% !important;">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="15%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tr>
|
|
<td>No</td>
|
|
<td>파일명</td>
|
|
<td>등록자</td>
|
|
<td>등록일</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div style="height:90px; overflow-y:scroll; border-bottom:2px solid #cacaca;" id="dataAttachFileList">
|
|
<table class="fileListscrollTbody" id="dataFileAreaTable">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="15%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tr id="dataDefaultRow">
|
|
<td colspan="4">첨부된 파일이 없습니다.</td>
|
|
</tr>
|
|
<tbody id="dataFileArea"></tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td class="tr_title_border_bottom" rowspan="2">
|
|
<label for="">기타첨부자료</label>
|
|
</td>
|
|
<td colspan="5">
|
|
<div id="attachDropZone" class="dropzone">Drag & Drop Files Here</div>
|
|
</td>
|
|
</tr>
|
|
<tr>
|
|
<td colspan="6" >
|
|
<div style="overflow-y:scroll;">
|
|
<table class="fileListscrollThead" style="width:100% !important;">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="15%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tr>
|
|
<td>No</td>
|
|
<td>파일명</td>
|
|
<td>등록자</td>
|
|
<td>등록일</td>
|
|
</tr>
|
|
</table>
|
|
</div>
|
|
<div style="height:90px; overflow-y:scroll; border-bottom:2px solid #cacaca;" id="attachAttachFileList">
|
|
<table class="fileListscrollTbody" id="attachFileAreaTable">
|
|
<colgroup>
|
|
<col width="10%">
|
|
<col width="*">
|
|
<col width="15%">
|
|
<col width="15%">
|
|
</colgroup>
|
|
<tr id="attachDefaultRow">
|
|
<td colspan="4">첨부된 파일이 없습니다.</td>
|
|
</tr>
|
|
<tbody id="attachFileArea"></tbody>
|
|
</table>
|
|
</div>
|
|
</td>
|
|
</tr>
|
|
</table>
|
|
<div class="btnCenterWrap">
|
|
<center class="center_btns_wrap">
|
|
<input type="button" value="저장" class="pdm_btns" onclick="savePart();">
|
|
<input type="button" value="닫기" id="btn_close" class="pdm_btns" onclick="javascript:self.close();">
|
|
</center>
|
|
</div>
|
|
</div>
|
|
</section>
|
|
</form>
|
|
</body>
|
|
</html> |