const raw = document.getElementById('property-stats').textContent const stats = JSON.parse(raw) function drawSparkline(card, pts) { if (!pts || pts.length < 2) return const w = 120, h = 32 const max = Math.max(...pts), min = Math.min(...pts) const range = max - min || 1 const coords = pts.map((v, i) => { const x = (i / (pts.length - 1)) * w const y = h - ((v - min) / range) * (h - 2) - 1 return `${x.toFixed(1)},${y.toFixed(1)}` }) const line = coords.join(' ') const fill = line + ` ${w},${h} 0,${h}` card.querySelector('.spark-line').setAttribute('points', line) card.querySelector('.spark-fill').setAttribute('points', fill) } function updateMetrics(period) { const d = stats[period] document.querySelectorAll('[data-metric]').forEach(card => { const metric = card.getAttribute('data-metric') const val = d[metric].total const pts = d[metric].points card.querySelector('.metric-value').textContent = val.toLocaleString('es-ES') drawSparkline(card, pts) }) } document.querySelectorAll('.w-tab-link').forEach(btn => { btn.addEventListener('click', () => { updateMetrics(btn.getAttribute('data-period')) }) }) // Carga 7d por defecto updateMetrics('7d')
Estado de la venta
Última modificación:

Preparación y fotos

Anuncio publicado

Visitas y feedback

Oferta y negociación

Arras firmadas

Última modificación:
Pendiente
En progreso
Completado
Estado de la venta
Última modificación:

Preparación y fotos

Anuncio publicado

Visitas y feedback

Oferta y negociación

Arras firmadas

Última modificación:
Pendiente
En progreso
Completado
Estado de la venta
Última modificación:

Preparación y fotos

Anuncio publicado

Visitas y feedback

Oferta y negociación

Arras firmadas

Pendiente
En progreso
Completado
Estado de la venta
Última modificación:

Preparación y fotos

Anuncio publicado

Visitas y feedback

Oferta y negociación

Arras firmadas

Pendiente
En progreso
Completado
Estado de la venta
Última modificación:

Preparación y fotos

Anuncio publicado

Visitas y feedback

Oferta y negociación

Arras firmadas

Pendiente
En progreso
Completado
Estado de la venta
Última modificación:

Preparación y fotos

Anuncio publicado

Visitas y feedback

Oferta y negociación

Arras firmadas

Pendiente
En progreso
Completado
Estado de la venta
Actualizado el
Preparación y fotos
Anuncio publicado
Visitas y feedback
Oferta y negociación
Venta firmada
Completado
En progreso
Pendiente
Visualizaciones
Visitas al detalle
Favoriteados
Contactos
Visualizaciones
Visitas al detalle
Favoriteados
Contactos
Visualizaciones
Visitas al detalle
Favoriteados
Contactos
Anuncio publicado
Anuncio publicado
Anuncio publicado
Anuncio publicado
Feedback de las visitas
No items found.
Precio de venta
290.000€
Podría estar limitando el
interés de los compradores.
Pequeño ajuste recomendado
para atraer más visitas.
Excelente precio: competitivo
y listo para generar ofertas.
Precio recomendado:
270.000€
Datos de la vivienda
Dirección:
Calle Vinya del Mar Nº 3A
Habitaciones:
3
Baños:
2
Superficie:
142
m2
Cedula de Habitabilidad:
Pendiente
Comparación con similares
Visualizaciones:
%
Vistas al detalle:
%
Contactos:
%