document.getElementById('reqForm').addEventListener('submit', async e => { e.preventDefault(); const form = e.target; const data = {}; new FormData(form).forEach((v,k)=>{ if(v) data[k]=v; }); // convert numbers if(data.area) data.area = Number(data.area); if(data.termMonths) data.termMonths = Number(data.termMonths); if(data.price) data.price = Number(data.price); const out = document.getElementById('out'); out.textContent = 'Отправка...'; try { const resp = await fetch('/api/contract', {method:'POST', headers:{'Content-Type':'application/json'}, body:JSON.stringify(data)}); const json = await resp.json(); if(json.ok) { const r = json.record; out.textContent = `Договор готов.\n\n${r.contract}\n\nФлаги: ${r.flags.length? r.flags.map(f=>f.message).join('; ') : 'нет'}\nОтклонения: ${r.deviations.length? r.deviations.map(d=>d.clause+': '+d.diff).join('\n') : 'нет'}`; } else { out.textContent = 'Ошибка: '+ JSON.stringify(json); } } catch(err) { out.textContent = 'Ошибка сети: '+ err; } });