/* ===== tkuser 업체(공급업체) CRUD ===== */ let vendorsLoaded = false; let vendorsList = []; let selectedVendorIdTkuser = null; async function loadVendorsTab() { if (vendorsLoaded) return; vendorsLoaded = true; if (currentUser && ['admin', 'system'].includes(currentUser.role)) { document.getElementById('btnAddVendorTkuser')?.classList.remove('hidden'); } await loadVendorsList(); } async function loadVendorsList() { try { const isActive = document.getElementById('vendorFilterActiveTkuser')?.value; const search = document.getElementById('vendorSearchTkuser')?.value?.trim() || ''; const params = new URLSearchParams(); if (isActive !== '' && isActive !== undefined) params.set('is_active', isActive); if (search) params.set('search', search); const r = await api('/vendors?' + params.toString()); vendorsList = r.data || []; renderVendorsListTkuser(); } catch (e) { document.getElementById('vendorsListTkuser').innerHTML = `
${e.message}
등록된 업체가 없습니다.
'; return; } const isAdmin = currentUser && ['admin', 'system'].includes(currentUser.role); c.innerHTML = vendorsList.map(v => { return `