diff --git a/index.html b/index.html index c3abea7..df3c4bd 100644 --- a/index.html +++ b/index.html @@ -136,6 +136,7 @@ tbody tr.marked:hover{background:var(--green-bg)}
+
@@ -383,6 +384,45 @@ function loadTemplate() { setTimeout(() => document.getElementById('templateStatus').textContent = '', 3000); } +const KATO_REGIONS = { + '01': 'Акмолинская область', '02': 'Актюбинская область', + '03': 'Алматинская область', '04': 'Атырауская область', + '05': 'Западно-Казахстанская область', '06': 'Жамбылская область', + '07': 'Карагандинская область', '08': 'Костанайская область', + '09': 'Кызылординская область', '10': 'Мангистауская область', + '11': 'Туркестанская область', '12': 'Павлодарская область', + '13': 'Северо-Казахстанская область', '14': 'Восточно-Казахстанская область', + '15': 'Г.Алматы', '16': 'Г.Астана', '17': 'Г.Шымкент', + '18': 'Улытауская область', '19': 'Абайская область', + '20': 'Жетысуйская область', '21': 'Кызылординская область' +}; + +function fillOblast() { + const katoIx = dataColumns.indexOf('kato'); + const obIx = dataColumns.indexOf('oblast'); + if (katoIx === -1) { alert('Не найдена колонка КАТО'); return; } + if (obIx === -1) { alert('Не найдена колонка области. Добавьте колонку "Область" в файл.'); return; } + + let filled = 0; + allData.forEach(row => { + const kato = String(row[dataColumns[katoIx]] || '').trim(); + const code = kato.length >= 2 ? kato.substring(0, 2) : ''; + if (code && KATO_REGIONS[code] && !String(row[dataColumns[obIx]] || '').trim()) { + row[dataColumns[obIx]] = KATO_REGIONS[code]; + filled++; + } + }); + + if (filled > 0) { + initHierarchy(allData); + renderFilters(); + applyFilter(); + alert(`✅ Области проставлены для ${filled} строк`); + } else { + alert('Области уже заполнены или нет строк с пустыми областями'); + } +} + function autoProcess() { const raw = localStorage.getItem(TEMPLATE_KEY); if (!raw) return; @@ -464,6 +504,7 @@ dz.ondrop = e => { e.preventDefault(); dz.classList.remove('dragover'); if (e.da document.getElementById('saveTemplateBtn').onclick = saveTemplate; document.getElementById('loadTemplateBtn').onclick = loadTemplate; +document.getElementById('fillOblastBtn').onclick = fillOblast; updateTemplateStatus(); document.getElementById('markAllBtn').onclick = () => {