diff options
| author | joonhoekim <26rote@gmail.com> | 2025-10-03 14:36:04 +0900 |
|---|---|---|
| committer | joonhoekim <26rote@gmail.com> | 2025-10-03 14:36:04 +0900 |
| commit | 08e91ccdf68585c5f7499a33cffd19a04a7834aa (patch) | |
| tree | fdb6f92b63b75c541e6214d34b1c7bd812602b9d /components | |
| parent | fca5e37d43543ed1e6e680a779d340b1cc4427cd (diff) | |
(김준회) 벤더데이터 입력 템플릿 보기 문제 처리
Diffstat (limited to 'components')
| -rw-r--r-- | components/form-data/form-data-table.tsx | 13 | ||||
| -rw-r--r-- | components/form-data/spreadJS-dialog.tsx | 49 |
2 files changed, 61 insertions, 1 deletions
diff --git a/components/form-data/form-data-table.tsx b/components/form-data/form-data-table.tsx index 09745bb0..d5d79735 100644 --- a/components/form-data/form-data-table.tsx +++ b/components/form-data/form-data-table.tsx @@ -304,6 +304,19 @@ export default function DynamicTable({ const templateResult = await fetchTemplateFromSEDP(projectCode, formCode); + // 🔍 전달되는 템플릿 데이터 로깅 + console.log('📊 Template data received from SEDP:', { + count: Array.isArray(templateResult) ? templateResult.length : 'not array', + isArray: Array.isArray(templateResult), + data: templateResult + }); + + if (Array.isArray(templateResult)) { + templateResult.forEach((tmpl, idx) => { + console.log(` [${idx}] TMPL_ID: ${tmpl?.TMPL_ID || 'MISSING'}, NAME: ${tmpl?.NAME || 'N/A'}, TYPE: ${tmpl?.TMPL_TYPE || 'N/A'}`); + }); + } + setTemplateData(templateResult); setTemplateDialogOpen(true); diff --git a/components/form-data/spreadJS-dialog.tsx b/components/form-data/spreadJS-dialog.tsx index 272d99be..8243566a 100644 --- a/components/form-data/spreadJS-dialog.tsx +++ b/components/form-data/spreadJS-dialog.tsx @@ -202,6 +202,15 @@ export function TemplateViewDialog({ }, []); React.useEffect(() => { + // 🔍 받은 templateData 로깅 (디버깅용) + console.log('🎨 TemplateViewDialog received templateData:', { + isNull: templateData === null, + isUndefined: templateData === undefined, + isArray: Array.isArray(templateData), + length: Array.isArray(templateData) ? templateData.length : 'N/A', + data: templateData + }); + // 템플릿 데이터가 없거나 빈 배열인 경우 기본 GRD_LIST 템플릿 생성 if (!templateData || (Array.isArray(templateData) && templateData.length === 0)) { // columnsJSON이 있으면 기본 GRD_LIST 템플릿 생성 @@ -242,7 +251,17 @@ export function TemplateViewDialog({ templates = [templateData as TemplateItem]; } + // 🔍 각 템플릿의 TMPL_ID 확인 + console.log('🔍 Processing templates:', templates.length); + templates.forEach((tmpl, idx) => { + console.log(` [${idx}] TMPL_ID: ${tmpl?.TMPL_ID || '❌ MISSING'}, NAME: ${tmpl?.NAME || 'N/A'}, TYPE: ${tmpl?.TMPL_TYPE || 'N/A'}`); + if (!tmpl?.TMPL_ID) { + console.error(`❌ Template at index ${idx} is missing TMPL_ID:`, tmpl); + } + }); + const validTemplates = templates.filter(isValidTemplate); + console.log(`✅ Valid templates after filtering: ${validTemplates.length}`); // 유효한 템플릿이 없지만 columnsJSON이 있으면 기본 GRD_LIST 추가 if (validTemplates.length === 0 && columnsJSON && columnsJSON.length > 0) { @@ -272,17 +291,27 @@ export function TemplateViewDialog({ } setAvailableTemplates(validTemplates); + + // 🔍 최종 availableTemplates 로깅 + console.log('📋 availableTemplates set:', validTemplates.map(t => ({ + TMPL_ID: t.TMPL_ID, + NAME: t.NAME, + TYPE: t.TMPL_TYPE + }))); if (validTemplates.length > 0 && !selectedTemplateId) { const firstTemplate = validTemplates[0]; // 🔍 TMPL_ID 검증 (isValidTemplate로 필터링했으므로 존재해야 하지만 안전장치) if (firstTemplate?.TMPL_ID) { const templateTypeToSet = determineTemplateType(firstTemplate); + console.log(`🎯 Auto-selecting first template: ${firstTemplate.TMPL_ID} (${templateTypeToSet})`); setSelectedTemplateId(firstTemplate.TMPL_ID); setTemplateType(templateTypeToSet); } else { console.error('❌ First valid template has no TMPL_ID:', firstTemplate); } + } else if (selectedTemplateId) { + console.log(`ℹ️ Template already selected: ${selectedTemplateId}`); } }, [templateData, selectedTemplateId, isValidTemplate, determineTemplateType, columnsJSON]); @@ -307,10 +336,28 @@ export function TemplateViewDialog({ }; const selectedTemplate = React.useMemo(() => { + console.log('🔍 Finding template:', { + selectedTemplateId, + availableCount: availableTemplates.length, + availableIds: availableTemplates.map(t => t?.TMPL_ID) + }); + const found = availableTemplates.find(t => t?.TMPL_ID === selectedTemplateId); + if (!found && selectedTemplateId) { - console.warn('⚠️ Selected template not found:', selectedTemplateId); + console.warn('⚠️ Selected template not found:', { + searching: selectedTemplateId, + available: availableTemplates.map(t => t?.TMPL_ID), + availableTemplates: availableTemplates + }); + } else if (found) { + console.log('✅ Template found:', { + TMPL_ID: found.TMPL_ID, + NAME: found.NAME, + TYPE: found.TMPL_TYPE + }); } + return found; }, [availableTemplates, selectedTemplateId]); |
