Spaces:
Running
Running
| import React from 'react' | |
| import DataTable from './DataTable' | |
| function formatarProcessosAdministrativos(item) { | |
| const processosArray = Array.isArray(item?.processos_administrativos) | |
| ? item.processos_administrativos.map((valor) => String(valor || '').trim()).filter(Boolean) | |
| : [] | |
| if (processosArray.length) { | |
| return processosArray.join(' | ') | |
| } | |
| const processoResumo = String( | |
| item?.processos_administrativos_resumo || item?.processo_administrativo || '' | |
| ).trim() | |
| if (processoResumo) { | |
| return processoResumo | |
| } | |
| return 'Nenhum registrado' | |
| } | |
| function montarTabelaTrabalhos(trabalhos) { | |
| const lista = Array.isArray(trabalhos) ? trabalhos : [] | |
| const rows = lista.map((item) => { | |
| const imoveis = Array.isArray(item?.imoveis) ? item.imoveis : [] | |
| const enderecosTexto = imoveis | |
| .map((imovel) => String(imovel?.endereco || '').trim()) | |
| .filter(Boolean) | |
| .join(' | ') || '-' | |
| return { | |
| 'Trabalho Técnico': String(item?.trabalho_nome || item?.trabalho_id || '-').trim() || '-', | |
| Tipo: String(item?.tipo_label || '-').trim() || '-', | |
| 'Total de Imóveis': item?.total_imoveis ?? 0, | |
| Endereços: enderecosTexto, | |
| 'Processos SEI': formatarProcessosAdministrativos(item), | |
| } | |
| }) | |
| return { | |
| columns: ['Trabalho Técnico', 'Tipo', 'Total de Imóveis', 'Endereços', 'Processos SEI'], | |
| rows, | |
| } | |
| } | |
| export default function ModeloTrabalhosTecnicosPanel({ trabalhos }) { | |
| const lista = Array.isArray(trabalhos) ? trabalhos : [] | |
| if (!lista.length) { | |
| return <div className="empty-box">Nenhum trabalho técnico vinculado foi encontrado na base atual. Essa base ainda pode não estar completa.</div> | |
| } | |
| return ( | |
| <> | |
| <div className="section1-empty-hint modelo-trabalhos-tecnicos-disclaimer"> | |
| {lista.length} trabalho(s) técnico(s) utilizando este modelo foram encontrados na base atual. Essa base ainda pode não estar completa. | |
| </div> | |
| <DataTable table={montarTabelaTrabalhos(lista)} maxHeight={620} /> | |
| </> | |
| ) | |
| } | |