Files
leadradar/frontend/components/metrics.py
T

62 lines
1.9 KiB
Python

import streamlit as st
def render_metrics_summary(leads: list):
total = len(leads)
novos = sum(1 for l in leads if l.get('status_funil') == 'novo')
contatados = sum(1 for l in leads if l.get('status_funil') == 'contatado')
negociacao = sum(1 for l in leads if l.get('status_funil') == 'negociacao')
ganhos = sum(1 for l in leads if l.get('status_funil') == 'ganho')
taxa_conversao = (ganhos / total * 100) if total > 0 else 0.0
c1, c2, c3, c4, c5 = st.columns(5)
with c1:
st.markdown(
f"""
<div class="metric-card">
<div class="metric-title">Total de Leads</div>
<div class="metric-value">{total}</div>
</div>
""", unsafe_allow_html=True
)
with c2:
st.markdown(
f"""
<div class="metric-card">
<div class="metric-title">Leads Novos</div>
<div class="metric-value" style="color: #58A6FF;">{novos}</div>
</div>
""", unsafe_allow_html=True
)
with c3:
st.markdown(
f"""
<div class="metric-card">
<div class="metric-title">Em Negociação</div>
<div class="metric-value" style="color: #F0883E;">{negociacao}</div>
</div>
""", unsafe_allow_html=True
)
with c4:
st.markdown(
f"""
<div class="metric-card">
<div class="metric-title">Ganhos</div>
<div class="metric-value" style="color: #3FB950;">{ganhos}</div>
</div>
""", unsafe_allow_html=True
)
with c5:
st.markdown(
f"""
<div class="metric-card">
<div class="metric-title">Taxa Conversão</div>
<div class="metric-value" style="color: #A371F7;">{taxa_conversao:.1f}%</div>
</div>
""", unsafe_allow_html=True
)