:root{--bg:#f7fafc;--card:#ffffff;--accent:#0ea5a4;--muted:#6b7280}
body{font-family:Inter,system-ui,Segoe UI,Roboto,Arial;margin:0;background:var(--bg);color:#0f172a}
.container{max-width:880px;margin:32px auto;padding:24px}
.card{background:var(--card);border-radius:12px;box-shadow:0 6px 24px rgba(2,6,23,0.08);padding:20px}
h1{margin:0 0 8px;font-size:20px}
p.lead{margin:0 0 18px;color:var(--muted)}
.grid{display:grid;grid-template-columns:repeat(2,1fr);gap:12px}
label{display:block;font-size:13px;margin-bottom:6px}
input[type=text], input[type=number], select, textarea{width:100%;padding:10px;border:1px solid #e6e8eb;border-radius:8px;font-size:14px}
textarea{min-height:100px}
.full{grid-column:1/-1}
.muted{color:var(--muted);font-size:13px}
.row{display:flex;gap:8px;align-items:center}
.btn{background:var(--accent);color:white;padding:10px 14px;border-radius:10px;border:0;cursor:pointer}
.btn.secondary{background:#111827}
.result{background:#f1f5f9;border-radius:8px;padding:12px;margin-top:12px}
.small{font-size:13px}
@media (max-width:720px){.grid{grid-template-columns:1fr}}
Kutu Harf Tabela Talep Formu
Bu formu doldurarak projenize özel ön bilgi ve yaklaşık fiyat aralığı alabilirsiniz. Lütfen mümkün olduğunca ayrıntı verin.
Boyutu metre veya milimetre ile belirtin. Net ölçü verirseniz daha doğru fiyat aralığı hesaplanır.
Bina kat yüksekliği veya yerden yüksekliği girin.
Upload edilirse proje değerlendirmesi daha kesin olur.
const form = document.getElementById('tabelaForm');
const sonuc = document.getElementById('sonuc');
const temizle = document.getElementById('temizle');
function clamp(v,min,max){return Math.max(min,Math.min(max,v))}
function tahminiFiyatVerisi(data){
// Basit bir ön hesaplama. Gerçek teklif değildir; proje şartlarına göre değişir.
let min=3500, max=15000;
// malzeme etkisi
const malzeme = data.malzeme;
if(malzeme==='aluminyum'){ min*=1.08; max*=1.08 }
if(malzeme==='paslanmaz'){ min*=1.22; max*=1.22 }
if(malzeme==='pleksi'){ min*=0.96; max*=0.96 }
// yükseklik etkisi
const yukseklik = parseFloat(data.yukseklik) || 0;
if(yukseklik>6) { min*=1.18; max*=1.18 }
else if(yukseklik>3) { min*=1.08; max*=1.08 }
// montaj yeri
if(data.montajYeri==='yuksek-kat'){ min*=1.15; max*=1.15 }
// vinç gerekiyorsa
if(data.vinc==='evet'){ min*=1.12; max*=1.12 }
// adet ve boyut etkisi (basit)
const adet = parseInt(data.adet) || 1;
if(adet>1){ min*= (1 + (adet-1)*0.06); max*= (1 + (adet-1)*0.04) }
// sonuçları yuvarla
min = Math.round(min/50)*50; max = Math.round(max/50)*50;
// sınırlandır
min = clamp(min, 1500, 50000); max = clamp(max, min, 100000);
return {min,max}
}
form.addEventListener('submit', function(e){
e.preventDefault();
const fd = new FormData(form);
const data = Object.fromEntries(fd.entries());
// Basit doğrulama
if(!data.tabelaCesidi || !data.boyut || !data.yukseklik || !data.il || !data.ilce || !data.isim || !data.telefon){
alert('Lütfen yıldızlı/zaruri alanları doldurun.');
return;
}
const fiyat = tahminiFiyatVerisi(data);
const ozet = {
'Tabela Çeşidi': data.tabelaCesidi,
'Malzeme': data.malzeme || 'Belirtilmemiş',
'Boyut': data.boyut,
'Adet': data.adet,
'Montaj Yeri': data.montajYeri,
'Montaj Yüksekliği (m)': data.yukseklik,
'Vinç Gerekli mi': data.vinc,
'İl / İlçe': data.il + ' / ' + data.ilce,
'İsim': data.isim,
'Telefon': data.telefon,
'E-posta': data.email || '-',
'Ek Notlar': data.not || '-',
'Tahmini Fiyat Aralığı (ön bilgi)': `${fiyat.min.toLocaleString('tr-TR')} TL — ${fiyat.max.toLocaleString('tr-TR')} TL`
}
// Gösterim
sonuc.style.display = 'block';
sonuc.innerHTML = 'Ön Bilgi / Özeti
' +
Object.entries(ozet).map(([k,v])=>`
${k}: ${v}
`).join('') + '
' + '
Bu rakamlar yaklaşık ön bilgi amaçlıdır. Kesin teklif için ücretsiz keşif veya fotoğraf gönderimi yapabilirsiniz.
'; // Burada form verisini sunucuya göndermek isterseniz fetch ile API'ye yollayabilirsiniz.
// Örnek (yorum satırı):
// fetch('/api/teklif', {method:'POST', body:fd})
})
temizle.addEventListener('click', ()=>{ form.reset(); sonuc.style.display='none' })