생산관리의 생산계획생성 버튼 눌렀을때 품번, 품명도 드롭박스처럼 나오게

This commit is contained in:
leeheejin
2025-12-23 15:43:59 +09:00
parent 6dd802feda
commit ac8551c821

View File

@@ -35,6 +35,9 @@ $(function(){
fnc_datepick();
$(".select2").select2();
// 품번/품명 Select2 AJAX 초기화
initPartSelect2();
// 저장 버튼
$("#btnSave").click(function(){
fn_save();
@@ -74,6 +77,94 @@ $(function(){
<% } %>
});
// 품번/품명 Select2 AJAX 초기화
function initPartSelect2() {
// 품번 Select2
$("#PART_NO").select2({
placeholder: "품번 검색...",
allowClear: true,
width: '100%',
minimumInputLength: 1,
language: {
inputTooShort: function() { return "1글자 이상 입력하세요"; },
searching: function() { return "검색 중..."; },
noResults: function() { return "검색 결과가 없습니다"; }
},
ajax: {
url: '/contractMgmt/searchPartList.do',
dataType: 'json',
type: 'POST',
delay: 250,
data: function(params) { return { searchTerm: params.term }; },
processResults: function(data) {
return {
results: $.map(data, function(item) {
return {
id: item.PART_NO || item.part_no,
text: item.PART_NO || item.part_no,
partName: item.PART_NAME || item.part_name,
partObjid: item.OBJID || item.objid
};
})
};
},
cache: true
}
}).on('select2:select', function(e) {
var data = e.params.data;
// 품명 자동 설정
if(data.partName) {
// 품명 Select2에 옵션 추가 및 선택
var newOption = new Option(data.partName, data.partName, true, true);
$("#PART_NAME").append(newOption).trigger('change');
}
// hidden 필드에 OBJID 저장
$("#PART_OBJID").val(data.partObjid);
});
// 품명 Select2
$("#PART_NAME").select2({
placeholder: "품명 검색...",
allowClear: true,
width: '100%',
minimumInputLength: 1,
language: {
inputTooShort: function() { return "1글자 이상 입력하세요"; },
searching: function() { return "검색 중..."; },
noResults: function() { return "검색 결과가 없습니다"; }
},
ajax: {
url: '/contractMgmt/searchPartList.do',
dataType: 'json',
type: 'POST',
delay: 250,
data: function(params) { return { searchTerm: params.term }; },
processResults: function(data) {
return {
results: $.map(data, function(item) {
return {
id: item.PART_NAME || item.part_name,
text: item.PART_NAME || item.part_name,
partNo: item.PART_NO || item.part_no,
partObjid: item.OBJID || item.objid
};
})
};
},
cache: true
}
}).on('select2:select', function(e) {
var data = e.params.data;
// 품번 자동 설정
if(data.partNo) {
var newOption = new Option(data.partNo, data.partNo, true, true);
$("#PART_NO").append(newOption).trigger('change');
}
// hidden 필드에 OBJID 저장
$("#PART_OBJID").val(data.partObjid);
});
}
// 날짜 선택기 초기화
function fnc_datepick(){
var $dateinput = $("input.date_icon");
@@ -136,11 +227,19 @@ function fn_loadProjectInfo(projectObjid){
$("#CUSTOMER_OBJID").trigger("change.select2");
}
// 품번
$("#PART_NO").val(fnc_checkNull(info.part_no));
// 품번 (Select2)
var partNo = fnc_checkNull(info.part_no);
if(partNo != "") {
var newOption = new Option(partNo, partNo, true, true);
$("#PART_NO").append(newOption).trigger('change');
}
// 품명
$("#PART_NAME").val(fnc_checkNull(info.part_name));
// 품명 (Select2)
var partName = fnc_checkNull(info.part_name);
if(partName != "") {
var newOption = new Option(partName, partName, true, true);
$("#PART_NAME").append(newOption).trigger('change');
}
// 요청납기
$("#REQ_DEL_DATE").val(fnc_checkNull(info.req_del_date));
@@ -171,8 +270,9 @@ function fn_clearProjectInfo(){
$("#PRODUCT_CODE").val("").trigger("change");
$("#CATEGORY_CODE").val("").trigger("change");
$("#CUSTOMER_OBJID").val("").trigger("change");
$("#PART_NO").val("");
$("#PART_NAME").val("");
$("#PART_NO").val(null).trigger("change");
$("#PART_NAME").val(null).trigger("change");
$("#PART_OBJID").val("");
$("#REQ_DEL_DATE").val("");
$("#SERIAL_NO").val("");
$("#ORDER_QTY").val("");
@@ -353,11 +453,22 @@ function fn_save(){
<tr>
<td class="input_title"><label>품번<span class="required-mark">*</span></label></td>
<td>
<input type="text" name="PART_NO" id="PART_NO" value="${resultMap.part_no}">
<select name="PART_NO" id="PART_NO" style="width:100%;">
<option value="">선택</option>
<c:if test="${not empty resultMap.part_no}">
<option value="${resultMap.part_no}" selected>${resultMap.part_no}</option>
</c:if>
</select>
<input type="hidden" name="PART_OBJID" id="PART_OBJID" value="${resultMap.part_objid}">
</td>
<td class="input_title"><label>품명<span class="required-mark">*</span></label></td>
<td>
<input type="text" name="PART_NAME" id="PART_NAME" value="${resultMap.part_name}">
<select name="PART_NAME" id="PART_NAME" style="width:100%;">
<option value="">선택</option>
<c:if test="${not empty resultMap.part_name}">
<option value="${resultMap.part_name}" selected>${resultMap.part_name}</option>
</c:if>
</select>
</td>
<td class="input_title"><label>S/N</label></td>
<td>