1) {
html += `✖`;
}
row.innerHTML = html;
// Обработчик удаления
if (segmentCount > 1) {
row.querySelector('.btn-del-segment').addEventListener('click', function() {
row.remove();
});
}
segmentsContainer.appendChild(row);
}
// Логика расчета и валидации
btnCalc.addEventListener('click', function() {
// Очистка предыдущих ошибок
document.querySelectorAll('.req-input').forEach(el => el.classList.remove('input-error'));
let hasError = false;
// Валидация базовых полей
const depthInput = document.getElementById('fund-depth');
if (!depthInput.value || parseFloat(depthInput.value) {
const len = parseFloat(row.querySelector('.seg-len').value);
const wid = parseFloat(row.querySelector('.seg-wid').value);
totalBaseMetric += (len * wid);
});
netVolume = totalBaseMetric * depth;
document.getElementById('res-base-label').textContent = "Общая площадь плиты:";
document.getElementById('res-base-val').textContent = totalBaseMetric.toFixed(2) + " м²";
}
const grossVolume = netVolume * (1 + margin);
// Вывод объемов
document.getElementById('res-net-vol').textContent = netVolume.toFixed(2) + " м³";
document.getElementById('res-gross-vol').textContent = grossVolume.toFixed(2) + " м³";
// Расчет и форматирование цены
const priceEl = document.getElementById('res-total-price');
if (price > 0) {
const totalPrice = grossVolume * price;
priceEl.textContent = new Intl.NumberFormat('ru-RU', { style: 'currency', currency: 'RUB', maximumFractionDigits: 0 }).format(totalPrice);
priceEl.style.color = '#27ae60';
} else {
priceEl.textContent = "Не указана цена за куб";
priceEl.style.color = '#777';
}
// Показываем блок результатов
resultsBox.style.display = 'block';
});
});
" />