fix: [approvals] 거래처 선택 후 드롭다운이 다시 열리는 문제 수정

- 선택 시 selected 플래그 설정 + blur로 포커스 해제
- onInput/onFocus에서 selected 상태면 검색 차단
- 다시 직접 타이핑 시 selected 해제되어 검색 재개
This commit is contained in:
김보곤
2026-03-05 11:05:01 +09:00
parent 447c2152d2
commit 29c41165cc

View File

@@ -599,6 +599,7 @@ function vendorSearch(item) {
let dropdown = null;
let results = [];
let highlighted = -1;
let selected = false;
function removeDropdown() {
if (dropdown) { dropdown.remove(); dropdown = null; }
@@ -640,16 +641,20 @@ function renderDropdown(inputEl) {
item.vendor_id = results[idx].id;
item.vendor_biz_no = results[idx].biz_no || '';
inputEl.value = results[idx].name;
inputEl.dispatchEvent(new Event('input', { bubbles: true }));
selected = true;
}
removeDropdown();
inputEl.blur();
});
});
}
return {
onInput(value) {
if (selected) { selected = false; return; }
item.vendor = value;
item.vendor_id = null;
item.vendor_biz_no = '';
highlighted = -1;
clearTimeout(debounceTimer);
if (value.length < 1) { removeDropdown(); return; }
@@ -657,7 +662,8 @@ function renderDropdown(inputEl) {
},
onFocus() {
if (item.vendor && item.vendor.length >= 1) {
if (selected) return;
if (item.vendor && item.vendor.length >= 1 && !dropdown) {
this.search(item.vendor);
}
},
@@ -690,7 +696,9 @@ function renderDropdown(inputEl) {
item.vendor_id = p.id;
item.vendor_biz_no = p.biz_no || '';
this.$refs.vinput.value = p.name;
selected = true;
removeDropdown();
this.$refs.vinput.blur();
}
},
};