feat(pdf): adicionar exportação de ficha do consultor em PDF

- Novo endpoint GET /api/v1/consultor/{id}/pdf para download
- Serviço PDFService usando WeasyPrint para geração
- Template HTML com layout padrão governo federal
- Botão de exportar PDF no card e modal de dados brutos
This commit is contained in:
Frederico Castro
2025-12-18 22:43:42 -03:00
parent 9d93e42a12
commit 47f0a80f3f
13 changed files with 1607 additions and 9 deletions

View File

@@ -133,6 +133,29 @@ export const rankingService = {
const response = await api.get(`/consultor/${idPessoa}/raw`);
return response.data;
},
async downloadFichaPDF(idPessoa, nomeConsultor = '') {
const response = await api.get(`/consultor/${idPessoa}/pdf`, {
responseType: 'blob',
});
const blob = new Blob([response.data], { type: 'application/pdf' });
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
const nomeSanitizado = nomeConsultor
.replace(/[^a-zA-Z0-9\s\-_]/g, '')
.substring(0, 30)
.trim();
const dataAtual = new Date().toISOString().split('T')[0].replace(/-/g, '');
link.download = `ficha_consultor_${idPessoa}_${nomeSanitizado}_${dataAtual}.pdf`;
document.body.appendChild(link);
link.click();
document.body.removeChild(link);
window.URL.revokeObjectURL(url);
},
};
export default api;