25 lines
1.1 KiB
JavaScript
25 lines
1.1 KiB
JavaScript
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;
|
|
}
|
|
});
|