feat(raw-data): adicionar visualização de dados brutos do ATUACAPES
- Novo endpoint GET /api/v1/consultor/{id}/raw para buscar documento completo do ES
- Novo componente RawDataModal com formatação inteligente de campos
- Botão de acesso rápido no ConsultorCard (ícone ⋮)
- Melhorias de estilo no Header e ConsultorCard
This commit is contained in:
@@ -1,5 +1,6 @@
|
||||
import React, { useState, useRef, useEffect, useMemo, memo } from 'react';
|
||||
import './ConsultorCard.css';
|
||||
import RawDataModal from './RawDataModal';
|
||||
|
||||
const SELOS = {
|
||||
PRESID_CAMARA: { label: 'Presidente Camara', cor: 'selo-camara', icone: '👑' },
|
||||
@@ -185,6 +186,7 @@ const ScoreItemWithTooltip = ({ value, label, formula, style }) => (
|
||||
|
||||
const ConsultorCard = memo(({ consultor, highlight, selecionado, onToggleSelecionado }) => {
|
||||
const [expanded, setExpanded] = useState(false);
|
||||
const [showRawModal, setShowRawModal] = useState(false);
|
||||
const cardRef = useRef(null);
|
||||
|
||||
useEffect(() => {
|
||||
@@ -213,6 +215,11 @@ const ConsultorCard = memo(({ consultor, highlight, selecionado, onToggleSelecio
|
||||
onToggleSelecionado(consultor);
|
||||
};
|
||||
|
||||
const handleRawDataClick = (e) => {
|
||||
e.stopPropagation();
|
||||
setShowRawModal(true);
|
||||
};
|
||||
|
||||
const { consultoria, pontuacao } = consultor;
|
||||
const blocoA = pontuacao?.bloco_a || { total: consultor.bloco_a || 0 };
|
||||
const blocoB = pontuacao?.bloco_b || { total: consultor.bloco_b || 0 };
|
||||
@@ -278,6 +285,13 @@ const ConsultorCard = memo(({ consultor, highlight, selecionado, onToggleSelecio
|
||||
<div className="score-value">{pontuacaoTotal}</div>
|
||||
<div className="stat-label">Score</div>
|
||||
</div>
|
||||
<button
|
||||
className="btn-raw-data"
|
||||
onClick={handleRawDataClick}
|
||||
title="Ver dados completos do ATUACAPES"
|
||||
>
|
||||
⋮
|
||||
</button>
|
||||
<div className="expand-icon">{expanded ? '▲' : '▼'}</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -474,6 +488,14 @@ const ConsultorCard = memo(({ consultor, highlight, selecionado, onToggleSelecio
|
||||
)}
|
||||
</div>
|
||||
)}
|
||||
|
||||
{showRawModal && (
|
||||
<RawDataModal
|
||||
idPessoa={consultor.id_pessoa}
|
||||
nome={consultor.nome}
|
||||
onClose={() => setShowRawModal(false)}
|
||||
/>
|
||||
)}
|
||||
</div>
|
||||
);
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user