Logo CEWEB.br Logo NIC.br Logo CGI.br
Home Sobre o projeto

Sites Verificados

Lista com todos os sítios que foram verificados pela TIC Web Acessibilidade. Dentro de cada domínio, há informações detalhadas sobre as páginas coletadas, bem como os erros e avisos de cada uma *.

Endereço Nota Erros Avisos

www.taiobeiras.mg.gov.br/portal/obras/10

87.4 3 207
Recomendações Avaliadas
2.2 Garantir que os objetos programáveis sejam acessíveis.

Recomendações

Número Descrição Quantidade Linhas Código Fonte
2.2.6 Presença do elemento SCRIPT sem o elemento NOSCRIPT 10 71 2696 2710 2727 3807 3963 4642 4676 5610 5774
71 <![CDATA[<script> /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* GLOBAIS */ /* MAPA */ var leafLetMap; // MAPA var leafLetMapCenter; // CENTRO DO MAPA var markers = []; // ARRAY COM SO MARCADORES var markersAgrupados = {}; // ARRAY COM SO MARCADORES AGRUPADOS const cidadeLatLng = [-15.8143, -42.2274]; // LAT LNG DA CIDADE const zoomMax = 18; // ZOOM MAXIMO const zoomMin = 11; // ZOOM MINIMO /* MAPA */ /* OBRAS */ const seguirObra = false; /* OBRAS */ /* LAYOUT */ var divMenuObras; var botaoMenuDetalhes; // REFERENCIA GLOBAL DO BOTAO DETRALHES var botaoVerMapa = $("#btn_ver_mapa"); /* LAYOUT */ /* PAGINA */ var $document; var $window; var $body; /* PAGINA */ /* FILTROS */ var dadosExibir; // AUXILIAR PARA EXIBICAO DOS DADOS APÓS A FILTRAGEM var formFiltrar; var inputPeriodoInicial; var inputPeriodoFinal; var inputsBairro; var inputsLogradouro; var inputsCategoria; var inputsSituacao; var inputPalavraChave; var selectRelatorioFiltroAno; var divsRelatorioInfo; var divRelatorioTotalExecutadas; var divRelatorioTotalConcluidas; var divRelatorioTotalEmAndamento; var divRelatorioTotalSuspensas; var divRelatorioTotalEmProjeto; var divRelatorioTotalAcompanhamentos; var divRelatorioTotalContratos; var divRelatorioTotalValor; var filtrosFormulario; /* FILTROS */ /* LISTAGEM */ var divAreaListagem; var divResultados; var spanQtdeResultado; var spanObrasEncontradas; var divListagemObras; /* LISTAGEM */ /* DETALHES */ var divAreaDetalhes; var btnSeguirObra; var btnAvaliarObra; var divCategoriaObra; var divLocalizacaoObra; var divEditalObra; var divContratoObra; var divEmpresaObra; var divFiscalObra; var divValorObra; var divValorPagoObra; var spanValorPago; var divDescricao; var divFonteRecurso; var divMotivoParalisacao; var divExecucaoObra; var divSituacao; var spanSituacao; var divDataInicio; var divDataFim; var divObraAtraso; var divAcompanhamentosObras; var divTotalAcompanhamentos; var spanTotalPorcentagem; var divFotosObra; var divContFotos; var divVideosObra; var divArquivosObra; var divSecretariasObra; var divValorContrato; var spanValorContrato; var divValorUtilizado; var spanValorPagoFinal; // var divPrazoEstimado; var divPrazoRealizacao; /* DETALHES */ /* PAGINACAO */ const qtdePorPagina = 100; var selectPagina; var divAvancaPagina; var divVoltaPagina; /* PAGINACAO */ /* MODELOS */ const htmlSecretariaModelo = '<a href="" class="obr_secretaria_modelo">'+ '<div class="obr_secretaria_vinculada">'+ '<div class="obr_area_img_secretaria"><img src="" alt=""></div>'+ '<div class="obr_area_info_secretaria">'+ '<div class="obr_nome_secretaria sw_lato_black"></div>'+ '</div>'+ '</div>'+ '</a>'; const secretariaModelo = $(htmlSecretariaModelo); const htmlArquivoMoldeo = '<a href="" class="obr_arquivo_modelo" target="_blank">'+ '<div class="sw_arquivo_download">'+ '<div class="sw_icone_arquivo_download"><img src="" alt=""></div>'+ '<div class="sw_info_arquivo_download">'+ '<div class="sw_data_arquivo_download sw_lato"></div>'+ '<div class="sw_nome_arquivo_download sw_lato_bold"></div>'+ '</div>'+ '</div>'+ '</a>'; const arquivoModelo = $(htmlArquivoMoldeo); const htmlVideoModelo = '<div class="obr_video_obra obr_video_modelo">'+ '<div class="obr_img_video">'+ '<img src="" alt="">'+ '<span class="swfa fas fa-play"></span>'+ '</div>'+ '<div class="obr_data_video"></div>'+ '<div class="obr_nome_video sw_lato_black"></div>'+ '<div class="obr_assistir_video sw_lato_medium">ASSISTIR</div>'+ '<input type="hidden" value="">'+ '</div>'; const videoModelo = $(htmlVideoModelo); const htmlFotoModelo = '<div class="vinc_cont_img_galeria_fotos obr_foto_modelo">'+ '<div class="vinc_img_galeria_fotos">'+ '<span class="swfa fas fa-search-plus" aria-hidden="true"></span>'+ '<img src="" alt="">'+ '</div>'+ '</div>'; const fotoModelo = $(htmlFotoModelo); const htmlAcompanhamentoModelo = '<div class="sw_linha_lista_detalhes obr_acompanhamento_info obr_acompanhamento_modelo" style="display: none;">'+ '<div class="obr_cont_acompanhamento_obra">'+ '<div class="obr_area_porcentagem_obra sw_lato_black">'+ '<div class="obr_barra_porcentagem_acompanhamento">'+ '<div class="obr_porcentagem_acompanhamento">'+ '<span style="min-width: 40%">40%</span>'+ '</div>'+ '</div>'+ '</div>'+ '<div class="obr_area_info_acompanhamento_obra">'+ '<div class="sw_lato_medium">'+ '<span class="obr_data_acompanhamento">10 jan 2020</span>'+ '<div class="obr_descricao_acompanhamento sw_lato_bold"></div>'+ '<span class="obr_situacao_acompanhamento"></span>'+ '<div class="obr_link_obra obr_link_ver_fotos"><span class="obr_txt_link_obra">ver fotos</span><span class="swfa fas fa-camera"></span></div>'+ '</div>'+ '</div>'+ '</div>'+ '</div>'; const acompanhamentoModelo = $(htmlAcompanhamentoModelo); const htmlItemListaObraModelo = '<div class="obr_item_listagem obr_item_listagem_modelo" data-id="">'+ '<div class="obr_area_titulo_obra">'+ '<div class="obr_categoria_obra sw_lato">'+ '<div class="obr_cont_categoria_obra">'+ '<span class="swfa fa"></span>'+ '<span class="obr_txt_categoria"></span>'+ '</div>'+ '</div>'+ '<div class="obr_titulo_obra sw_lato_black"></div>'+ '</div>'+ '<div class="obr_area_info_obra sw_lato">'+ '<div class="obr_info_obra obr_info_obra_situacao">'+ '<div class="obr_titulo_info sw_lato_black">Situação</div>'+ '<div class="obr_descricao_info"><span class="obr_situacao"></span></div>'+ '</div>'+ '<div class="obr_info_obra obr_info_obra_dt_inicio">'+ '<div class="obr_titulo_info sw_lato_black">Data Início</div>'+ '<div class="obr_descricao_info"></div>'+ '</div>'+ '<div class="obr_info_obra obr_info_obra_dt_fim">'+ '<div class="obr_titulo_info sw_lato_black">Data Fim</div>'+ '<div class="obr_descricao_info"></div>'+ '</div>'+ '<div class="obr_info_obra obr_info_obra_valor">'+ '<div class="obr_titulo_info sw_lato_black">Valor</div>'+ '<div class="obr_descricao_info"><span class="obr_valor_obra sw_lato_black"></span></div>'+ '</div>'+ '<div class="obr_info_obra obr_info_obra_contrato">'+ '<div class="obr_titulo_info sw_lato_black">Contrato</div>'+ '<div class="obr_descricao_info"></div>'+ '</div>'+ '<div class="obr_info_obra obr_info_obra_edital">'+ '<div class="obr_titulo_info sw_lato_black">Edital</div>'+ '<div class="obr_descricao_info"></div>'+ '</div>'+ '<div class="obr_area_link_obra_listagem">'+ '<div class="obr_link_obra obr_link_ver_obra"><span class="obr_txt_link_obra">ver obra</span><span class="swfa fas fa-search"></span></div>'+ '<div class="obr_link_obra obr_link_ver_fotos"><span class="obr_txt_link_obra">ver fotos</span><span class="swfa fas fa-camera"></span></div>'+ '</div>'+ '</div>'+ '</div>'; const itemListaObraModelo = $(htmlItemListaObraModelo); /* MODELOS */ /* INICIANDO VARIAVEIS */ $(document).ready(function(){ $document = $(document); $window = $(window); $body = $("body"); divMenuObras = $("#obr_menu"); botaoMenuDetalhes = $("button[data-menu=obr_content_detalhes]"); botaoVerMapa = $("#btn_ver_mapa"); formFiltrar = $("#obr_form_filtro"); inputPeriodoInicial = $("#obr_periodo_inicial"); inputPeriodoInicial.datepicker(); inputPeriodoInicial.mask("99/99/9999"); inputPeriodoFinal = $("#obr_periodo_final"); inputPeriodoFinal.datepicker(); inputPeriodoFinal.mask("99/99/9999"); inputsBairro = $(".obr_filtro_bairro"); inputsLogradouro = $(".obr_filtro_logradouro"); inputsCategoria = $(".obr_filtro_categoria"); inputsSituacao = $(".obr_filtro_situacao"); inputPalavraChave = $("#obr_palavra_chave"); selectRelatorioFiltroAno = $("#obr_filtro_ano"); divsRelatorioInfo = $(".obr_area_info_relatorio_obras"); divRelatorioTotalExecutadas = divsRelatorioInfo.find(".obr_total_executadas"); divRelatorioTotalConcluidas = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_concluida"); divRelatorioTotalEmAndamento = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_em_andamento"); divRelatorioTotalSuspensas = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_suspensa"); divRelatorioTotalEmProjeto = divsRelatorioInfo.find(".obr_numero_info.obr_situacao.obr_situacao_em_projeto"); divRelatorioTotalAcompanhamentos = divsRelatorioInfo.find(".obr_total_acompanhamentos"); divRelatorioTotalContratos = divsRelatorioInfo.find(".obr_total_contratos"); divRelatorioTotalValor = divsRelatorioInfo.find(".obr_valor_obra"); filtrosFormulario = divMenuObras.find(".obr_formulario_filtro:not(.obr_relatorio)"); divAreaListagem = $(".obr_area_listagem"); divResultados = $(".sw_area_info_resultado_busca"); spanQtdeResultado = $("#span_qtde_obras_encontradas"); spanObrasEncontradas = $("#span_obras_encontradas"); divListagemObras = $(".obr_info_listagem_obras"); divAreaDetalhes = $(".obr_area_detalhes_obra"); btnSeguirObra = divAreaDetalhes.find('#sw_btn_seguir_ferramenta'); btnAvaliarObra = divAreaDetalhes.find('#sw_btn_avaliar'); divCategoriaObra = divAreaDetalhes.find(".obr_categoria_obra"); divLocalizacaoObra = divAreaDetalhes.find(".obr_localizacao"); divEditalObra = divAreaDetalhes.find(".obr_edital"); divContratoObra = divAreaDetalhes.find(".obr_contrato"); divEmpresaObra = divAreaDetalhes.find(".obr_empresa"); divFiscalObra = divAreaDetalhes.find(".obr_fiscal"); divValorObra = divAreaDetalhes.find("div.obr_valor_obra"); divValorPagoObra = divAreaDetalhes.find("div.obr_valor_pago"); divDescricao = divAreaDetalhes.find("div.obr_descricao"); divFonteRecurso = divAreaDetalhes.find("div.obr_fonte_recurso"); divMotivoParalisacao = divAreaDetalhes.find("div.obr_motivo_paralisacao"); spanValorPago = divValorPagoObra.find("span"); divExecucaoObra = divAreaDetalhes.find(".obr_execucao"); divSituacao = divExecucaoObra.find(".obr_situacao_atual"); spanSituacao = divSituacao.find("span.obr_situacao"); divDataInicio = divExecucaoObra.find(".obr_data_inicio"); divDataFim = divExecucaoObra.find(".obr_data_fim"); divObraAtraso = divExecucaoObra.find(".obr_atraso"); divAcompanhamentosObras = divAreaDetalhes.find("div.obr_cont_detalhes.obr_acompanhamentos"); divTotalAcompanhamentos = divAreaDetalhes.find(".sw_linha_lista_detalhes.obr_total_acompanhamentos"); spanTotalPorcentagem = divTotalAcompanhamentos.find(".obra_porcentagem_concluida"); divFotosObra = divAreaDetalhes.find(".obr_obra_fotos"); divContFotos = divFotosObra.find('.vinc_cont_galeria_fotos_vinculada'); divVideosObra = divAreaDetalhes.find("div.obr_obra_videos div.obr_area_videos_obra"); divArquivosObra = divAreaDetalhes.find("div.obr_obra_arquivos"); divSecretariasObra = divAreaDetalhes.find(".obr_obra_secretarias"); divValorContrato = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_valor_contratado"); spanValorContrato = divValorContrato.find("span"); divValorUtilizado = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_valor_utilizado"); spanValorPagoFinal = divValorUtilizado.find("span"); // divPrazoEstimado = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_prazo_dias"); divPrazoRealizacao = divAreaDetalhes.find("div.obr_cont_estatisticas_barra.obr_total_dias"); selectPagina = $(".obr_select_paginacao_listagem"); divAvancaPagina = $(".obr_avanca_pagina"); divVoltaPagina = $(".obr_volta_pagina"); /* CAPTURA DADOS PARA O GRÁFICO DE CATEGORIAS */ var dados_grafico_categorias = $("#dados_grafico_categorias").val(); if(dados_grafico_categorias != undefined) { dados_grafico_categorias = decodeURIComponent(dados_grafico_categorias); dados_grafico_categorias = JSON.parse(dados_grafico_categorias); // GRÁFICO DE PIZZA -- RELAÇÃO DE OBRAS COM CATEGORIAS if(dados_grafico_categorias.length > 0) { Highcharts.chart('obr_grafico_categoria', { chart: { plotBackgroundColor: null, plotBorderWidth: null, plotShadow: false, type: 'pie' }, title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por categorias</span>' }, plotOptions: { pie: { allowPointSelect: true, cursor: 'pointer', dataLabels: { enabled: false }, showInLegend: true } }, series: [{ name: 'Quantidade', colorByPoint: true, data: dados_grafico_categorias }], tooltip: { pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>' }, }); } } /* CAPTURA DADOS PARA O GRÁFICO DE FONTE DE RECURSO */ var dados_grafico_fonte_recurso = $("#dados_fonte_recurso").val(); if(dados_grafico_fonte_recurso != undefined) { dados_grafico_fonte_recurso = decodeURIComponent(dados_grafico_fonte_recurso); dados_grafico_fonte_recurso = JSON.parse(dados_grafico_fonte_recurso); // GRÁFICO DE PIZZA -- FONTE DE RECURSO if(dados_grafico_fonte_recurso.length > 0) { Highcharts.chart('obr_grafico_fonte_recurso', { chart: { plotBackgroundColor: null, plotBorderWidth: null, plotShadow: false, type: 'pie' }, title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por fonte de recurso</span>' }, plotOptions: { pie: { allowPointSelect: true, cursor: 'pointer', dataLabels: { enabled: false }, showInLegend: true } }, series: [{ name: 'Quantidade', colorByPoint: true, data: dados_grafico_fonte_recurso }], tooltip: { pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>' }, }); } } /* CAPTURA DADOS PARA O GRÁFICO DOS MOTIVOS DE PARALISAÇÃO */ var dados_grafico_motivo_paralisacao = $("#dados_motivo_paralisacao").val(); if(dados_grafico_motivo_paralisacao != undefined) { dados_grafico_motivo_paralisacao = decodeURIComponent(dados_grafico_motivo_paralisacao); dados_grafico_motivo_paralisacao = JSON.parse(dados_grafico_motivo_paralisacao); // GRÁFICO DE PIZZA -- MOTIVOS DA PARALISAÇÃO if(dados_grafico_motivo_paralisacao.length > 0) { Highcharts.chart('obr_grafico_motivo_paralisacao', { chart: { plotBackgroundColor: null, plotBorderWidth: null, plotShadow: false, type: 'pie' }, title: { text: '<span class="sw_lato_black" style="font-size:16px;">Obras por motivos de paralisação</span>' }, plotOptions: { pie: { allowPointSelect: true, cursor: 'pointer', dataLabels: { enabled: false }, showInLegend: true } }, series: [{ name: 'Quantidade', colorByPoint: true, data: dados_grafico_motivo_paralisacao }], tooltip: { pointFormat: '{series.name}: <span style="padding:0"><strong>{point.y}</strong></span>' }, }); } } // ADAPTAÇÃO NO MÉTODO 'CONTAINS' DO JQUERY PARA FILTRAR CASE INSENSITIVE E REMOVER ACENTUAÇÃO jQuery.expr[':'].instarcontains = function(a, i, m) { return jQuery(a).text() .replace(/[áàãâä]/gi,"a") .replace(/[éèê]/gi,"e") .replace(/[íìïî]/gi,"i") .replace(/[óòöôõ]/gi,"o") .replace(/[úùüû]/gi, "u") .replace(/[ç]/gi, "c") .replace(/[ñ]/gi, "n") .replace(/[^a-zA-Z0-9]/g," ") .toUpperCase() .indexOf(m[3] .replace(/[áàãâä]/gi,"a") .replace(/[éèê]/gi,"e") .replace(/[íìïî]/gi,"i") .replace(/[óòöôõ]/gi,"o") .replace(/[úùüû]/gi, "u") .replace(/[ç]/gi, "c") .replace(/[ñ]/gi, "n") .replace(/[^a-zA-Z0-9]/g," ") .toUpperCase() ) >= 0; }; }); /* INICIANDO VARIAVEIS */ /* GLOBAIS */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* FUNCAO CRIA O MAPA */ function Mapa(idElementoMapa, renderizarRelatorio = true) { markers = []; // DADOS var pontos = [{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.812681228174494","longitude":"-42.22603797912598","icone":"angle-double-left","cor_fundo_circulo":"#81b6a5","cor_marcador":"#81b6a5","cor_icone":"#ffffff","nome_categoria":"Construções de quadras esportivas (sem cobertura)","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/4\/69df1f4009f557e9f1526b6607b2efdc.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Quadra de Futebol Society na Praça de Esportes<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construções de quadras esportivas (sem cobertura)<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_concluida\">Concluído<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Centro<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Praça de Esportes, s\/n, <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"4\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":5,"situacao":"Concluído","bairro":"Centro","logradouro_completo":"Praça de Esportes, s\/n, ","logradouro":"Praça de Esportes, s\/n","dt_inicio":1648436400,"dt_inicio_string":"28\/03\/2022","dt_fim":1663210800,"dt_fim_string":"15\/09\/2022","valor":"493.000,00","valor_pago":null,"titulo":"Quadra de Futebol Society na Praça de Esportes","codigo":4,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1813","nome":"Tomada de Preço - TP 004.2022 - (CONSTRUÇÃO DE QUADRA DE FUTEBOL SOCIETY)","numero":4,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/4\/69df1f4009f557e9f1526b6607b2efdc.jpg","legenda":"Quadra de Futebol Society 2"},{"arquivo":"\/fotos\/obras\/4\/84c7c5160e34c05f705b06ce648c9861.jpg","legenda":"Quadra de Futebol Society 3"},{"arquivo":"\/fotos\/obras\/4\/cec825b0a9eda02e39b977d56cb410e4.jpg","legenda":"Quadra de Futebol Society"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Fabio Rodrigues Cardoso","fiscal":"Arthur Herbert P. Soares","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.812681228174494","longitude":"-42.22603797912598","icone":"angle-double-left","cor_fundo_circulo":"#81b6a5","cor_marcador":"#81b6a5","cor_icone":"#ffffff","nome_categoria":"Construções de quadras esportivas (sem cobertura)","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/5\/c8c9a4cfa75e32456498de87844819b4.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Quadra de Beach Tennis, Vôlei de Praia, Peteca e Basquete<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construções de quadras esportivas (sem cobertura)<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_concluida\">Concluído<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Centro<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Praça de Esportes, s\/n, <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"5\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":5,"situacao":"Concluído","bairro":"Centro","logradouro_completo":"Praça de Esportes, s\/n, ","logradouro":"Praça de Esportes, s\/n","dt_inicio":1647918000,"dt_inicio_string":"22\/03\/2022","dt_fim":1668481200,"dt_fim_string":"15\/11\/2022","valor":"504.764,40","valor_pago":null,"titulo":"Quadra de Beach Tennis, Vôlei de Praia, Peteca e Basquete","codigo":5,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1812","nome":"Tomada de Preço - TP 003.2022 - (CONSTRUÇÃO DE QUADRAS DE BEACH TÊNIS E OUTROS)","numero":3,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/5\/c8c9a4cfa75e32456498de87844819b4.jpg","legenda":"Quadra de Beach Tennis e outros"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Antônio Coelho Campos","fiscal":"Wesley Miranda de Sena","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.800499919443892","longitude":"-42.22378492355347","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/6\/13fa880c8deb9899dbf4a2c9f38fa2ca.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação em blocos sextavados de concreto e obras complementares<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Bom Jardim<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Tóquio e Belo Horizonte, <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"6\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Andamento","bairro":"Bom Jardim","logradouro_completo":"Tóquio e Belo Horizonte, ","logradouro":"Tóquio e Belo Horizonte","dt_inicio":1651201200,"dt_inicio_string":"29\/04\/2022","dt_fim":1674097200,"dt_fim_string":"19\/01\/2023","valor":"273.904,29","valor_pago":null,"titulo":"Pavimentação em blocos sextavados de concreto e obras complementares","codigo":6,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1817","nome":"Tomada de Preço - TP 008.2022 - (OBRA DE PAVIMENTAÇÃO)","numero":8,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/6\/13fa880c8deb9899dbf4a2c9f38fa2ca.jpg","legenda":"Pav-1"},{"arquivo":"\/fotos\/obras\/6\/6371110693a42f74b6a6ab92a635115f.jpg","legenda":"Pav-2"},{"arquivo":"\/fotos\/obras\/6\/80c9e94833365606ad003b1c70238a63.jpg","legenda":"Pav-3"},{"arquivo":"\/fotos\/obras\/6\/2869ae62634cc38d0d73c6aa5faaf4aa.jpg","legenda":"Pav-4"},{"arquivo":"\/fotos\/obras\/6\/fe1dd147b4efb3adedc9568292c09c7e.jpg","legenda":"Pav-5"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Vinicius Hiago Sarmento de Carvalho","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.806838420734739","longitude":"-42.217004299163825","icone":"angle-double-left","cor_fundo_circulo":"#36ce87","cor_marcador":"#36ce87","cor_icone":"#ffffff","nome_categoria":"Construções de praças e calçadas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/8\/4dcec5b8c31bc06cd0048d7e505615f1.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de Pista de Caminhada, Av. do Contorno - 3ª etapa<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construções de praças e calçadas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Sagrada Família<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">do Contorno, <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"8\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":7,"situacao":"Em Andamento","bairro":"Sagrada Família","logradouro_completo":"do Contorno, ","logradouro":"do Contorno","dt_inicio":1634094000,"dt_inicio_string":"13\/10\/2021","dt_fim":1659841200,"dt_fim_string":"07\/08\/2022","valor":"501.980,07","valor_pago":null,"titulo":"Construção de Pista de Caminhada, Av. do Contorno - 3ª etapa","codigo":8,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1266","nome":"Tomada de Preço - TP 007.2021 Constr. 3ª Etapa da Pista de Caminhada","numero":7,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/8\/4dcec5b8c31bc06cd0048d7e505615f1.jpg","legenda":"3 pista - 1"},{"arquivo":"\/fotos\/obras\/8\/2349bbabd56dc2f5a084a33ad5ffe34b.jpg","legenda":"3 pista - 2"},{"arquivo":"\/fotos\/obras\/8\/5120d2fdd80e84c416680b942229e5d3.jpg","legenda":"3 pista - 3"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Wesley Miranda de Sena","descricao":"","fonte_recurso":"","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.802671785001465","longitude":"-42.235889268559724","icone":"angle-double-left","cor_fundo_circulo":"#36ce87","cor_marcador":"#36ce87","cor_icone":"#ffffff","nome_categoria":"Construções de praças e calçadas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/9\/2601bbf290661d96599a6bcdd40b7c3b.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de Praça na Rua Turmalina, Bairro Planalto<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construções de praças e calçadas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Planalto<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Turmalina, <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"9\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":7,"situacao":"Em Andamento","bairro":"Planalto","logradouro_completo":"Turmalina, ","logradouro":"Turmalina","dt_inicio":1636081200,"dt_inicio_string":"05\/11\/2021","dt_fim":1665975600,"dt_fim_string":"17\/10\/2022","valor":"236.301,25","valor_pago":null,"titulo":"Construção de Praça na Rua Turmalina, Bairro Planalto","codigo":9,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1262","nome":"Tomada de Preço - TP 011.2021 - Construção de Praça na Rua Turmalina","numero":11,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/9\/2601bbf290661d96599a6bcdd40b7c3b.jpg","legenda":"Praça rua Turmalina"},{"arquivo":"\/fotos\/obras\/9\/51e012806c60a443f66c97489d6e3a9d.jpg","legenda":"Praça rua Turmalina 4"},{"arquivo":"\/fotos\/obras\/9\/43410043a4900356567bb2f59ec4300b.jpg","legenda":"Praça rua Turmalina 3"},{"arquivo":"\/fotos\/obras\/9\/4450a6b09e1a7da05b3eb36ff5a2b76a.jpg","legenda":"Praça rua Turmalina 1"},{"arquivo":"\/fotos\/obras\/9\/d9a2f043aff20cb36711757da0c96c3f.jpg","legenda":"Praça rua Turmalina 2"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Wesley Miranda de Sena","descricao":"","fonte_recurso":"Emenda parlamentar, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.79945087640446","longitude":"-42.23724034909476","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/10\/f4d70733be9ace9233c80a10354c44bb.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação em PMF, na Rua Paineiras, Bairro Planalto<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Planalto<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">das Paineiras, <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"10\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Andamento","bairro":"Planalto","logradouro_completo":"das Paineiras, ","logradouro":"das Paineiras","dt_inicio":1665111600,"dt_inicio_string":"07\/10\/2022","dt_fim":1678158000,"dt_fim_string":"07\/03\/2023","valor":"486.286,89","valor_pago":null,"titulo":"Pavimentação em PMF, na Rua Paineiras, Bairro Planalto","codigo":10,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1265","nome":"Tomada de Preço - TP 008.2021 - Obras de Pavimentação Asfáltica","numero":8,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/10\/f4d70733be9ace9233c80a10354c44bb.jpg","legenda":"R. Paineiras 1"},{"arquivo":"\/fotos\/obras\/10\/30f0d3a07a77e18e202497ee4252f93f.jpg","legenda":"R. Paineiras 2"},{"arquivo":"\/fotos\/obras\/10\/5a680233f7c2718ccbce97f7ac7a061a.jpg","legenda":"R. Paineiras 3"},{"arquivo":"\/fotos\/obras\/10\/d406d418105a74df981439f6ab6267b0.jpg","legenda":"R. Paineiras 4"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Transferências especiais, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.820659410488958","longitude":"-42.22543863788777","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/11\/2c45d4748aa56c212569b8a95ba2c3f4.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação em PMF, na Av. do Contorno (entre a Rua Xandú e Av. JK)<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Nossa Senhora de Fátima<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">do Contorno, <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"11\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Andamento","bairro":"Nossa Senhora de Fátima","logradouro_completo":"do Contorno, ","logradouro":"do Contorno","dt_inicio":1636081200,"dt_inicio_string":"05\/11\/2021","dt_fim":1657681200,"dt_fim_string":"13\/07\/2022","valor":"272.548,74","valor_pago":null,"titulo":"Pavimentação em PMF, na Av. do Contorno (entre a Rua Xandú e Av. JK)","codigo":11,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1265","nome":"Tomada de Preço - TP 008.2021 - Obras de Pavimentação Asfáltica","numero":8,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/11\/2c45d4748aa56c212569b8a95ba2c3f4.jpg","legenda":"Av. Contorno 1"},{"arquivo":"\/fotos\/obras\/11\/55693a6a269c95a3dbaf4fa8150ecd5f.jpg","legenda":"Av. Contorno 5"},{"arquivo":"\/fotos\/obras\/11\/cc4f69f8b16d78e30ff33e1d51dd6cfa.jpg","legenda":null},{"arquivo":"\/fotos\/obras\/11\/a2dd790ae56966a3c8d145509277c1f1.jpg","legenda":"Av. Contorno 3"},{"arquivo":"\/fotos\/obras\/11\/0e7d17220aa2b8aaa0ba0debef55c6a9.jpg","legenda":null}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Carmen Silva Mendes","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.819865469280522","longitude":"-42.152352333068855","icone":"angle-double-left","cor_fundo_circulo":"#e2c269","cor_marcador":"#e2c269","cor_icone":"#ffffff","nome_categoria":"Construção de galpão","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/12\/8f825d405f88722f57ad36662c715b3a.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de galpão para produtos do cerrado, em Lagoa Grande<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de galpão<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Povoado de Lagoa Grande<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"12\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":8,"situacao":"Em Andamento","bairro":"Povoado de Lagoa Grande","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":1647226800,"dt_inicio_string":"14\/03\/2022","dt_fim":1659841200,"dt_fim_string":"07\/08\/2022","valor":"269.872,43","valor_pago":null,"titulo":"Construção de galpão para produtos do cerrado, em Lagoa Grande","codigo":12,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1267","nome":"Tomada de Preço - TP 006.2021 Constr. Galpão - Comunid. Lagoa Grande","numero":6,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/12\/8f825d405f88722f57ad36662c715b3a.jpg","legenda":null}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"João Carlos Sarmento","fiscal":"Wesley Miranda de Sena","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.802671785001465","longitude":"-42.235889268559724","icone":"angle-double-left","cor_fundo_circulo":"#81b6a5","cor_marcador":"#81b6a5","cor_icone":"#ffffff","nome_categoria":"Construções de quadras esportivas (sem cobertura)","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes obr_popup_leaflet_img\">\r\n <img src=\"\/fotos\/obras\/13\/c314d7e03c29409cee9475e2dcf72362.jpg\" alt=\"Foto da obra\" class=\"imgcentraliza\" \/>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Quadra poliesportiva sem cobertura, na Rua Turmalina, Bairro Planalto<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construções de quadras esportivas (sem cobertura)<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Planalto<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Turmalina, <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"13\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":5,"situacao":"Em Andamento","bairro":"Planalto","logradouro_completo":"Turmalina, ","logradouro":"Turmalina","dt_inicio":1626922800,"dt_inicio_string":"22\/07\/2021","dt_fim":1657594800,"dt_fim_string":"12\/07\/2022","valor":"209.147,06","valor_pago":null,"titulo":"Quadra poliesportiva sem cobertura, na Rua Turmalina, Bairro Planalto","codigo":13,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1272","nome":"Tomada de Preço - TP 001.2021 Constr. Quadra Poliesportiva Turmalina","numero":1,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[{"arquivo":"\/fotos\/obras\/13\/c314d7e03c29409cee9475e2dcf72362.jpg","legenda":"Poli Planalto 4"},{"arquivo":"\/fotos\/obras\/13\/bfb7a4508451dfa0b34e1e2b636d6801.jpg","legenda":"Poli Planalto 2"},{"arquivo":"\/fotos\/obras\/13\/58f085f394641b730aad47504de9f930.jpg","legenda":"Poli Planalto 3"},{"arquivo":"\/fotos\/obras\/13\/e00d23f949c32aba3ff456582b783e2e.jpg","legenda":"Poli Planalto 1"}],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.802269515254464","longitude":"-42.23955098155233","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Recapeamento asfáltico em PMF, na Rua Alagoas e outras<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_projeto\">Em Projeto<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Planalto<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"14\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Projeto","bairro":"Planalto","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":0,"dt_inicio_string":null,"dt_fim":0,"dt_fim_string":null,"valor":"739.584,07","valor_pago":null,"titulo":"Recapeamento asfáltico em PMF, na Rua Alagoas e outras","codigo":14,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1773","nome":"Chamamento Público - C.P. 003.2022 - (RECAPEAMENTO ASFÁLTICO EM PMF)","numero":3,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.805099470070175","longitude":"-42.22963797020245","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Recapeamento asfáltico em PMF, em ruas e avenidas diversas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_projeto\">Em Projeto<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Vila Formosa<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"15\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Projeto","bairro":"Vila Formosa","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":0,"dt_inicio_string":null,"dt_fim":0,"dt_fim_string":null,"valor":"3.655.968,01","valor_pago":null,"titulo":"Recapeamento asfáltico em PMF, em ruas e avenidas diversas","codigo":15,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1772","nome":"Chamamento Público - C.P. 002.2022 - ( RECAPEAMENTO ASFÁLTICO PMF)","numero":2,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.805407477580784","longitude":"-42.24872071424028","icone":"recycle","cor_fundo_circulo":"#51e63d","cor_marcador":"#51e63d","cor_icone":"#ffffff","nome_categoria":"Construção de trincheira","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de aterro sanitário de pequeno porte, em Taiobeiras<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de trincheira<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Zona Rural<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">LMG 626 (Taiobeiras\/Rio Pardo de Minas), KM<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"16\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":10,"situacao":"Em Andamento","bairro":"Zona Rural","logradouro_completo":"LMG 626 (Taiobeiras\/Rio Pardo de Minas), KM","logradouro":"LMG 626 (Taiobeiras\/Rio Pardo de Minas)","dt_inicio":1670986800,"dt_inicio_string":"14\/12\/2022","dt_fim":1684119600,"dt_fim_string":"15\/05\/2023","valor":"224.711,72","valor_pago":null,"titulo":"Construção de aterro sanitário de pequeno porte, em Taiobeiras","codigo":16,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1261","nome":"Tomada de Preço - TP 012.2021 - Obra de Aterro Sanitário","numero":12,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.817496708133522","longitude":"-42.22847861537064","icone":"plus-circle","cor_fundo_circulo":"#1870cd","cor_marcador":"#1870cd","cor_icone":"#ffffff","nome_categoria":"Construção de unidades básicas de saúde (UBSs)","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de UBS T2T, Rua Bonfim, em Taiobeiras<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de unidades básicas de saúde (UBSs)<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Centro<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Bonfim, 136<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"17\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":11,"situacao":"Em Andamento","bairro":"Centro","logradouro_completo":"Bonfim, 136","logradouro":"Bonfim","dt_inicio":1650250800,"dt_inicio_string":"18\/04\/2022","dt_fim":1674010800,"dt_fim_string":"18\/01\/2023","valor":"895.027,83","valor_pago":"215.314,86","titulo":"Construção de UBS T2T, Rua Bonfim, em Taiobeiras","codigo":17,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1327","nome":"Concorrência Pública - C.P 006.2021 - (OBRA DE UBS TIPO T2T)","numero":0,"ano":2021},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Rogério Vieira Fernandes júnior","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.812949621636132","longitude":"-42.23069429397584","icone":"angle-double-left","cor_fundo_circulo":"#9b3636","cor_marcador":"#9b3636","cor_icone":"#ffffff","nome_categoria":"Reformas diversas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Prédio do Conselho Tutelar dos Direitos da Criança e do Adolescente<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Reformas diversas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_projeto\">Em Projeto<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Centro<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Rio Pardo, 621<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"18\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":12,"situacao":"Em Projeto","bairro":"Centro","logradouro_completo":"Rio Pardo, 621","logradouro":"Rio Pardo","dt_inicio":1674442800,"dt_inicio_string":"23\/01\/2023","dt_fim":1687489200,"dt_fim_string":"23\/06\/2023","valor":"79.810,12","valor_pago":null,"titulo":"Prédio do Conselho Tutelar dos Direitos da Criança e do Adolescente","codigo":18,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1997","nome":"Tomada de Preço - Tomada de Preço 027-2022 - OBRA DE REFORMA DO CONSELHO TUTELAR","numero":27,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"33":{"nome":"Secretaria Municipal de Assistência Social - SEAS","link":"\/portal\/secretarias\/33\/secretaria-municipal-de-assistencia-social---seas","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"},"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Kaio Vinicius Soares de Sá","fiscal":"Arthur Herbert Pereira Soares","descricao":"","fonte_recurso":"Transferências especiais, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.82783457826833","longitude":"-42.22726106643677","icone":"angle-double-left","cor_fundo_circulo":"#d8baba","cor_marcador":"#d8baba","cor_icone":"#ffffff","nome_categoria":"Construção de ponte","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Ponte Mista na Comunidade Riinho<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construção de ponte<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_projeto\">Em Projeto<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Zona Rural<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Comunidade Riinho<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"19\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":13,"situacao":"Em Projeto","bairro":"Zona Rural","logradouro_completo":"Comunidade Riinho","logradouro":"Comunidade Riinho","dt_inicio":1682478000,"dt_inicio_string":"26\/04\/2023","dt_fim":1687921200,"dt_fim_string":"28\/06\/2023","valor":"218.252,76","valor_pago":null,"titulo":"Ponte Mista na Comunidade Riinho","codigo":19,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1971","nome":"Tomada de Preço - Tomada de Preço 026-2022 - CONSTRUÇÃO DA PONTE MISTA NA COMUNIDADE RIINHO","numero":26,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"GERALDO SARMENTO DE SENA JUNIOR","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.804608612291354","longitude":"-42.23702430725098","icone":"angle-double-left","cor_fundo_circulo":"#9b3636","cor_marcador":"#9b3636","cor_icone":"#ffffff","nome_categoria":"Reformas diversas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Obra de reforma do CRAS Planalto<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Reformas diversas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_projeto\">Em Projeto<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Planalto<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Paraíba, 140<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"22\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":12,"situacao":"Em Projeto","bairro":"Planalto","logradouro_completo":"Paraíba, 140","logradouro":"Paraíba","dt_inicio":0,"dt_inicio_string":null,"dt_fim":0,"dt_fim_string":null,"valor":null,"valor_pago":null,"titulo":"Obra de reforma do CRAS Planalto","codigo":22,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1998","nome":"Tomada de Preço - Tomada de Preço 028-2022 - OBRA DE REFORMA DO CRAS PLANALTO","numero":28,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.834072553666598","longitude":"-42.17797279357911","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação em PMF, na Lagoa Dourada<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Zona Rural<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">LMG 626, Km 1,2<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"23\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Andamento","bairro":"Zona Rural","logradouro_completo":"LMG 626, Km 1,2","logradouro":"LMG 626","dt_inicio":0,"dt_inicio_string":null,"dt_fim":0,"dt_fim_string":null,"valor":null,"valor_pago":null,"titulo":"Pavimentação em PMF, na Lagoa Dourada","codigo":23,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1951","nome":"Tomada de Preço - Tomada de Preço 022-2022 - OBRA DE PAVIMENTAÇÃO EM PMF - LAGOA DOURADA","numero":22,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.798272299464461","longitude":"-42.23535060882569","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação asfáltica em PMF <\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Planalto<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">, s\/n<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"24\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Andamento","bairro":"Planalto","logradouro_completo":", s\/n","logradouro":"nao_informado","dt_inicio":1665111600,"dt_inicio_string":"07\/10\/2022","dt_fim":1678158000,"dt_fim_string":"07\/03\/2023","valor":"365.706,00","valor_pago":null,"titulo":"Pavimentação asfáltica em PMF ","codigo":24,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1953","nome":"Tomada de Preço - TP 023-2022 - OBRA DE PAVIMENTAÇÃO ASFALTICA - RUAS AIMORES E OUTRAS","numero":23,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Arthur Herbert Pereira Soares","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.848856614962308","longitude":"-42.01015233993531","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação em bloquete - Ruas Dom Pedro I e Tancredo Neves<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Distrito de Mirandópolis<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"25\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Andamento","bairro":"Distrito de Mirandópolis","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":1657508400,"dt_inicio_string":"11\/07\/2022","dt_fim":1678503600,"dt_fim_string":"11\/03\/2023","valor":"427.108,64","valor_pago":null,"titulo":"Pavimentação em bloquete - Ruas Dom Pedro I e Tancredo Neves","codigo":25,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1824","nome":"Tomada de Preço - TP 015.2022 - (OBRA DE PAVIMENTAÇÃO DE BLOCO MIRANDÓPOLIS)","numero":15,"ano":1969},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Geraldo Sarmento de Sena Junior ","descricao":"","fonte_recurso":"Próprio, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.851429426449187","longitude":"-42.00983047485352","icone":"angle-double-left","cor_fundo_circulo":"#36ce87","cor_marcador":"#36ce87","cor_icone":"#ffffff","nome_categoria":"Construções de praças e calçadas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Revitalização da Praça Santo Menezes<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Construções de praças e calçadas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Distrito de Mirandópolis<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Santo Menezes <\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"26\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":7,"situacao":"Em Andamento","bairro":"Distrito de Mirandópolis","logradouro_completo":"Santo Menezes ","logradouro":"Santo Menezes ","dt_inicio":1663210800,"dt_inicio_string":"15\/09\/2022","dt_fim":1684119600,"dt_fim_string":"15\/05\/2023","valor":"219.563,00","valor_pago":null,"titulo":"Revitalização da Praça Santo Menezes","codigo":26,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1940","nome":"Tomada de Preço - Tomada de Preço 020-2022 - OBRA DE REVITALIZAÇÃO DA PRAÇA SANTO MENEZES - MIRANDÓPOLIS","numero":20,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Geraldo Sarmento de Sena Júnior","descricao":"","fonte_recurso":"Convênio Estadual, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.807333930386044","longitude":"-42.22088813781739","icone":"angle-double-left","cor_fundo_circulo":"#9b3636","cor_marcador":"#9b3636","cor_icone":"#ffffff","nome_categoria":"Reformas diversas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Ampliação e reforma da UBS Dona Nininha<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Reformas diversas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Sagrada Família<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Guaicurus, 1625<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"27\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":12,"situacao":"Em Andamento","bairro":"Sagrada Família","logradouro_completo":"Guaicurus, 1625","logradouro":"Guaicurus","dt_inicio":1663210800,"dt_inicio_string":"15\/09\/2022","dt_fim":1681527600,"dt_fim_string":"15\/04\/2023","valor":"160.595,00","valor_pago":null,"titulo":"Ampliação e reforma da UBS Dona Nininha","codigo":27,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1939","nome":"Tomada de Preço - Tomada de Preço 019-2022 - OBRA DE AMPLIAÇÃO E REFORMA DA UAPS DONA NININHA","numero":19,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Cynthia Andrade Gomes","descricao":"","fonte_recurso":"","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.83372612996826","longitude":"-42.1794319152832","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação em PMF, na Lagoa Dourada<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_andamento\">Em Andamento<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Zona Rural<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Logradouro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Povoado de Lagoa Dourada, LMG 626, K 1,2<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"28\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Andamento","bairro":"Zona Rural","logradouro_completo":"Povoado de Lagoa Dourada, LMG 626, K 1,2","logradouro":"Povoado de Lagoa Dourada","dt_inicio":1665111600,"dt_inicio_string":"07\/10\/2022","dt_fim":1680836400,"dt_fim_string":"07\/04\/2023","valor":"1.487.828,70","valor_pago":null,"titulo":"Pavimentação em PMF, na Lagoa Dourada","codigo":28,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1951","nome":"Tomada de Preço - Tomada de Preço 022-2022 - OBRA DE PAVIMENTAÇÃO EM PMF - LAGOA DOURADA","numero":22,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"","fiscal":"Geraldo Sarmento de Sena Júnior","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""},{"seguir_acao":"seguir","seguir_class":"itn_btn_login disabled","seguir_txt":"Seguir","seguir_title":"Necessário estar logado para utilizar esta função.","latitude":"-15.817597094734548","longitude":"-42.221016883850105","icone":"angle-double-left","cor_fundo_circulo":"#000000","cor_marcador":"#000000","cor_icone":"#ffffff","nome_categoria":"Pavimentações de vias públicas","conteudo_popup":"\r\n <div class=\"sw_lista_detalhes obr_popup_leaflet\">\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Título<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentação em blocos sextavados de concreto<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Categoria<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Pavimentações de vias públicas<\/div>\r\n <\/div>\r\n\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Situação<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\"><span class=\"obr_situacao obr_situacao_em_projeto\">Em Projeto<\/span><\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes\">\r\n <div class=\"sw_nome_detalhe sw_lato_bold\">Bairro<\/div>\r\n <div class=\"sw_descricao_detalhe sw_lato\">Sagrada Família<\/div>\r\n <\/div>\r\n <div class=\"sw_linha_lista_detalhes obr_cont_btn_ver_obra sw_lato\">\r\n <div class=\"obr_link_obra obr_link_ver_obra m_detalhes_click obr_link_ver_obra\" data-codigo=\"29\"><span class=\"obr_txt_link_obra\">ver obra<\/span><span class=\"swfa fas fa-search\"><\/span><\/div>\r\n <div class=\"obr_link_obra obr_link_ver_fotos\"><span class=\"obr_txt_link_obra\">ver fotos<\/span><span class=\"swfa fas fa-camera\"><\/span><\/div>\r\n <\/div>\r\n <\/div>","categoria":6,"situacao":"Em Projeto","bairro":"Sagrada Família","logradouro_completo":"","logradouro":"nao_informado","dt_inicio":1665111600,"dt_inicio_string":"07\/10\/2022","dt_fim":1680836400,"dt_fim_string":"07\/04\/2023","valor":"960.925,52","valor_pago":null,"titulo":"Pavimentação em blocos sextavados de concreto","codigo":29,"acompanhamentos":[],"edital":{"link":"\/portal\/editais\/0\/1\/1955","nome":"Tomada de Preço - TP 025-2022 - OBRA DE PAVIMENTAÇÃO EM BLOCOS - BAIRROS SAGRADA FAMILIA E SANTOS CRUZEIRO","numero":25,"ano":2022},"contrato":false,"ordem_vinculos":["secretarias"],"fotos":[],"secretarias":{"29":{"nome":"Secretaria Municipal de Obras, Serviços, Regulação Urbana e Saneamento - SOSU","link":"\/portal\/secretarias\/29\/secretaria-municipal-de-obras-servicos-regulacao-urbana-e-saneamento---sosu","abertura":"_target","imagem":"\/fotos\/1b3f5a985ab5c762e73aed0bd89eceef.jpg"}},"videos":[],"arquivos":[],"empresa":"Arthur Herbert Pereira Soares","fiscal":"","descricao":"","fonte_recurso":"Convênio Federal, ","motivo_paralisacao":""}]; // CONSTANTES leafLetMapCenter = cidadeLatLng; // VARIAVEIS var elementoMapa; // VALIDANDO ELEMENTO PARA O MAPA elementoMapa = document.getElementById(idElementoMapa); if (!elementoMapa) { // ERRO return false; } elementoMapa = $(elementoMapa); // VERIFICANDO O NAVEGADOR if (L.Browser.ielt9) { elementoMapa.css({ "background-color": "#fff", "text-align": "center", "margin-bottom": "15px" }); elementoMapa.append('<span class="sw_lato_bold">Este navegador não é compatível com o mapa.</span>'); return false; } // TILE PROVIDER CONFIGURACAO OpenStreetMap const tileProvider = { // URLS COM AS IMAGENS DOS TILES urls : [ 'https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', 'https://{s}.tile.osm.org/{z}/{x}/{y}.png', 'https://{s}.tile.openstreetmap.de/{z}/{x}/{y}.png', 'https://{s}.tile.openstreetmap.com/{z}/{x}/{y}.png' ], // FUNCAO QUE RETORNA A PROXIMA URL DISPONIVEL EM 'urls' getUrl: function(){ var activeUrl = ""+this.urls.shift(); this.urls = this.urls.concat(activeUrl); return activeUrl; }, // ATRIBUICAO DE DIREITOS // OBRIGATORIO attribution : 'Data &copy; <a href="https://www.openstreetmap.org/copyright">OpenStreetMap</a> contributors, <a href="https://osm.org/copyright">ODbL 1.0.</a>' }; // CRIANDO MAPA leafLetMap = L.map(elementoMapa.get(0) ,{ preferCanvas: true, // USA CANVAS > DESEMPENHO++ center: cidadeLatLng, // CENTRO DO MAPA zoom: zoomMin, // ZOOM ATUAL minZoom: zoomMin, // ZOOM MIN maxZoom: zoomMax, // ZOOM MAX doubleClickZoom: false // DESATIVA ZOOM DO CLICK DUPLO }); // TRAVANDO O MAPA leafLetMap.setMaxBounds(leafLetMap.getBounds()); // OBJETO TileLayer PARA O MAPA const tiles = L.tileLayer(tileProvider.getUrl(), { attribution: tileProvider.attribution, bounds: leafLetMap.getBounds(), tileSize: 256, minNativeZoom: zoomMin, maxNativeZoom: zoomMax, updateWhenZooming: false, updateWhenIdle: false, updateInterval: 1000, detectRetina: true, keepBuffer: 15 }); // TRATANDO ERRO AO REQUISITAR UM TILE // CASO ERRO >> CHAMA FUNCAO TileProvider.getUrl() tiles.on("tileerror", function(){ tiles.setUrl(tileProvider.getUrl()); }, tiles); tiles.addTo(leafLetMap); // PERCORRENDO PONTOS // for(var indicePonto = 0; indicePonto < pontos.length; indicePonto++){ // var ponto = pontos[indicePonto]; var indicePonto = 0; pontos.forEach(function(ponto) { indicePonto++; // CRIANDO MARCADOR var markerLeaflet = L.marker( [ponto.latitude, ponto.longitude], { icon: L.FontAwesomeMarker.icon({ icon: ponto.icone, markerColor: ponto.cor_marcador, iconColor: "#FFFFFF", svgCircleColor: ponto.cor_marcador // Forma antiga de mostrar as cores dos pontos (contraste de cor para fundo e ícone) // iconColor: ponto.cor_icone, // svgCircleColor: ponto.cor_fundo_circulo }) } ); // ADICIONANDO POPUP AO MARCADOR var markerPopup = $(ponto.conteudo_popup); var divVerFotosPopup = markerPopup.find(".obr_link_obra.obr_link_ver_fotos"); if (Object.values(ponto.fotos) && Object.values(ponto.fotos).length > 0) { divVerFotosPopup.css("display", "inline-block"); var fancyBoxSrc = []; var fancyBoxOptions = { buttons : [ 'slideShow', 'close' ], loop : true, arrows : true, slideShow : { autoStart : false, speed : 3500 } }; Object.values(ponto.fotos).forEach(function(foto, index, arr) { var legenda = ""; if (foto.legenda && foto.legenda !== "null") { legenda = foto.legenda; } var src = { src: foto.arquivo, opts: { caption: legenda } }; fancyBoxSrc.push(src); }); divVerFotosPopup.click(function(mouseEvent) { $.fancybox.open(fancyBoxSrc, fancyBoxOptions); }); } else { divVerFotosPopup.hide(); } markerLeaflet.bindPopup(markerPopup.get(0), { autoPanPaddingTopLeft: L.point(0, 50), autoPanPaddingBottomRight: L.point(0, 0) }); markerLeaflet.on('mouseover', function(e) { if (!$('.leaflet-popup:hover').length) { this.openPopup(); } }); // MARCADOR JS var marcador = { marker: markerLeaflet, // MARCADOR LEAFLET /* DADOS */ seguir_acao: ponto.seguir_acao, seguir_class: ponto.seguir_class, seguir_txt: ponto.seguir_txt, seguir_title: ponto.seguir_title, categoria: ponto.categoria, situacao: ponto.situacao, bairro: ponto.bairro, logradouro_completo: ponto.logradouro_completo, logradouro: ponto.logradouro, dt_inicio: ponto.dt_inicio, dt_inicio_string: ponto.dt_inicio_string, dt_fim: ponto.dt_fim, dt_fim_string: ponto.dt_fim_string, titulo: ponto.titulo, valor: ponto.valor, valor_pago: ponto.valor_pago, edital: ponto.edital, icone: ponto.icone, contrato: ponto.contrato, nome_categoria: ponto.nome_categoria, cor_marcador: ponto.cor_marcador, cor_icone: ponto.cor_icone, cor_fundo_circulo: ponto.cor_fundo_circulo, fotos: ponto.fotos, secretarias: ponto.secretarias, videos: ponto.videos, arquivos: ponto.arquivos, ordem_vinculos: ponto.ordem_vinculos, acompanhamentos: ponto.acompanhamentos, codigo: parseInt(ponto.codigo), empresa: ponto.empresa, fiscal: ponto.fiscal, descricao: ponto.descricao, fonte_recurso: ponto.fonte_recurso, motivo_paralisacao: ponto.motivo_paralisacao /* DADOS */ }; var latLong = [ponto.latitude, ponto.longitude]; if (!markersAgrupados.hasOwnProperty(latLong)){ markersAgrupados[latLong] = []; } markersAgrupados[latLong].push(marcador); markers.push(marcador); }); // } for(const chave of Object.keys(markersAgrupados)){ if (markersAgrupados[chave].length === 1){ markersAgrupados[chave].pop().marker.addTo(leafLetMap); } else { var markerGroup = L.markerClusterGroup({ spiderLegPolylineOptions: { color: "#000000" // ,opacity: "1" } }); for(var indicePonto = 0; indicePonto < markersAgrupados[chave].length; indicePonto++){ var ponto = markersAgrupados[chave][indicePonto]; markerGroup.addLayer(ponto.marker) } leafLetMap.addLayer(markerGroup); } } // GERA OS OPTIONS PARA O SELECT DO RELATORIO if (renderizarRelatorio) { geraOptionsRelatorio(); selectRelatorioFiltroAno.trigger("change"); } // DEFINE ZOOM leafLetMap.setZoom((zoomMin + 0.51)); // Revomendo marcadores do mapa conforme configuração de exibição var obcObrasSituacaoExibir = $("#obcObrasSituacaoExibir").val(); var obcObrasSituacaoExibirAux = obcObrasSituacaoExibir.split(";"); markers.forEach(function(item) { if (obcObrasSituacaoExibirAux.indexOf(item.situacao) < 0) { item.marker.removeFrom(leafLetMap); } }); markersAgrupados = {}; return leafLetMap; } /* FUNCAO CRIA O MAPA */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* FUNCAO QUE EXIBE OS DADOS DA FILTRAGEM */ function exibirDados(pagina) { // PADROES divResultados.hide(); divAreaListagem.hide(); spanQtdeResultado.html(0); divVoltaPagina.hide(); divAvancaPagina.hide(); selectPagina.hide(); // REVOMENDO TODOS OS MARCADORES DO MAPA markers.forEach(function(item){ item.marker.removeFrom(leafLetMap); }); // SE HA DADOS PARA EXIBIR if (dadosExibir) { // MOSTRANDO ALGUMAS DIVS divAreaListagem.show(); divResultados.show(); var paginacao = paginar(dadosExibir, pagina); dadosPaginacao = paginacao.dados; // TRATANDO QTDE DE REGISTROS E QTDE DE PAGINAS // APENAS PARA O FUNCIONAMENTO DOS BOTOES DE PAGINACAO if (dadosExibir.length > 1 && paginacao.paginas > pagina) { if (pagina === 1) { divVoltaPagina.attr("data-pagina", 0); divVoltaPagina.prop("disabled" , true) divAvancaPagina.attr("data-pagina", 2); divAvancaPagina.prop("disabled" , false); } else { divVoltaPagina.attr("data-pagina", (pagina - 1)); divVoltaPagina.prop("disabled" , false); divAvancaPagina.attr("data-pagina", (pagina + 1)); divAvancaPagina.prop("disabled" , false); } } else { divAvancaPagina.attr("data-pagina", 0); divAvancaPagina.prop("disabled" , true); divVoltaPagina.attr("data-pagina", (paginacao.paginas - 1)); divVoltaPagina.prop("disabled" , false); } selectPagina.find("option[value="+pagina+"]").prop("selected", true); // QTDE DE RESULTADO spanQtdeResultado.html(dadosExibir.length); if (dadosExibir.length === 1) { spanObrasEncontradas.text("obra encontrada"); spanObrasEncontradas.show(); divListagemObras.text("Listando 1 de 1"); divVoltaPagina.hide(); divAvancaPagina.hide(); selectPagina.hide(); } else { if (dadosExibir.length > 0) { spanObrasEncontradas.text("obras encontradas"); spanObrasEncontradas.show(); divListagemObras.text(""); divListagemObras.text("Listando "+dadosPaginacao.length+" de "+dadosExibir.length); if (dadosExibir.length > qtdePorPagina) { divVoltaPagina.show(); divAvancaPagina.show(); selectPagina.show(); } } else { spanObrasEncontradas.text("Nenhuma obra encontrada"); // spanObrasEncontradas.hide(); divListagemObras.text(""); // divListagemObras.hide(); divVoltaPagina.hide(); divAvancaPagina.hide(); selectPagina.hide(); } } // REMOVENDO ELEMENTOS QUE NAO SAO MODELO divAreaListagem.find(".obr_item_listagem.obr_item_listagem_modelo").remove(); // PERCORRENDO REGISTROS PAGINADOS dadosPaginacao.forEach(function(item){ // CLONANDO MODELO var cloneModelo = itemListaObraModelo.clone(); // DATA-ID cloneModelo.attr("data-id", item.codigo); /* PARA A CATEGORIA */ var divCategoria = cloneModelo.find(".obr_cont_categoria_obra"); var spansCategoria = divCategoria.find("span"); var spanCategoriaIcone = divCategoria.find("span").first(); var spanCategoriaNome = divCategoria.find("span").last(); // SETANDO ESTILOS divCategoria.attr("style", "background:"+item.cor_marcador+" !important"); spanCategoriaIcone.addClass("fa-"+item.icone); spanCategoriaIcone.attr("style", "background:"+item.cor_fundo_circulo+" !important; color:"+item.cor_icone+" !important; border-color:"+item.cor_marcador+" !important"); spanCategoriaNome.text(item.nome_categoria); spanCategoriaNome.attr("style", "background:"+item.cor_marcador+" !important; "+"color:"+item.cor_icone+" !important;"); /* FIM PARA A CATEGORIA */ // TITULO DA OBRA var divTituloObra = cloneModelo.find(".obr_titulo_obra"); divTituloObra.text(item.titulo); /* PARA O CONTRATO */ var divContrato = cloneModelo.find(".obr_info_obra_contrato"); if (item.contrato) { divContrato.find(".obr_descricao_info").html('<span>'+item.contrato.nome+'</span><a href="'+item.contrato.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Contrato ;<span class="swfa fas fa-search-plus"></span></span></a>'); } else { divContrato.hide(); } /* PARA O CONTRATO */ /* PARA O EDITAL */ var divEdital = cloneModelo.find(".obr_info_obra_edital"); if (item.edital) { divEdital.find(".obr_descricao_info").html('<span>'+item.edital.nome+'</span><a href="'+item.edital.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Edital ;<span class="swfa fas fa-search-plus"></span></span></a>'); } else { divEdital.hide(); } /* PARA O EDITAL */ /* PARA A SITUACAO */ var divSituacao = cloneModelo.find(".obr_info_obra_situacao"); // obr_situacao obr_situacao_suspensa var spanSituacao = divSituacao.find(".obr_situacao"); spanSituacao = $(spanSituacao); spanSituacao.text(item.situacao); if (item.situacao === "Suspensa") { spanSituacao.addClass("obr_situacao_suspensa"); } else if (item.situacao === "Concluído") { spanSituacao.addClass("obr_situacao_concluida"); } else if (item.situacao === "Em Andamento") { spanSituacao.addClass("obr_situacao_em_andamento"); } else if (item.situacao === "Em Projeto") { spanSituacao.addClass("obr_situacao_em_projeto"); } /* PARA A SITUACAO */ /* PARA AS DATAS */ var divDataInicio = cloneModelo.find(".obr_info_obra_dt_inicio"); if (item.dt_inicio > 0) { divDataInicio.find(".obr_descricao_info").text(item.dt_inicio_string); } else { divDataInicio.hide(); } var divDataFim = cloneModelo.find(".obr_info_obra_dt_fim"); if (item.dt_fim > 0) { divDataFim.find(".obr_descricao_info").text(item.dt_fim_string); } else { divDataFim.hide(); } /* PARA AS DATAS */ // PARA O VALOR DA OBRA var divValor = cloneModelo.find(".obr_info_obra_valor"); if (item.valor && parseFloat(item.valor) > 0) { divValor.find(".obr_descricao_info").text("R$ "+item.valor); } else { divValor.hide(); } /* PARA AS FOTOS */ var divVerFotos = cloneModelo.find(".obr_link_ver_fotos"); if (item.fotos.length <= 0) { divVerFotos.hide(); } else { var fancyBoxSrc = []; var fancyBoxOptions = { buttons : [ 'slideShow', 'close' ], loop : true, arrows : true, slideShow : { autoStart : false, speed : 3500 } }; Object.values(item.fotos).forEach(function(foto){ var legenda = ""; if (foto.legenda && foto.legenda !== "null") { legenda = foto.legenda; } var src = { src: foto.arquivo, opts: { caption: legenda } }; fancyBoxSrc.push(src); }); divVerFotos.click(function(){ $.fancybox.open(fancyBoxSrc, fancyBoxOptions); }); divVerFotos.show(); } /* PARA AS FOTOS */ // PARA O BOTAO DE VER DETALHES DA OBRA var divVerObra = cloneModelo.find(".obr_link_ver_obra"); divVerObra.attr("data-codigo", item.codigo); // ADICIONANDO MODELO NA LISTAGEM E EXIBINDO PONTO NO MAPA cloneModelo.insertBefore(divVoltaPagina); cloneModelo.show(); item.marker.addTo(leafLetMap); }); } else { spanObrasEncontradas.text("Nenhuma obra encontrada"); spanObrasEncontradas.show(); divResultados.show(); divAreaListagem.show(); divListagemObras.show(); } } /* FUNCAO QUE EXIBE OS DADOS DA FILTRAGEM */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* FUNCAO DA PAGINACAO >> RETORNA O ARRAY JA QUEBRADO E A QUANTIDADE DE PAGINAS */ function paginar(dados, pagina) { var indexComeco = (pagina - 1) * qtdePorPagina; var indexTermina = indexComeco + qtdePorPagina; var dadosSlice = dados.slice(indexComeco, indexTermina); var paginas = Math.ceil(dados.length / qtdePorPagina); if (selectPagina.children().length !== paginas) { selectPagina.empty(); for(var indexPagina = 1; indexPagina <= paginas; indexPagina++) { var optionPagina = document.createElement("option"); optionPagina = $(optionPagina); optionPagina.text(indexPagina); optionPagina.val(indexPagina); selectPagina.append(optionPagina); } } return {dados: dadosSlice, paginas: paginas}; } /* FUNCAO DA PAGINACAO >> RETORNA O ARRAY JA QUEBRADO E A QUANTIDADE DE PAGINAS */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* FUNCAO QUE GERA OS OPTIONS DO SELECT DO RELATORIO */ function geraOptionsRelatorio() { var anosOption = []; for(var indexMarker = 0; indexMarker < markers.length; indexMarker++) { var item = markers[indexMarker]; if (typeof item.dt_inicio_string === "string" && item.dt_inicio_string !== "null" && item.dt_inicio_string !== "31/12/1969") { var dataInicio = item.dt_inicio_string; dataInicio = dataInicio.split("/"); var ano = dataInicio[(dataInicio.length -1)]; ano = parseInt(ano); if (anosOption.indexOf(ano) === -1) { anosOption.push(ano); } } } if (anosOption.length > 0) { var anoAgora = new Date().getUTCFullYear(); var selecionou = false; anoAgora = parseInt(anoAgora); anosOption.sort(); anosOption.reverse(); for(var anoIndex = 0; anoIndex < anosOption.length; anoIndex++) { var ano = anosOption[anoIndex]; var optionAno = document.createElement("option"); optionAno = $(optionAno); optionAno.val(ano); optionAno.text(ano); if (selecionou === false && ano === anoAgora) { optionAno.prop("selected", true); selecionou = true; } selectRelatorioFiltroAno.append(optionAno); } if (selecionou === false) { selectRelatorioFiltroAno.find("option").first().prop("selected", true); } } else { selectRelatorioFiltroAno.prop("disabled", true); } } /* FUNCAO QUE GERA OS OPTIONS DO SELECT DO RELATORIO */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* FUNCAO LIMPA STRING */ function limpaStringJS(string) { if (string === "" || typeof string === typeof undefined) { return ""; } string = string.replace(/[áàãâä]/gi,"a"); // REMOVE ACENTOS string = string.replace(/[éèê]/gi,"e"); // REMOVE ACENTOS string = string.replace(/[íìïî]/gi,"i"); // REMOVE ACENTOS string = string.replace(/[óòöôõ]/gi,"o"); // REMOVE ACENTOS string = string.replace(/[úùüû]/gi, "u"); // REMOVE ACENTOS string = string.replace(/[ç]/gi, "c"); // REMOVE CEDILHA string = string.replace(/[ñ]/gi, "n"); // REMOVE ACENTOS string = string.replace(/[^a-zA-Z0-9]/g," "); // REMOVE TUDO QUE NAO E LETRA OU NUMERO return string; } /* FUNCAO LIMPA STRING */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* EVENTOS */ $(document).ready(function() { /* SUBMIT DO FORMULARIO DE FILTRAGEM */ formFiltrar.submit(function(formEvent) { // ESCONDE BOTAO DE DETALHES E NAO DEIXA O FORM COMPLETAR O SUBMIT botaoMenuDetalhes.prop("disabled", true); formEvent.preventDefault(); leafLetMap.setView(leafLetMapCenter, zoomMin); leafLetMap.closePopup(); /* VARIAVEIS */ var inputsBairroChecked = $(".obr_filtro_bairro:checked"); var inputsLogradouroChecked = $(".obr_filtro_logradouro:checked"); var inputsCategoriaChecked = $(".obr_filtro_categoria:checked"); var inputsSituacaoChecked = $(".obr_filtro_situacao:checked"); /* VARIAVEIS */ // ARRAY PARA OS REGISTROS ENCONTRADOS var encontrados = []; // PERCORRENDO MARCADORES(REGISTROS) markers.forEach(function(marker){ // REVOMENDO TODOS OS PONTOS DO MAPA marker.marker.removeFrom(leafLetMap); // ARRAY PARA AS FUNCOES DE FILTRAGEM var retornoFiltragem = []; /* BUSCA POR PALAVRA-CHAVE */ if (inputPalavraChave.val().trim()) { var palavraChave = limpaStringJS(inputPalavraChave.val()); palavraChave = palavraChave.toLowerCase(); var tituloMarcador = limpaStringJS(marker.titulo); tituloMarcador = tituloMarcador.toLowerCase(); retornoFiltragem.push((tituloMarcador.indexOf(palavraChave) > -1)); } /* FIM PALAVRA-CHAVE */ /* BUSCA POR PERIODO */ // OBS DIVIDIMOS O RETORNO DO datepicker POR 1000 POIS ELE RETORNAR DIFERENTE if (inputPeriodoInicial.val().trim() && inputPeriodoFinal.val().trim()) { // INICIAL E FINAL SELECIONADO var dataInicial = (inputPeriodoInicial.datepicker("getDate").getTime() / 1000); var dataFinal = (inputPeriodoFinal.datepicker("getDate").getTime() / 1000); var dataMarcador = new Date(marker.dt_inicio).getTime(); if (dataInicial && dataFinal) { retornoFiltragem.push((dataMarcador >= dataInicial && dataMarcador <= dataFinal)); } } else { if (inputPeriodoInicial.val().trim()) { // INICIAL var dataMarcador = new Date(marker.dt_inicio).getTime(); var dataInicial = (inputPeriodoInicial.datepicker("getDate").getTime() / 1000); retornoFiltragem.push((dataMarcador >= dataInicial)); } else if (inputPeriodoFinal.val().trim()) { // FINAL var dataMarcador = new Date(marker.dt_inicio).getTime(); var dataFinal = (inputPeriodoFinal.datepicker("getDate").getTime() / 1000); retornoFiltragem.push((dataMarcador <= dataFinal)); } } /* PERIODO */ /* BUSCA POR BAIRROS */ if (inputsBairroChecked.length > 0) { var arrayBairros = []; inputsBairroChecked.each(function(indice, bairro){ arrayBairros.push($(bairro).data("bairro")); }); retornoFiltragem.push((arrayBairros.indexOf(marker.bairro) >= 0)); } /* BUSCA POR BAIRROS */ /* BUSCA POR LOGRADOUROS */ if (inputsLogradouroChecked.length > 0) { var arrayLogradouros = []; inputsLogradouroChecked.each(function(indice, logradouro){ arrayLogradouros.push($(logradouro).data("logradouro")); }); retornoFiltragem.push((arrayLogradouros.indexOf(marker.logradouro) >= 0)); } /* BUSCA POR LOGRADOUROS */ /* BUSCA POR CATEGORIAS */ if (inputsCategoriaChecked.length > 0) { var arrayCategorias = []; inputsCategoriaChecked.each(function(indice, categoria){ arrayCategorias.push($(categoria).data("categoria")); }); retornoFiltragem.push((arrayCategorias.indexOf(marker.categoria) >= 0)); } /* BUSCA POR CATEGORIAS */ /* BUSCA POR SITUACOES */ if (inputsSituacaoChecked.length > 0) { var arraySituacoes = []; inputsSituacaoChecked.each(function(indice, situacao){ arraySituacoes.push($(situacao).data("situacao")); }); retornoFiltragem.push((arraySituacoes.indexOf(marker.situacao) >= 0)); } /* BUSCA POR SITUACOES */ if (retornoFiltragem.length === 0) { encontrados.push(marker); } else { var mostrar = true; for(var indexRetorno = 0; indexRetorno < retornoFiltragem.length; indexRetorno++) { var retorno = retornoFiltragem[indexRetorno]; if (retorno === false) { mostrar = false; break; } } if (mostrar) { encontrados.push(marker); } } }); // SE ARRAY TEM REGISTROS A EXIBIR if (encontrados.length > 0) { dadosExibir = encontrados; // ATRIBUICAO A VARIAVEL GLOBAL dadosExibir exibirDados(1); // FUNCAO QUE EXIBE OS REGISTROS } else { dadosExibir = false; exibirDados(0); } }); /* SUBMIT DO FORMULARIO DE FILTRAGEM */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* BOTAO AVANCA E VOLTA */ $([divAvancaPagina, divVoltaPagina]).each(function(){ $(this).click(function(event){ leafLetMap.setView(leafLetMapCenter, zoomMin); botaoMenuDetalhes.prop("disabled", true); var botao = $(this); var pagina = botao.attr("data-pagina"); pagina = parseInt(pagina); if (pagina > 0) { exibirDados(pagina); } }); }); /* BOTAO AVANCA E VOLTA */ /* SELECT CHANGE */ $(selectPagina).change(function(){ leafLetMap.setView(leafLetMapCenter, zoomMin); botaoMenuDetalhes.prop("disabled", true); var option = $(this).find(":selected"); var pagina = option.val(); pagina = parseInt(pagina); if (pagina > 0) { exibirDados(pagina); } }); /* SELECT CHANGE */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* BOTAO VER MAPA */ botaoVerMapa.click(function(){ // leafLetMap.setView(leafLetMapCenter, zoomMin); // RENDERIZA MAPA $(".obr_area_mapa").html('<div id="leaflet_map" class="obr_mapa"></div>'); leafLetMap = Mapa("leaflet_map", false); leafLetMap.closePopup(); }); /* BOTAO VER MAPA */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* BOTOES DO MENU */ divMenuObras.find(".obr_btn_menu").click(function() { var botao = $(this); if (!botao.hasClass("ativo")) { // SETANDO CLASSE NOS BOTÕES divMenuObras.find(".obr_btn_menu").removeClass("ativo"); botao.addClass("ativo"); // FORÇAR MENU "FILTRO" ATIVADO QUANDO VIER DO BOTÃO "VOLTAR AO FILTRO" DO RELATÓRIO if(botao.attr('data-ativar-filtro') == "S") { $(".obr_btn_filtro").addClass('ativo'); } // ANALISANDO SE HÁ MENU A EXIBIR var data_menu = botao.data("menu"); if (data_menu == "obr_content_mapa") { // MOSTRANDO MENU SELECIONADO divMenuObras.find(".obr_btn_menu").addClass("disable"); setTimeout(function() { divMenuObras.find(".obr_content_menu").hide(); divMenuObras.find(".obr_btn_menu").removeClass("disable"); }, 400); // ABRINDO CONTEÚDO DO MENU divMenuObras.find(".obr_conteudo_menu").removeClass("show"); } else { var menu = $("#" + data_menu); if (menu.length) { // MOSTRANDO MENU SELECIONADO divMenuObras.find(".obr_content_menu").hide(); menu.show(); // ABRINDO CONTEÚDO DO MENU divMenuObras.find(".obr_conteudo_menu").addClass("show"); } } } }); // SETANDO CLICK NO FILTRO EM MEDIAS NÃO MOBILE if (window.innerWidth > 1000) { divMenuObras.find(".obr_btn_filtro").trigger("click"); } /* BOTOES DO MENU */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* BOTAO FECHAR MENU */ divMenuObras.find(".obg_btn_fechar").click(function() { divMenuObras.find(".obr_btn_mapa").trigger("click"); }); /* BOTAO FECHAR MENU */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* FECHAR FORMULARIO */ function fecharFiltro() { filtrosFormulario.addClass("hide"); filtrosFormulario.find(".obr_cont_formulario").slideUp(400); // FECHANDO CHECKLIST filtrosFormulario.find(".obr_checklist").addClass("hide"); } /* FECHAR FORMULARIO */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ABRIR FORMULARIO */ function abrirFiltro() { filtrosFormulario.removeClass("hide"); filtrosFormulario.find(".obr_cont_formulario").slideDown(200); } /* ABRIR FORMULARIO */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ABRE E FECHA FILTROS */ filtrosFormulario.find("#obr_btn_toggle_filtro").click(function() { if (filtrosFormulario.hasClass("hide")) { abrirFiltro(); } else { fecharFiltro(); } }); /* ABRE E FECHA FILTROS */ /* CHECKLIST */ var checklist = filtrosFormulario.find(".obr_checklist"); divMenuObras.on("click", ".obr_titulo_checklist, obr_btn_toggle_checklist", function() { var this_checklist = $(this).closest(".obr_checklist"); if (this_checklist.hasClass("hide")) { checklist.addClass("hide"); this_checklist.removeClass("hide"); } else { checklist.addClass("hide"); } }); // CHECKAR TODOS checklist.find(".obr_checklist_todos").change(function() { checklist_todos = $(this); this_checklist = checklist_todos.closest(".obr_checklist"); // RESETANDO CHECKLIST if (checklist_todos.prop("checked") == true) { checklist_todos.siblings("label").attr("title", "Desmarcar todos") this_checklist.find("input[type='checkbox']").prop("checked", true); } else { checklist_todos.siblings("label").attr("title", "Marcar todos") this_checklist.find("input[type='checkbox']").prop("checked", false); } }); // ANALISANDO CHECAGEM INDIVIDUAL checklist.find(".obr_area_lista_checklist input[type='checkbox']").change(function() { var this_checkbox = $(this); var this_checklist = this_checkbox.closest(".obr_checklist"); // ANALISANDO SE TODOS ESTÃO CHECADOS if (this_checkbox.closest(".obr_area_lista_checklist").find("input[type='checkbox']:checked").length == 0) { this_checklist.find(".obr_checklist_todos").prop("checked", false); this_checklist.find(".obr_checklist_todos").siblings("label").attr("title", "Marcar todos"); } else { this_checklist.find(".obr_checklist_todos").prop("checked", true); this_checklist.find(".obr_checklist_todos").siblings("label").attr("title", "Desmarcar todos"); } }); // BUSCA NA CHECKLIST checklist.find(".obr_busca_checklist").on("keypress keyup keydown change", function() { var this_checklist = $(this) var valor = this_checklist.val(); if (valor != "") { this_checklist.closest(".obr_checklist").find(".obr_item_checklist").hide(); this_checklist.closest(".obr_checklist").find(".obr_item_checklist:instarcontains("+valor+")").show(); } else { this_checklist.closest(".obr_checklist").find(".obr_item_checklist").show(); } }); /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* SUBMISSÃO DO FORMULÁRIO DE FILTRO */ divMenuObras.find("#obr_form_filtro").submit(function(e) { e.preventDefault(); var filtrosFormulario = $(this) // EXIBINDO BOTÃO DE RESET filtrosFormulario.find(".obr_btn_limpar").fadeIn(200); setTimeout(function() { // RECOLHENDO FILTRO fecharFiltro(); }, 300); }); /* SUBMISSÃO DO FORMULÁRIO DE FILTRO */ /* BOTAO RESET DO FORMULARIO */ divMenuObras.find(".obr_btn_limpar").click(function() { botaoMenuDetalhes.prop("disabled", true); // RESETANDO CAMPOS divMenuObras.find(".obr_checklist").addClass("hide"); setTimeout(function() { divMenuObras.find(".obr_busca_checklist").val("").change(); }, 300); // OCULTANDO BOTÃO $(this).fadeOut(200); }); /* BOTAO RESET DO FORMULARIO */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* VIDEOS DA OBRA */ var modal_video = divMenuObras.find(".obr_player_video_modal"); $body.on("click", ".obr_video_obra", function() { var video = $(this); // CAPTURANDO INFO DO VÍDEO var elemento_video = video.find("input").val(); var data_video = video.find(".obr_data_video").text(); var nome_video = video.find(".obr_nome_video").text(); // SETANDO INFO NO IFRAME modal_video.find(".obr_data_video").text(data_video) modal_video.find(".obr_nome_video").text(nome_video) setTimeout(function() { modal_video.find(".obr_video").html(elemento_video) }, 1000); // ABRIR VÍDEO modal_video.addClass("show"); $window.on("keyup click", fecharModalVideo); }); // FECHAR VÍDEO var fecharModalVideo = function(e) { if ((e.keyCode === 27) || (e.target === modal_video.get(0) || e.target.id === "obr_btn_fechar_modal")) { modal_video.removeClass("show"); setTimeout(function() { modal_video.find(".obr_video").html("") }, 400); $window.off("keyup click", fecharModalVideo); } } /* VIDEOS DA OBRA */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* SELECT DO RELATORIO */ selectRelatorioFiltroAno.change(function(mouseEvent){ divsRelatorioInfo.hide(); var optionSelecionada = $(this).find(":selected"); var anoSelecionado = parseInt(optionSelecionada.val()); var totalObrasExecutadas = 0; var totalObrasConcluidas = 0; var totalObrasEmAndamento = 0; var totalObrasSuspensas = 0; var totalObrasEmProjeto = 0; var totalAcompanhamentos = 0; var totalContratos = 0; var totalValor = 0; if (anoSelecionado > 0) { for(var indexMarker = 0; indexMarker < markers.length; indexMarker++) { var item = markers[indexMarker]; if (item.dt_inicio > 0) { var dataInicio = item.dt_inicio_string; dataInicio = dataInicio.split("/"); var ano = dataInicio[(dataInicio.length -1)]; ano = parseInt(ano); if (ano === anoSelecionado) { totalObrasExecutadas++; if (item.situacao === "Concluído") { totalObrasConcluidas++; } else if (item.situacao === "Em Andamento") { totalObrasEmAndamento++; } else if (item.situacao === "Suspensa") { totalObrasSuspensas++; } else if (item.situacao === "Em Projeto") { totalObrasEmProjeto++; } if (item.contrato && item.contrato.nome) { totalContratos++; } if (item.acompanhamentos && item.acompanhamentos.length > 0) { totalAcompanhamentos = totalAcompanhamentos + item.acompanhamentos.length; } var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0; if (valorObra > 0.0) { totalValor = totalValor + valorObra; } } } } } else { for(var indexMarker = 0; indexMarker < markers.length; indexMarker++) { var item = markers[indexMarker]; totalObrasExecutadas++; if (item.situacao === "Concluído") { totalObrasConcluidas++; } else if (item.situacao === "Em Andamento") { totalObrasEmAndamento++; } else if (item.situacao === "Suspensa") { totalObrasSuspensas++; } else if (item.situacao === "Em Projeto") { totalObrasEmProjeto++; } if (item.contrato && item.contrato.nome) { totalContratos++; } if (item.acompanhamentos && item.acompanhamentos.length > 0) { totalAcompanhamentos = totalAcompanhamentos + item.acompanhamentos.length; } var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0; if (valorObra > 0.0) { totalValor = totalValor + valorObra; } } } divRelatorioTotalExecutadas.text("Obras executadas: "+totalObrasExecutadas); divRelatorioTotalConcluidas.text(totalObrasConcluidas); divRelatorioTotalEmAndamento.text(totalObrasEmAndamento); divRelatorioTotalSuspensas.text(totalObrasSuspensas); divRelatorioTotalEmProjeto.text(totalObrasEmProjeto); divRelatorioTotalAcompanhamentos.text("Acompanhamentos: "+totalAcompanhamentos); divRelatorioTotalContratos.text("Contratos: "+totalContratos); divRelatorioTotalValor.text("R$ "+totalValor.toLocaleString("pt-BR", { minimumFractionDigits: 2 })); divsRelatorioInfo.show(); }); /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* Verificar avaliação */ function verificarAvaliacao (nomeCookie) { var arrayCookies = document.cookie.split(";"); for(var i = 0; i < arrayCookies.length; i++) { var cookie = arrayCookies[i].split("="); if(nomeCookie == cookie[0].trim()) { return true; } } return false; } /* Ordenar Vínculos */ function ordenarVinculos (arrayOrdem) { // Revertendo elementos do array (para respeitar a ordem) let ordenacaoElementos = Object.values(arrayOrdem).reverse(); // A cada elemento do array ordenacaoElementos.forEach((elemento) => { let nomeClasse = ".obr_obra_" + elemento let estruturaHtml = document.querySelector(nomeClasse); const elementoAnterior = document.querySelector('.obr_acompanhamentos'); elementoAnterior.insertAdjacentElement('afterend', estruturaHtml); }); } /* VISUALIZAR OBRA */ function visualizarObra(codigoObra) { var fancyBoxOptions = { buttons : [ 'slideShow', 'close' ], loop : true, arrows : true, slideShow : { autoStart : false, speed : 3500 } }; for(var indexMarker = 0; indexMarker < markers.length; indexMarker++) { var item = markers[indexMarker]; item.marker.removeFrom(leafLetMap); item.marker.closePopup(); if (item.codigo === codigoObra) { botaoMenuDetalhes.prop("disabled", false); item.marker.addTo(leafLetMap); item.marker.openPopup(); leafLetMap.setView(item.marker.getLatLng(), zoomMax); divCategoriaObra.css("background", item.cor_marcador); divCategoriaObra.css("color", item.cor_icone); divCategoriaObra.find(".obr_categoria_icone").removeClass().addClass("obr_categoria_icone"); divCategoriaObra.find(".obr_categoria_icone").addClass("swfa fa fa-"+item.icone); divCategoriaObra.find(".obr_categoria_icone").css("background", item.cor_fundo_circulo); divCategoriaObra.find(".obr_categoria_nome").text(item.nome_categoria); divCategoriaObra.parent().find(".obr_nome_obra").text(item.titulo); /* BOTAO SEGUIR */ if (seguirObra) { btnSeguirObra.removeClass(); btnSeguirObra.addClass("sw_btn_seguir_ferramenta sw_lato_bold "+item.seguir_class); btnSeguirObra.attr("title", item.seguir_title); btnSeguirObra.attr("data-id", item.codigo); btnSeguirObra.attr("data-ferramenta", "obras"); btnSeguirObra.attr("data-seguir-acao", item.seguir_acao); $(btnSeguirObra.find("span")[1]).text(item.seguir_txt); } else { btnSeguirObra.hide(); } /* Botão avaliar */ btnAvaliarObra.attr("data-id", item.codigo); var obraAvaliada = verificarAvaliacao("PrefeituraMunicipaldeTaiobeiras-MG-avaliacao-obras-" + item.codigo); btnAvaliarObra.removeClass("avaliar_servico avaliado"); if (obraAvaliada) { btnAvaliarObra.addClass("avaliado") btnAvaliarObra.children(".swfa").removeClass("far fa-star"); btnAvaliarObra.children(".swfa").addClass("fas fa-star"); btnAvaliarObra.children(".sw_txt_btn").text("Avaliado"); } else { btnAvaliarObra.addClass("avaliar_servico") btnAvaliarObra.children(".swfa").removeClass("fas fa-star"); btnAvaliarObra.children(".swfa").addClass("far fa-star"); btnAvaliarObra.children(".sw_txt_btn").text("Avaliar"); } /* INFORMACOES GERIAS */ var logradouro_completo_exibir = ""; if(item.logradouro_completo != "" && item.logradouro_completo != null && item.logradouro_completo != "0") { logradouro_completo_exibir += item.logradouro_completo; } if(item.bairro != "" && item.bairro != null && item.bairro != "0" && item.bairro != "nao_informado") { logradouro_completo_exibir += item.bairro; } if(logradouro_completo_exibir) { divLocalizacaoObra.find(".sw_descricao_detalhe").text(logradouro_completo_exibir); divLocalizacaoObra.show(); } else { divLocalizacaoObra.hide(); } if (item.edital) { divEditalObra.find(".sw_descricao_detalhe").html('<div>'+item.edital.nome+'</div><a href="'+item.edital.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Edital ;<span class="swfa fas fa-search-plus"></span></span></a>'); divEditalObra.show(); } else { divEditalObra.hide(); } if (item.contrato) { divContratoObra.find(".sw_descricao_detalhe").html('<div>'+item.contrato.nome+'</div><a href="'+item.contrato.link+'" target="_blank"><span class="sw_link_acesso_facil sw_lato_medium">Ver Contrato ;<span class="swfa fas fa-search-plus"></span></span></a>'); divContratoObra.show(); } else { divContratoObra.hide(); } if (item.empresa && item.empresa !== "null") { divEmpresaObra.find(".sw_descricao_detalhe").text(item.empresa); divEmpresaObra.show(); } else { divEmpresaObra.hide(); } if (item.fiscal && item.fiscal !== "null") { divFiscalObra.find(".sw_descricao_detalhe").text(item.fiscal); divFiscalObra.show(); } else { divFiscalObra.hide(); } if (item.descricao && item.descricao !== "null") { divDescricao.find(".sw_descricao_detalhe").text(item.descricao); divDescricao.show(); } else { divDescricao.hide(); } if (item.valor && parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) > 0.0) { divValorObra.find("span").text("R$ "+item.valor); divValorObra.show(); } else { divValorObra.hide(); } var valorObra = item.valor ? parseFloat(item.valor.replace(/\./g, "").replace(/,/g, ".")) : 0.0; var valorPagoObra = item.valor_pago ? parseFloat(item.valor_pago.replace(/\./g, "").replace(/,/g, ".")) : 0.0; if (valorPagoObra > 0.0) { spanValorPago.text("R$ "+item.valor_pago); if (valorPagoObra > valorObra){ spanValorPago.addClass("obr_valor_superior"); } else if (valorPagoObra < valorObra){ spanValorPago.addClass("obr_valor_inferior"); } else { spanValorPago.addClass("obr_valor_obra"); } divValorPagoObra.show(); } else { divValorPagoObra.hide(); } /* INFORMACOES GERIAS */ /* EXECUCAO DA OBRA */ spanSituacao.text(item.situacao); if (item.situacao === "Em Andamento") { spanSituacao.addClass("obr_situacao_em_andamento"); } else if (item.situacao === "Suspensa") { spanSituacao.addClass("obr_situacao_suspensa"); } else if (item.situacao === "Concluída") { spanSituacao.addClass("obr_situacao_concluida"); } else if (item.situacao === "Em Projeto") { spanSituacao.addClass("obr_situacao_em_projeto"); } /* MOTIVO DA SUSPENSÃO */ if (item.motivo_paralisacao && item.motivo_paralisacao !== "null") { divMotivoParalisacao.find(".sw_descricao_detalhe").text(item.motivo_paralisacao); divMotivoParalisacao.show(); } else { divMotivoParalisacao.hide(); } /* FONTES DE RECURSO */ if (item.fonte_recurso && item.fonte_recurso !== "null") { var fontes_recursos = item.fonte_recurso.substr(0, item.fonte_recurso.length - 2); divFonteRecurso.find(".sw_descricao_detalhe").text(fontes_recursos); divFonteRecurso.show(); } else { divFonteRecurso.hide(); } if (item.dt_inicio) { divDataInicio.find(".sw_descricao_detalhe").text(item.dt_inicio_string); } else { divDataInicio.hide(); } if (item.dt_fim) { divDataFim.find(".sw_descricao_detalhe").text(item.dt_fim_string); } else { divDataFim.hide(); } if (item.dt_inicio && item.dt_fim && item.situacao === 'Em Andamento') { var dataItemFim = item.dt_fim; var dataAgora = Date.now() / 1000; if (dataAgora > dataItemFim && ((dataAgora - dataItemFim) >= (24 * 60 * 60))) { var diferenca = dataAgora - dataItemFim; var diferencaDias = diferenca / (24 * 60 * 60); diferencaDias = ~~diferencaDias; divObraAtraso.find(".sw_descricao_detalhe").html('Esta obra está <strong>'+diferencaDias+' dias</strong> atrasada.'); divObraAtraso.find(".obr_execucao_atraso").show(); divDataFim.find(".sw_descricao_detalhe").append() divObraAtraso.show(); } else { divObraAtraso.hide(); } } else { divObraAtraso.hide(); divObraAtraso.find(".obr_execucao_atraso").hide(); } /* EXECUCAO DA OBRA */ /* ACOMPANHAMENTOS */ divAcompanhamentosObras.find(".sw_linha_lista_detalhes.obr_acompanhamento_info.obr_acompanhamento_modelo").remove(); if (item.acompanhamentos.length > 0) { var porcentagemConcluido = 0 item.acompanhamentos.forEach(function(acompanhamento){ var divAcompanhamentoModelo = acompanhamentoModelo.clone(); var spanPorcentagem = divAcompanhamentoModelo.find("div.obr_porcentagem_acompanhamento span"); spanPorcentagem.text(acompanhamento.porcentagem+"%"); spanPorcentagem.css("min-width", acompanhamento.porcentagem+"%"); var spanDtConclusao = divAcompanhamentoModelo.find(".obr_data_acompanhamento"); var spanSituacao = divAcompanhamentoModelo.find(".obr_situacao_acompanhamento"); spanSituacao.text(acompanhamento.situacao); var spanDescricao = divAcompanhamentoModelo.find(".obr_descricao_acompanhamento"); spanDescricao.text(acompanhamento.descricao); if (acompanhamento.situacao === "Concluído") { spanSituacao.addClass("obr_situacao_concluida"); spanSituacao.show(); spanDtConclusao.text(acompanhamento.dt_conclusao); spanDtConclusao.show(); porcentagemConcluido = porcentagemConcluido + parseInt(acompanhamento.porcentagem); } else { spanDtConclusao.hide(); } var divVerFotosAcompanhamento = divAcompanhamentoModelo.find(".obr_link_obra.obr_link_ver_fotos"); if (acompanhamento.fotos && Object.values(acompanhamento.fotos).length > 0) { var fancyBoxSrc = []; Object.values(acompanhamento.fotos).forEach(function(foto){ var legenda = ""; if (foto.legenda && foto.legenda !== "null") { legenda = foto.legenda; } var src = { src: foto.arquivo, opts: { caption: legenda } }; fancyBoxSrc.push(src); }); divVerFotosAcompanhamento.click(function(mouseEvent){ $.fancybox.open(fancyBoxSrc, fancyBoxOptions, 0); }); divVerFotosAcompanhamento.show(); } else { divVerFotosAcompanhamento.hide(); } divAcompanhamentoModelo.insertBefore(divTotalAcompanhamentos) divAcompanhamentoModelo.show(); }); if (porcentagemConcluido > 0) { spanTotalPorcentagem.css("min-width", porcentagemConcluido+"%"); spanTotalPorcentagem.text(porcentagemConcluido+"%"); divTotalAcompanhamentos.show(); } else { divTotalAcompanhamentos.hide(); } divAcompanhamentosObras.show(); } else { divAcompanhamentosObras.hide(); } /* ACOMPANHAMENTOS */ // Ordena as estruturas HTML de acordo com os vínculos ordenarVinculos(item.ordem_vinculos); /* FOTOS */ if (Object.values(item.fotos).length > 0) { divFotosObra.find("div.vinc_cont_img_galeria_fotos.obr_foto_modelo").remove(); var dataIndex = -1; var fancyBoxSrc = []; Object.values(item.fotos).forEach(function(foto){ var divFotoModelo = fotoModelo.clone(); dataIndex = dataIndex + 1; var legenda = ""; var imgElemento = divFotoModelo.find("img"); imgElemento.attr("src", foto.arquivo); imgElemento.attr("data-index", dataIndex); if (foto.legenda && foto.legenda !== "null") { imgElemento.attr("alt", foto.legenda); legenda = foto.legenda; } else { imgElemento.attr("alt", ""); } // divFotoModelo.attr("data-fancybox", "gallery"+item.codigo); divContFotos.append(divFotoModelo); divFotoModelo.show(); var src = { src: foto.arquivo, opts: { caption: legenda } }; fancyBoxSrc.push(src); }); divContFotos.find("div.vinc_cont_img_galeria_fotos").click(function(mouseEvent){ var target = mouseEvent.target; target = $(target); var indexClick = 0; if (target.attr("data-index") >=0) { indexClick = target.attr("data-index"); } $.fancybox.open(fancyBoxSrc, fancyBoxOptions, indexClick); }); var fotosQtde = Object.values(item.fotos).length; var classeGaleriaFotos = ""; if(fotosQtde < 6) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_l"+fotosQtde; } else if(fotosQtde % 6 == 5) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr5"; } else if(fotosQtde % 6 == 4) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr4"; } else if(fotosQtde % 6 == 3) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr3"; } else if(fotosQtde % 6 == 2) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr2"; } else if(fotosQtde % 6 == 1) { classeGaleriaFotos = "vinc_cont_galeria_fotos_vinculada_lr1"; } divFotosObra.find(".vinc_cont_galeria_fotos_vinculada").addClass(classeGaleriaFotos); divFotosObra.show(); } else { divFotosObra.hide(); } /* FOTOS */ /* VIDEOS */ divVideosObra.find("div.obr_video_obra.obr_video_modelo").remove(); if (Object.values(item.videos).length > 0) { Object.values(item.videos).forEach(function(video){ if (video.video && video.video !== "null") { var divVideoModelo = videoModelo.clone(); var divImg = divVideoModelo.find(".obr_img_video"); if (video.imagem && video.imagem !== "null") { var imgVideo = divImg.find("img"); imgVideo.attr("src", video.imagem); imgVideo.attr("alt", video.nome); divImg.show(); } else { divImg.hide(); } var divData = divVideoModelo.find(".obr_data_video"); if (video.data && video.data !== "null") { divData.text(video.data); divData.show(); } else { divData.hide(); } var divNome = divVideoModelo.find(".obr_nome_video"); if (video.nome && video.nome !== "null") { divNome.text(video.nome); } var inputHidden = divVideoModelo.find("input[type='hidden']"); inputHidden.val(video.video); divVideoModelo.show(); divVideosObra.append(divVideoModelo); } }); divVideosObra.parent().show(); } else { divVideosObra.parent().hide(); } /* VIDEOS */ /* ARQUIVOS */ divArquivosObra.find("a.obr_arquivo_modelo").remove(); if (Object.values(item.arquivos).length > 0) { Object.values(item.arquivos).forEach(function(arquivo){ var aModelo = arquivoModelo.clone(); aModelo.attr("href", arquivo.arquivo); var imgExtensao = aModelo.find("img"); imgExtensao.attr("src", arquivo.img_extensao); imgExtensao.attr("alt", arquivo.extensao); var divDataArquivo = aModelo.find(".sw_data_arquivo_download"); if (arquivo.data && arquivo.data !== "null") { divDataArquivo.text(arquivo.data); divDataArquivo.show(); } else { divDataArquivo.hide(); } var divNomeArquivo = aModelo.find(".sw_nome_arquivo_download"); if (arquivo.nome && arquivo.nome !== "null") { divNomeArquivo.text(arquivo.nome); divNomeArquivo.show(); } else { divNomeArquivo.hide(); } aModelo.show(); divArquivosObra.append(aModelo); }); divArquivosObra.show(); } else { divArquivosObra.hide(); } /* ARQUIVOS */ /* SECRETARIAS */ divSecretariasObra.find("a.obr_secretaria_modelo").remove(); if (Object.values(item.secretarias).length > 0) { Object.values(item.secretarias).forEach(function(secretaria){ var aSecretariaModelo = secretariaModelo.clone(); aSecretariaModelo.attr("href", secretaria.link) aSecretariaModelo.attr("target", secretaria.abertura); var imgModelo = aSecretariaModelo.find("img"); imgModelo.attr("src", secretaria.imagem); imgModelo.attr("alt", secretaria.nome); var divNomeSecretaria = aSecretariaModelo.find(".obr_nome_secretaria"); divNomeSecretaria.text(secretaria.nome); aSecretariaModelo.show(); divSecretariasObra.append(aSecretariaModelo); }); divSecretariasObra.show(); } else { divSecretariasObra.hide(); } /* SECRETARIAS */ /* VALORES E PRAZOS */ if (item.valor || item.valor_pago) { if (valorObra > 0.0 && valorPagoObra > 0.0) { spanValorContrato.text("R$ "+item.valor); spanValorPagoFinal.text("R$ "+item.valor_pago); if (valorObra >= valorPagoObra) { spanValorContrato.css("min-width", "100%"); spanValorPagoFinal.parent().addClass("obr_estatistica_positiva"); spanValorPagoFinal.css("min-width", ((valorPagoObra * 100) / valorObra)+"%"); } else if (valorObra < valorPagoObra) { spanValorPagoFinal.css("min-width", "100%"); spanValorPagoFinal.parent().addClass("obr_estatistica_negativa"); spanValorContrato.css("min-width", ((valorObra * 100) / valorPagoObra)+"%"); } divValorContrato.show(); divValorUtilizado.show(); } else { if (valorObra > 0.0) { spanValorContrato.text("R$ "+item.valor); spanValorContrato.css("min-width", "100%"); divValorContrato.show(); divValorUtilizado.hide(); } else if (valorPagoObra > 0.0) { spanValorPagoFinal.text("R$ "+item.valor_pago); spanValorPagoFinal.css("min-width", "100%"); divValorUtilizado.show(); divValorContrato.hide(); } else { divValorContrato.parent().hide(); } } divValorContrato.parent().show(); } else { divValorContrato.parent().hide(); } if (item.dt_inicio && item.dt_fim) { var dataInicio = item.dt_inicio; var dataFim = item.dt_fim; var dias = (dataFim - dataInicio) / (24 * 60 * 60); divPrazoRealizacao.find("span").text(dias+" dias"); divPrazoRealizacao.show(); } else { divPrazoRealizacao.parent().hide(); } /* VALORES E PRAZOS */ divAreaDetalhes.show(); $(".obr_btn_detalhes").trigger("click"); } } } $body.on("click", ".obr_link_ver_obra", function(){ botaoMenuDetalhes.prop("disabled", false); var codigoObra = $(this).data("codigo"); codigoObra = parseInt(codigoObra); if (codigoObra > 0) { visualizarObra(codigoObra); } }); /* VISUALIZAR OBRA */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* SEGUIR OBRA */ btnSeguirObra.click(function(mouseEvent){ if (seguirObra) { if (btnSeguirObra.hasClass("itn_btn_login")) { sw_popup("#itn_login", "S"); /* RECUPERAÇÃO DE SENHA */ $("#link_senha").click(function() { sw_abrir_janela("/portal/internautas/recuperar-senha", 450, 600) }); } else { // TRATANDO TEXTO/AÇÃO DO MODAL var seguirAcao = btnSeguirObra.attr("data-seguir-acao"); var textoModal = ""; if(seguirAcao == "seguir") { textoModal = "Ao seguir este item você receberá por e-mail todas suas atualizações em tempo real." } else if(seguirAcao == "deixar_seguir") { textoModal = "Ao deixar de seguir este item você deixará de receber por e-mail todas suas atualizações em tempo real."; } swal({ title: "Atenção!", text: textoModal, icon: "warning", buttons: ["Cancelar", "OK"], }) .then(function(acao) { if(acao === true) { var codigo = btnSeguirObra.attr("data-id"); codigo = parseInt(codigo); var ferramenta = btnSeguirObra.attr("data-ferramenta"); // ANALISANDO SE ESTÁ LOGADO if (!btnSeguirObra.hasClass("itn_btn_login")) { //ANALISANDO AÇÃO var acao; if (!btnSeguirObra.hasClass("sw_seguindo")) { acao = "cadastrar"; } else { acao = "remover"; } $.ajax({ url: "/portal/notificacoes/seguir/ferramentas/", type: "POST", data: "acao="+acao+"&ferramenta="+ferramenta+"&codigo="+codigo, async: false, beforeSend: function(){ sw_carregando_fs("show"); }, complete: function() { sw_carregando_fs("hide"); }, success: function(data) { data = JSON.parse(data); if(data.erro != "" && data.erro != undefined) { swal({ text: data.erro, icon: "error", }); } else { // ANALISANDO AÇÃO if (acao == "cadastrar") { btnSeguirObra.addClass("sw_seguindo").attr("title", "Clique para deixar de seguir ").find(".sw_txt_btn").text("Seguindo"); btnSeguirObra.attr("data-seguir-acao","deixar_seguir"); } else { btnSeguirObra.removeClass("sw_seguindo").attr("title", "Clique para seguir").find(".sw_txt_btn").text("Seguir"); btnSeguirObra.attr("data-seguir-acao","seguir"); } for(var indexMarcador = 0; indexMarcador < markers.length; indexMarcador++) { var item = markers[indexMarcador]; if (item.codigo === codigo) { if (acao === "cadastrar") { item.seguir_acao = "deixar_seguir"; item.seguir_class = "sw_seguindo btn_seguir_ferramenta"; item.seguir_txt = "Seguindo"; item.seguir_title = "Clique para deixar de seguir."; } else { item.seguir_acao = "seguir"; item.seguir_class = "btn_seguir_ferramenta disabled"; item.seguir_txt = "Seguir"; item.seguir_title = "Clique para seguir."; } break; } } } }, error: function(data) { swal({ text: "Algo de errado aconteceu, tente novamente!", icon: "error", }) .then(function() { location.reload(true); }); } }); } } }); } } }); /* SEGUIR OBRA */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ACESSIBILIDADE */ //BOTÃO DE CONTRASTE DE COR $("#obra_contraste").click(function () { if($("body").hasClass("contraste")) { $("body").removeClass("contraste"); $("body").css("background","#FFFFFF"); $("#logo_branca").hide(); $("#logo_mobile").show(); } else { $("body").addClass("contraste"); $("#logo_branca").show(); $("#logo_mobile").hide(); } }); /* ACESSIBILIDADE */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* CRIANDO MAPA */ leafLetMap = Mapa("leaflet_map"); /* CRIANDO MAPA */ var abrirRelatorio = false; var codigoObra = 10; if (abrirRelatorio) { var anoSelecionado = 0; if (anoSelecionado > 0) { selectRelatorioFiltroAno.find("option[value='"+anoSelecionado+"']").prop("selected", true); } divMenuObras.find("button[data-menu='obr_content_relatorio']").trigger("click"); } else { if (codigoObra > 0) { visualizarObra(codigoObra); } } /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ // ABRIR MODAL/ALERT CONFIRMAÇÃO $(".btn_modal_boletim").click(function() { swal({ title: "Atenção!", text: "Ao confirmar você será redirecionado para sua área de preferências para que possa gerenciador o Boletim Informativo.", icon: "warning", buttons: ["Cancelar", "OK"], }) .then(function(acao) { if(acao === true) { window.open("/portal/internautas/dados/preferencias/#boletim_informativo", "_blank"); } }); }); /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ /* ############################################################################################################################################################################################# */ }); </script>]]>
2696 <![CDATA[<script> window.dataLayer = window.dataLayer || []; function gtag(){dataLayer.push(arguments);} gtag('js', new Date()); gtag('config', 'UA-32052942-1'); </script>]]>
2710 <![CDATA[<script> var ua = window.navigator.userAgent; var isIE11 = /Trident.*rv[ :]*11\./.test(navigator.userAgent); var msie = ua.indexOf("MSIE "); if ((((msie > 0) && (parseInt(ua.substring(msie + 5, ua.indexOf(".", msie))) < 11)) === false) && isIE11 === false) { $('#vlibras_include').html('<div vw class="enabled"><div vw-access-button class="active"></div><div vw-plugin-wrapper><div class="vw-plugin-top-wrapper"></div></div></div>'); new window.VLibras.Widget('https://vlibras.gov.br/app'); $(window).on("load", function(){ $('#vlibras_include img').each( function(){ $(this).attr("alt", "Imagem VLibras"); }); }); } </script>]]>
2727 <![CDATA[<script> // Cancelar leitura digital window.onbeforeunload = window.speechSynthesis.cancel(); /* ============================================================================================ FUNÇÃO PARA RETORNO DA VOTAÇÃO DA ENQUETE ============================================================================================ */ function retorna_enquete(data){ if(data != '') { $('#votar').hide(); $("#e_cont_enquete").html(data); } } /* ============================================================================================ POPUP ============================================================================================ */ // FUNÇÃO ABRIR PÁGINA function sw_abrir_janela(pagina, altura, largura) { var a = (screen.height/2)-(altura/2); var l = (screen.width/2)-(largura/2); window.open(pagina,'senha','width='+largura+',height='+altura+',top='+a+',left='+l+',scrollbars=1'); } // ABRIR POPUP function sw_abrir_popup(elemento) { elemento.fadeIn(200); elemento.find(".sw_popup").animate({"top": "+20px"}, "fast"); $("body").css("overflow", "hidden"); } // FECHAR POPUP function sw_fechar_popup(elemento) { elemento.fadeOut(200); elemento.find(".sw_popup").animate({"top": "-20px"}, "fast", function() { $(".sw_popup_modal:visible").last().find("input, button").first().focus(); }); setTimeout(function () { if (!$(".sw_popup_modal:visible").length) { $("body").css("overflow", "auto"); } }, 400); } // SW POPUP ( ".ELEMENTO / #ELEMENTO" , "SE MODAL PODE SER FECHADO OU NÃO") function sw_popup(elemento, fechar) { if (!fechar) { fechar = "S"; } var id_elemento = elemento.substr(1); // REMOVE O PRIMEIRO CARACTERE (# OU .) var elemento = $(elemento); // ABRIR POPUP sw_abrir_popup(elemento); // FECHAR POPUP elemento.find(".sw_btn_fechar_popup").click(function() { sw_fechar_popup(elemento); }); // ANALISANDO SE MODAL PODE SER FECHADO AO CLICAR FORA DA JANELA E AO TECLAR ESC if (fechar == "S") { elemento.addClass("keyupmodal") // FECHAR AO CLICAR NA TELA ESCURA elemento.mousedown(function(e) { if (e.target.id == id_elemento) { sw_fechar_popup(elemento); } }); //elemento.click(function() { console.log("fechou!"); sw_fechar_popup(elemento); }); //elemento.find(".sw_popup").on("click", function() { event.stopPropagation(); }); // FECHAR AO CLICAR ESC $(document).on("keyup", function(e) { if (e.keyCode === 27) { var modal_fehcar, zindex_fechar = 0; $(".sw_popup_modal.keyupmodal:visible").each(function() { var modal = $(this); var zindex_modal = parseInt(modal.css("z-index")); if (zindex_modal > zindex_fechar) { zindex_fechar = zindex_modal; modal_fechar = modal; } }); // FECHAR MODAL sw_fechar_popup(modal_fechar); } }); } } /* ============================================================================================ ACESSIBILIDADE ============================================================================================ */ // SW ACESSIBILIDADE if (typeof sw_acessibilidade !== "function") { function sw_acessibilidade(param, callback) { // ANALISANDO PARÂMETROS if (typeof param === "undefined" || !param) { param = {} } if (typeof param.media === "undefined") { param.media = "desktop" } // ANALISANDO MEDIA if ( (param.media === "todas" || param.media === "all") || (param.media === "desktop" && window.innerWidth > 1000) || (param.media === "mobile" && window.innerWidth <= 1000) || (window.innerWidth <= param.media) ) { // ANALISANDO PARÂMETROS if (typeof param.layout === "undefined") { param.layout = "a1" } if (typeof param.caminho === "undefined") { param.caminho = "body" } // FUNÇÕES if (param.fonte !== false) { param.fonte = true; } if (param.contraste !== false) { param.contraste = true; } if (param.mapa !== false) { param.mapa = true; } if (param.vlibras !== false) { param.vlibras = true; } if (param.pagina !== false) { param.pagina = true; } if (param.transicoes !== false) { param.transicoes = true; } if (param.reset !== false) { param.reset = true; } if (param.irconteudo !== false) { param.irconteudo = true; } if (param.irmenu !== false) { param.irmenu = true; } if (param.irbusca !== false) { param.irbusca = true; } if (param.irrodape !== false) { param.irrodape = true; } // CRIANDO ELEMENTOS var sw_acessibilidade = $("#sw_acessibilidade"); if (!sw_acessibilidade.length) { sw_acessibilidade = $('<div id="sw_acessibilidade" />'); $(param.caminho).prepend(sw_acessibilidade); } sw_acessibilidade.addClass("sw_area_acessibilidade " + param.layout); // BOTÃO MENU ACESSIBILIDADE if (!sw_acessibilidade.find("#sw_btn_menu_acessibilidade").length) { var btn_menu_acessibilidade = $('<div id="sw_btn_menu_acessibilidade" class="sw_btn_menu_acessibilidade" />') // INSERINDO ÍCONE DE ACESSIBILIDADE E FECHAR btn_menu_acessibilidade.append('<div class="sw_icone_acessibilidade" />') .append('<div class="sw_icone_fechar" />'); // INSERINDO BOTÃO MENU sw_acessibilidade.append(btn_menu_acessibilidade); } // CLICK DO BOTÃO sw_acessibilidade.find("#sw_btn_menu_acessibilidade").on({ "click": function() { sw_acessibilidade.toggleClass("show"); } }); sw_acessibilidade.on({ "mouseenter": function() { if (window.innerWidth >= 1000) { sw_acessibilidade.addClass("show"); } }, "mouseleave": function() { if (window.innerWidth >= 1000) { sw_acessibilidade.removeClass("show"); } } }); // CONT ACESSIBILIDADE if (!sw_acessibilidade.find(".sw_cont_acessibilidade").length) { sw_acessibilidade.append('<div class="sw_cont_acessibilidade" />'); } // TÍTULO ACESSIBILIDADE if (!sw_acessibilidade.find(".sw_titulo_acessibilidade").length) { sw_acessibilidade.find(".sw_cont_acessibilidade").append('<div class="sw_titulo_acessibilidade"><span>Acessibilidade</span></div>'); } // ÁREA BOTÕES if (!sw_acessibilidade.find(".sw_area_botoes_acessibilidade").length) { sw_acessibilidade.find(".sw_cont_acessibilidade").append('<div class="sw_area_botoes_acessibilidade" />'); } // FUNÇÃO INSERE BOTÃO DE ACESSIBILIDADE function sw_insere_btn_acessibilidade(param_btn) { if (param_btn.seletor) { // ANALISANDO SE O ELEMENTO NÃO EXISTE PARA ENTÃO CRIAR if (!sw_acessibilidade.find(param_btn.seletor).length) { var item = $( '<a>'+ '<div></div>'+ '</a>' ).attr( param_btn.seletor.charAt(0) === '#' ? 'id' : 'class', param_btn.seletor.substring(1) ); // CLASSES if (param_btn.classes) { item.find("div").addClass(param_btn.classes); } // DESCRIÇÃO if (param_btn.descricao) { item.find(".sw_btn_acessibilidade").append('<span class="sw_txt_btn_acessibilidade">'+param_btn.descricao+'</span>'); item.attr("title", param_btn.descricao); } // ÍCONE if (param_btn.icone) { item.find(".sw_btn_acessibilidade").append('<span class="sw_icone_btn tamanho_fixo swfa '+param_btn.icone+'" />') } // LINK if (param_btn.link) { item.attr("href", param_btn.link); } // ACCESSKEY if (param_btn.accesskey) { item.attr("accesskey", param_btn.accesskey); // INSERINDO TECLADO NUMÉRICO window.addEventListener("keydown", function(e) { var keyCode = e.keyCode || e.which; if (e.altKey && keyCode === param_btn.accesskey+96) { if (param_btn.link) { window.location.href = param_btn.link; } else { item.trigger("click") } } }, false) } // INSERINDO ITEM sw_acessibilidade.find(".sw_area_botoes_acessibilidade").append(item); } } } // ============================================================= // BOTÃO AUMENTAR // ============================================================= if (param.fonte && !sw_acessibilidade.find("#sw_btn_aumentar_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_aumentar_acessibilidade", classes: "sw_btn_acessibilidade sw_btn_aumentar_acessibilidade", icone: "fas fa-plus", descricao: "Aumentar fonte" }); } // ATRIBUINDO FUNÇÃO sw_acessibilidade.find("#sw_btn_aumentar_acessibilidade").click(function() { // CARREGANDO FS sw_carregando_fs("show"); // ALTERANDO FONTS sw_altera_fonts(1); // REMOVE CARREGANDO FS setTimeout(function() { sw_carregando_fs("hide"); }, 400); }); // ============================================================= // BOTÃO DIMINUIR // ============================================================= if (param.fonte && !sw_acessibilidade.find("#sw_btn_diminuir_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_diminuir_acessibilidade", classes: "sw_btn_acessibilidade sw_btn_diminuir_acessibilidade", icone: "fas fa-minus", descricao: "Diminuir fonte" }); } // ATRIBUINDO FUNÇÃO sw_acessibilidade.find("#sw_btn_diminuir_acessibilidade").click(function() { // CARREGANDO FS sw_carregando_fs("show"); // ALTERANDO FONTS sw_altera_fonts(-1); // REMOVE CARREGANDO FS setTimeout(function() { sw_carregando_fs("hide"); }, 400); }); // ============================================================= // BOTÃO CONTRASTE // ============================================================= if (param.contraste && !sw_acessibilidade.find("#sw_btn_contraste_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_contraste_acessibilidade", classes: "sw_btn_acessibilidade sw_btn_contraste_acessibilidade", icone: "fas fa-adjust", descricao: "Alto contraste", accesskey: 5 }); } // ATRIBUINDO FUNÇÃO sw_acessibilidade.find("#sw_btn_contraste_acessibilidade").click(function() { var action_contraste = (localStorage.getItem("sw_acessibilidade_contraste") === "true") ? false : true; sw_contraste(action_contraste); }); // ============================================================= // BOTÃO VLIBRAS // ============================================================= if (param.vlibras && !sw_acessibilidade.find("#sw_btn_vlibras_acessibilidade").length && $("#vlibras_include img").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_vlibras_acessibilidade", classes: "sw_btn_acessibilidade sw_btn_vlibras_acessibilidade", icone: "fas fa-sign-language", descricao: "Habilitar VLibras", accesskey: 7 }); } // ATRIBUINDO FUNÇÃO sw_acessibilidade.find("#sw_btn_vlibras_acessibilidade").click(function() { var action_vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") === "true") ? false : true; sw_vlibras(action_vlibras); }); var vlibras_include = $("#vlibras_include"); if (vlibras_include.length) { // BOTÃO ABRIR VLIBRAS vlibras_include.on("click", "div[vw-access-button]", function(e) { setTimeout(function() { sw_vlibras(true); }, 100); }); // BOTÃO FECHAR VLIBRAS vlibras_include.on("click", "img.vpw-settings-btn-close", function() { setTimeout(function() { sw_vlibras(false); }, 100); }); } // ============================================================= // BOTÃO TRANSIÇÕES // ============================================================= if (param.transicoes && !sw_acessibilidade.find("#sw_btn_transicoes_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_transicoes_acessibilidade", classes: "sw_btn_acessibilidade sw_btn_transicoes_acessibilidade", icone: "fab fa-delicious", descricao: "Ativar/Desativar transições" }); } // ATRIBUINDO FUNÇÃO sw_acessibilidade.find("#sw_btn_transicoes_acessibilidade").click(function() { // CARREGANDO FS sw_carregando_fs("show"); // ACIONANDO FUNÇÃO var action_transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") === "true") ? false : true; sw_desativa_transicoes(action_transicoes); // REMOVE CARREGANDO FS setTimeout(function() { sw_carregando_fs("hide"); }, 400); }); // ============================================================= // BOTÃO MAPA // ============================================================= if (param.mapa && !sw_acessibilidade.find("#sw_btn_mapa_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_mapa_acessibilidade", classes: "sw_btn_acessibilidade sw_btn_mapa_acessibilidade", icone: "fas fa-sitemap", descricao: "Mapa do site", link: "/portal/mapa" }); } // ============================================================= // BOTÃO ACESSIBILIDADE PÁGINA // ============================================================= if (param.pagina && !sw_acessibilidade.find("#sw_btn_pagina_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_pagina_acessibilidade", classes: "sw_btn_acessibilidade sw_btn_pagina_acessibilidade", icone: "fas fa-wheelchair", descricao: "Página de Acessibilidade", link: "/portal/acessibilidade", accesskey: 6 }); } // ============================================================= // BOTÃO RESET // ============================================================= if (param.reset && !sw_acessibilidade.find("#sw_btn_reset_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_reset_acessibilidade", classes: "sw_btn_acessibilidade sw_btn_reset_acessibilidade", icone: "fas fa-undo", descricao: "Resetar acessibilidade" }); } // ATRIBUINDO FUNÇÃO sw_acessibilidade.find("#sw_btn_reset_acessibilidade").click(function() { // CARREGANDO FS sw_carregando_fs("show"); // RESETANDO ACESSIBILIDADE var reset = true; set_acessibilidade(reset); // REMOVE CARREGANDO setTimeout(function() { sw_carregando_fs("hide"); }, 400); }).hide(); // ============================================================= // BOTÃO IR PARA O CONTEÚDO // ============================================================= if (param.irconteudo && !sw_acessibilidade.find("#sw_btn_irconteudo_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_irconteudo_acessibilidade", classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irconteudo_acessibilidade", icone: "fas fa-desktop", descricao: "Ir para o conteúdo", link: (location.pathname === "/" || location.pathname === "/portal" || location.pathname === "/portal/") ? "#e_conteudo" : "#e_centralizar", accesskey: 1 }); } // ============================================================= // BOTÃO IR PARA O MENU // ============================================================= if (param.irmenu && !sw_acessibilidade.find("#sw_btn_irmenu_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_irmenu_acessibilidade", classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irmenu_acessibilidade", icone: "fas fa-bars", descricao: "Ir para o menu", link: "#e_cont_topo", accesskey: 2 }); } // ============================================================= // BOTÃO IR PARA A BUSCA // ============================================================= if (param.irbusca && !sw_acessibilidade.find("#sw_btn_irbusca_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_irbusca_acessibilidade", classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irbusca_acessibilidade", icone: "fas fa-search", descricao: "Ir para a busca", link: "#e_campo_busca", accesskey: 3 }); } // IR PARA BUSCA $("#irbusca").click(function () { $("#e_campo_busca").focus(); }); // FORMULÁRIO $("#formulario_busca").bind('submit',function() { var busca = ($("#e_campo_busca").val() == "") ? 0 : $("#e_campo_busca").val(); window.location.href = '/portal/busca/' + busca; return false; }); // ============================================================= // BOTÃO IR PARA O RODAPÉ // ============================================================= if (param.irrodape && !sw_acessibilidade.find("#sw_btn_irrodape_acessibilidade").length) { sw_insere_btn_acessibilidade({ seletor: "#sw_btn_irrodape_acessibilidade", classes: "sw_btn_acessibilidade sw_link_acessibilidade sw_btn_irrodape_acessibilidade", icone: "fas fa-arrow-down", descricao: "Ir para o rodapé", link: "#e_cont_rodape", accesskey: 4 }); } } } } // FUNÇÃO AUMENTAR / DIMINUIR FONTS if (typeof sw_altera_fonts !== "function") { function sw_altera_fonts(action) { var elemento; var body = $("body"); var fonte = (localStorage.getItem("sw_acessibilidade_fonte") !== null) ? parseInt(localStorage.getItem("sw_acessibilidade_fonte")) : 0; var fontoriginal; var font_size; var nova_font_size; // ANALISANDO SE FONT ORIGINAL E PARÂMETRO SÃO DIFERENTES DE ZERO if (!((action === 0 || action === false || action === null) && fonte === 0)) { // CALCULANDO NOVA FONT nova_font_size = (action === 0) ? 0 : fonte + action; // PERCORRENDO ELEMENTOS DO BODY E SETANDO FONTS ORIGINAIS if (nova_font_size >= -5 && nova_font_size <= 5) { body.find("*").each(function() { elemento = $(this); // ANALISANDO | SE ELEMENTO PAI CONTÉM A CLASSE TAMANHO_FIXO | && | SE O ELEMENTO NÃO TEM FONT-SIZE ZERO OU | && | SE O ELEMENTO NÃO TEM A CLASSE TAMANHO_FIXO if ( (!elemento.parents(".tamanho_fixo").length) && (elemento.css("font-size").replace(/\D/g, "") > 0) && (!elemento.hasClass("tamanho_fixo")) ) { // ANALISANDO ESTADO ATUAL DAS FONTS fontoriginal = elemento.attr("data-fontoriginal"); if (typeof fontoriginal === "undefined" || fontoriginal === false) { // SETANDO ATRIBUTO DATA-FONTSIZE ATUAL fontoriginal = parseInt(elemento.css("font-size").replace("px", "")); elemento.attr("data-fontoriginal", fontoriginal) } } }); // PERCORRENDO ELEMENTOS DO BODY E ALTERANDO FONT-SIZE body.find("[data-fontoriginal]").each(function() { elemento = $(this); // ANALISANDO FONT ATUAL DO ELEMENTO fontoriginal = parseInt(elemento.attr("data-fontoriginal")); font_size = fontoriginal + nova_font_size; elemento.css({"font-size" : font_size + "px"}); }); // ATUALIZANDO LOCAL STORAGE if (nova_font_size == 0) { localStorage.removeItem("sw_acessibilidade_fonte"); } else { localStorage.setItem("sw_acessibilidade_fonte", nova_font_size); } } // ACIONANDO FUNÇÃO SET ACESSIBILIDADE sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade); } } } // FUNÇÃO CONTRASTE if (typeof sw_contraste !== "function") { function sw_contraste(action) { var body = $("body"); var contraste = (localStorage.getItem("sw_acessibilidade_contraste") !== null) ? localStorage.getItem("sw_acessibilidade_contraste") : false; // ANALISANDO SE HÁ MUDANÇA DE AÇÃO if (typeof action === "undefined" || action === null) { action = contraste; } // REMOVENDO TRANSIÇÕES MOMENTANEAMENTE body.addClass("transition0s"); setTimeout(function() { body.removeClass("transition0s"); }, 100); // ANALISANDO AÇÃO if (action || action === "true") { body.addClass("contraste"); // SETANDO LOCAL STORAGE localStorage.setItem("sw_acessibilidade_contraste", action); } else { body.removeClass("contraste"); // RESETANDO LOCAL STORAGE localStorage.removeItem("sw_acessibilidade_contraste"); } // ACIONANDO FUNÇÃO SET ACESSIBILIDADE sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 200, sw_deb_acessibilidade); } } // FUNÇÃO DESATIVA TRANSIÇÕES if (typeof sw_desativa_transicoes !== "function") { function sw_desativa_transicoes(action) { var contents = $("body >*"); var transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") !== null) ? localStorage.getItem("sw_acessibilidade_transicoes") : false; // ANALISANDO SE HÁ MUDANÇA DE AÇÃO if (typeof action === "undefined" || action === null) { action = transicoes; } // ANALISANDO AÇÃO if (action || action === "true") { contents.addClass("transition0s"); // SETANDO LOCAL STORAGE localStorage.setItem("sw_acessibilidade_transicoes", true); } else { contents.removeClass("transition0s"); // RESETANDO LOCAL STORAGE localStorage.removeItem("sw_acessibilidade_transicoes"); } // ACIONANDO FUNÇÃO SET ACESSIBILIDADE sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade); } } // FUNÇÃO HABILITA VLIBRAS if (typeof sw_vlibras !== "function") { function sw_vlibras(action) { var vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") !== null) ? localStorage.getItem("sw_acessibilidade_vlibras") : false; var vlibras_include = $("#vlibras_include"); // ANALISANDO SE HÁ MUDANÇA DE AÇÃO if (typeof action === "undefined" || action === null) { action = vlibras; } // ANALISANDO AÇÃO if (action || action === "true") { if (vlibras_include.find("div[vw-access-button]").hasClass("active")) { vlibras_include.find("div[vw-access-button]").trigger("click"); } // SETANDO LOCAL STORAGE localStorage.setItem("sw_acessibilidade_vlibras", action); } else { if (!vlibras_include.find("div[vw-access-button]").hasClass("active")) { vlibras_include.find("img.vpw-settings-btn-close").trigger("click"); } // RESETANDO LOCAL STORAGE localStorage.removeItem("sw_acessibilidade_vlibras"); } // ACIONANDO FUNÇÃO SET ACESSIBILIDADE sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade); } } // FUNÇÃO SET ACESSIBILIDADE // INDICA AO USUÁRIO QUE HÁ FUNÇÕES DE ACESSIBILIDADES ATIVAS OU RESETA FUNÇÕES if (typeof set_acessibilidade !== "function") { function set_acessibilidade(reset) { // CAPTURANDO ATRIBUTOS var fonte = (localStorage.getItem("sw_acessibilidade_fonte") !== null) ? localStorage.getItem("sw_acessibilidade_fonte") : 0; var contraste = (localStorage.getItem("sw_acessibilidade_contraste") !== null) ? localStorage.getItem("sw_acessibilidade_contraste") : false; var transicoes = (localStorage.getItem("sw_acessibilidade_transicoes") !== null) ? localStorage.getItem("sw_acessibilidade_transicoes") : false; var vlibras = (localStorage.getItem("sw_acessibilidade_vlibras") !== null) ? localStorage.getItem("sw_acessibilidade_vlibras") : false; // BOTÕES var sw_btn_menu_acessibilidade = $("#sw_btn_menu_acessibilidade"); var sw_btn_aumentar_acessibilidade = $("#sw_btn_aumentar_acessibilidade"); var sw_btn_diminuir_acessibilidade = $("#sw_btn_diminuir_acessibilidade"); var sw_btn_contraste_acessibilidade = $("#sw_btn_contraste_acessibilidade"); var sw_btn_transicoes_acessibilidade = $("#sw_btn_transicoes_acessibilidade"); var sw_btn_vlibras_acessibilidade = $("#sw_btn_vlibras_acessibilidade"); var sw_btn_reset_acessibilidade = $("#sw_btn_reset_acessibilidade"); // ANALISANDO RESET if (reset === true) { fonte = 0; contraste = false; transicoes = false; vlibras = false; // RESETANDO ACESSIBILIDADE sw_altera_fonts(fonte); sw_contraste(contraste); sw_desativa_transicoes(transicoes); sw_vlibras(vlibras); } // BOTÃO DE RESET if (sw_btn_reset_acessibilidade.length) { if (fonte != 0 || contraste || transicoes || vlibras) { sw_btn_reset_acessibilidade.show(); } else { sw_btn_reset_acessibilidade.hide(); } } // ANALISANDO FUNÇÕES INDIVIDUALMENTE var qtde_funcoes = 0; // AUMENTAR / DIMINUIR FONTE if (fonte > 0) { qtde_funcoes++; sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", fonte).addClass("ativa"); sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa"); } else if (fonte < 0) { qtde_funcoes++; sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", fonte).addClass("ativa"); sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa"); } else { sw_btn_aumentar_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa"); sw_btn_diminuir_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa"); } // CONTRASTE if (contraste) { qtde_funcoes++; sw_btn_contraste_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa"); } else { sw_btn_contraste_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa"); } // TRANSIÇÕES if (transicoes) { qtde_funcoes++; sw_btn_transicoes_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa"); } else { sw_btn_transicoes_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa"); } // VLIBRAS if (vlibras) { qtde_funcoes++; sw_btn_vlibras_acessibilidade.find(".sw_btn_acessibilidade").attr("data-acessibilidade", 1).addClass("ativa"); } else { sw_btn_vlibras_acessibilidade.find(".sw_btn_acessibilidade").removeAttr("data-acessibilidade").removeClass("ativa"); } // ANALISANDO QUANTIDADE DE FUNÇÕES if (qtde_funcoes > 0) { sw_btn_menu_acessibilidade.addClass("ativa").find(".sw_icone_acessibilidade").attr("data-acessibilidade", qtde_funcoes); } else { sw_btn_menu_acessibilidade.removeClass("ativa").find(".sw_icone_acessibilidade").removeAttr("data-acessibilidade"); } // ATRIBUINDO TEXTO AOS BOTÕES if (sw_btn_contraste_acessibilidade.length) { var txt_btn = (contraste === false) ? "Alto contraste" : "Baixo contraste"; sw_btn_contraste_acessibilidade.attr("title", txt_btn); sw_btn_contraste_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn); } if (sw_btn_transicoes_acessibilidade.length) { var txt_btn = (transicoes == false) ? "Remover transições" : "Ativar transições"; sw_btn_transicoes_acessibilidade.attr("title", txt_btn); sw_btn_transicoes_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn); } if (sw_btn_vlibras_acessibilidade.length) { var txt_btn = (vlibras == false) ? "Ativar VLibras" : "Desativar VLibras"; sw_btn_vlibras_acessibilidade.attr("title", txt_btn); sw_btn_vlibras_acessibilidade.find(".sw_txt_btn_acessibilidade").text(txt_btn); } } } // FUNÇÃO DEBOUNCE if (typeof sw_debounce !== "function") { function sw_debounce(funcao, time, debounce_timeout) { clearTimeout(debounce_timeout); // A CHAMADA DESSA FUNÇÃO DEVE SER RETORNADA PARA A VARIÁVEL 'debounce_timeout' // Ex: var debounce_timeout = sw_debounce(funcao, time, debounce_timeout) return debounce_timeout = setTimeout(funcao, time); } } var sw_deb_acessibilidade; /* ============================================================================================ ACIONANDO FUNÇÕES ANTES DE CARREGAR A PÁGINA ============================================================================================ */ // CONTRASTE sw_contraste(null); // TRANSIÇÕES sw_desativa_transicoes(null); /* ============================================================================================ ACIONANDO FUNÇÕES AO CARREGAR A PÁGINA ============================================================================================ */ $(document).ready(function() { /* ============================================================================================ ACESSIBILIDADE ---- ANTIGO --- REMOVER DEPOIS DE TODOS ALTERADOS ============================================================================================ */ // BOTÃO DE AUMENTAR A FONTE $(".aumentar").click(function () { $("*").each(function() { if ( (!$(this).parents(".tamanho_fixo").length) && ($(this).css("font-size").replace(/\D/g, "") > 0) && (!$(this).hasClass("tamanho_fixo")) ) { var size = $(this).css('font-size'); size = size.replace('px', ''); size = parseInt(size) + 1; if(size < 18) { $(this).animate({'font-size' : size + 'px'}); } } }); }); // BOTÃO DE DIMINUIR A FONTE $(".diminuir").click(function () { $("*").each(function() { if ( (!$(this).parents(".tamanho_fixo").length) && ($(this).css("font-size").replace(/\D/g, "") > 0) && (!$(this).hasClass("tamanho_fixo")) ) { var size = $(this).css('font-size'); size = size.replace('px', ''); size = parseInt(size) - 1; if(size > 10) { $(this).animate({'font-size' : size + 'px'}); } } }); }); // BOTÃO DE CONTRASTE DE COR $("#contraste").click(function () { if($("body").hasClass("contraste")) { $("body").removeClass("contraste"); $("body").css("background","#FFFFFF"); $("#logo_branca").hide(); } else { $("body").addClass("contraste"); $("#logo_branca").show(); } }); // BOTÃO IR PARA BUSCA $("#irbusca").click(function () { $("#e_campo_busca").focus(); }); // VLIBRAS $(".vlibras").click(function() { $("#vlibras_include div[vw-access-button]").trigger("click"); }); // // SW ACESSIBILIDADE // var sw_parametros_acessibilidade = { // layout: "a1" // }; // // ANALISANDO SE HÁ PARÂMETROS EXCLUSIVOS DO LAYOUT // if (typeof e_parametros_acessibilidade === "object") { // sw_parametros_acessibilidade = e_parametros_acessibilidade; // } // // ACIONANDO FUNÇÃO DE ACESSIBILIDADE // sw_acessibilidade(sw_parametros_acessibilidade) // ACIONANDO FUNÇÃO DE ACESSIBILIDADE AO FIM DO CARREGAMENTO DA PÁGINA $(window).on("load", function() { // ALTERAR FONTS sw_altera_fonts(null); // VLIBRAS sw_vlibras(null); }); // SETANDO ATRIBUTOS sw_deb_acessibilidade = sw_debounce(set_acessibilidade, 500, sw_deb_acessibilidade); /* ============================================================================================ ENQUETE ============================================================================================ */ // CLICK DO BOTÃO COM ID VOTAR DA ENQUETE $('#votar').click(function(){ var opcao = $("input[name=form_resposta]:checked").val(); opcao = parseInt(opcao); var recaptcha = ""; //A CLASSE e_captcha_enquete DEVE SER INSERIDA NO HTMLQUE CONTER O CAPTCHA DA ENQUETE, PARA QUE O CÓDIGO CONSIGA LOCALIZAR O RESULTADO REFERENTE AO LOCAL CORRETO recaptcha = $(".e_captcha_enquete").find("textarea.g-recaptcha-response").val(); //SE EXISTIR OS CAMPOS DE NOME E E-MAIL if($('#form_nome_enquete').length || $('#form_email_enquete').length || $("#form_cpf_enquete").length || $("#form_data_enquete").length) { if(isNaN(opcao)) { swal({ text: "Enquete: selecione uma resposta.", icon: "warning" }); } else { if($("#form_nome_enquete").val() == "" || $("#form_email_enquete").val() == "" || $("#form_cpf_enquete").val() == "" || $("#form_data_enquete").val() == "" || $("#form_data_enquete").val() == "00/00/0000") { swal({ text: "Enquete: preencha os campos.", icon: "warning" }); } else { var nome = $("#form_nome_enquete").val(); var email = $("#form_email_enquete").val(); var cpf = $("#form_cpf_enquete").val(); var data = $("#form_data_enquete").val(); var invalido = ""; if($("#form_cpf_enquete").val() != '' && $("#form_cpf_enquete").length) { if(validarCPF(cpf) == false) { swal({ text: "Enquete: CPF informado é inválido.", icon: "error" }); invalido = "S"; } } if($("#form_email_enquete").val() != '' && $("#form_email_enquete").length) { if(validarEmail(email) == false) { swal({ text: "Enquete: E-mail informado é inválido.", icon: "error" }); invalido = "S"; } } if(invalido != "S") { $.post('/portal/enquete/votar/',{ enviar: 's', form_resposta: opcao, form_nome: nome, form_email: email, form_cpf: cpf, form_data: data, captcha: recaptcha }, retorna_enquete); } } } } else { if(!isNaN(opcao)) { $.post('/portal/enquete/votar/',{ enviar: 's', form_resposta: opcao, captcha: recaptcha }, retorna_enquete); } else { swal({ text: "Enquete: selecione uma resposta.", icon: "warning" }); } } }); }); </script>]]>
3807 <![CDATA[<script> // Seta os cookies function f_cookies_criar(cookieCheckboxEstatistica) { // Cookies necessários document.cookie = "PrefeituraMunicipaldeTaiobeiras-MG-LGPD=S; max-age=604800; path=/"; // Cookies de estatística if (cookieCheckboxEstatistica) { document.cookie = "PrefeituraMunicipaldeTaiobeiras-MG-ESTATISTICA=S; max-age=604800; path=/"; } else { document.cookie = "PrefeituraMunicipaldeTaiobeiras-MG-ESTATISTICA=S; max-age=0; path=/"; } } // Altera o conteúdo da notificação function f_cookies_notificacao_alterar() { $("#lgpd").fadeOut(800, function() { $(this).remove(); }); $(".sw_cookies_aceitos").addClass("show sw_txt_tooltip"); } $(document).ready(function() { //CONFIGURAÇÃO DOS BOTÃO DO VISUALIZADOR DE FOTOS $('.fancybox').fancybox({ buttons : [ 'slideShow', //'thumbs', 'close' ], loop : true, arrows : true, slideShow : { autoStart : false, speed : 3500 }, }); // ANALISANDO SE HÁ NOTIFICAÇÕES var barra_notificacoes = $(".sw_barra_notificacoes"); if (barra_notificacoes.find(".sw_notificacao").length) { $(window).on("load", function() { barra_notificacoes.addClass("show"); }); /* ============================================================================================ FUNÇÕES INDIVIDUAIS DAS NOTIFICAÇÕES ============================================================================================ */ $(".sw_btn_fechar_notificacao").click(function() { var elemento_noticicacao = $(this).parents(".sw_notificacao"); // Fechando notificação elemento_noticicacao.fadeOut(800, function() { elemento_noticicacao.remove(); // Analisando se há mais notificações if (barra_notificacoes.find(".sw_notificacao").length < 1) { barra_notificacoes.removeClass("show"); } }); }); // Política de cookies $("#lgpd").find(".sw_btn_fechar_notificacao").click(function() { // Seta checked $("input[type='checkbox'][name='cookies_estatisticas']").attr("checked", true); // Seta cookies (aceita os dois) f_cookies_criar(true) // Altera o conteúdo da notificação de cookies f_cookies_notificacao_alterar(); }); // Transmissão ao vivo $(".live_info_transmissao").find(".sw_btn_fechar_notificacao").click(function() { var data_video = $(this).attr("data-video"); $.post("/portal/transmissao/encerra/", { video: data_video }); }); } // Mostra ícone política de cookies $(window).on("load", function() { if ($("#lgpd").length === 0) { $(".sw_cookies_aceitos").addClass("show"); } }); // Modal de personalizar cookies if ($("#sw_cont_politica_privacidade").length) { // Ao clicar em personalizar let modalPersonalizarAberto = false; $(document.body).on('click', '.sw_btn_personalizar_cookies, .abrir_modal_personalizar_cookies', function() { // Cria pop-up sw_popup("#sw_cont_politica_privacidade", "S"); // Caso não tenha aberto o modal e não foi votado if (!modalPersonalizarAberto && $(".sw_cookies_aceitos").hasClass("show") === false) { $("input[type='checkbox'][name='cookies_estatisticas']").attr("checked", true); } modalPersonalizarAberto = true; }); // Controle do atributo "checked" nos cookies de estatísticas $("input[type='checkbox'][name='cookies_estatisticas']").change(function() { let checadoEstatisticas = $("input[type='checkbox'][name='cookies_estatisticas']").attr("checked"); if(checadoEstatisticas) { $(this).attr("checked", true); } else if(checadoEstatisticas === undefined) { $(this).attr("checked", false); } }); // Ao salvar preferências $("#salvar_preferencias_cookies").click(function() { // Verifica se está checado o botão dos cookies de estatísticas let checadoEstatisticas = $("input[type='checkbox'][name='cookies_estatisticas']").attr("checked"); // Seta cookies f_cookies_criar(checadoEstatisticas); // Altera o conteúdo da notificação de cookies f_cookies_notificacao_alterar(); // Fecha pop-up let elementoPopupPrivacidade = document.getElementById("sw_cont_politica_privacidade"); sw_fechar_popup($(elementoPopupPrivacidade)); // Analisando se há mais notificações barra_notificacoes.fadeOut(800, function() { if (barra_notificacoes.find(".sw_notificacao").length < 1) { barra_notificacoes.removeClass("show"); } }); }); } }); </script>]]>
3963 <![CDATA[<script> // FUNÇÕES JS $(document).ready(function() { // FUNÇÃO PARA ACIONAR DROP DO LOGIN DO INTERNAUTA MOBILE $(window).click(function() { $("#itn_area_botoes_internauta").removeClass("itn_area_botoes_internauta_show"); }); $(".itn_area_img_internauta").on("click", function() { event.stopPropagation(); $("#itn_area_botoes_internauta").toggleClass("itn_area_botoes_internauta_show"); }); // ACIONANDO POPUP LOGIN $(".itn_btn_login").click(function() { sw_popup("#itn_login", "S"); }); // RECUPERAÇÃO DE SENHA $("#link_senha").click(function() { sw_abrir_janela("/portal/internautas/recuperar-senha", 450, 600) }); // SAIR $("#sair_internauta").click(function() { swal({ title: "Atenção!", text: "Deseja realmente sair do portal?", icon: "warning", buttons: ["Cancelar", "OK"], }) .then(function(acao) { if(acao === true) { location.href = "/portal/internautas/sair"; } }); }); }); // ABRIR POPUP INTERNAUTA function abrir_popup_internautas(elemento) { sw_abrir_popup(elemento); $("#cpf_cnpj_email").focus(); } // FECHAR POPUP INTERNAUTA function fechar_popup_internautas(elemento) { verifica_popups_termos(); sw_fechar_popup(elemento); } // TRANSFORMAR DADOS EM MAIÚSCULOS function internautas_transformar_string(string) { if(string.value != "" && string.id != "") { $("#"+string.id).val(string.value.toUpperCase()); } } // FORMATA VALOR (CPF OU CNPJ) function formata_cpf_cnpj(value) { const cnpjCpf = value.replace(/\D/g, ''); if (cnpjCpf.length === 11) { return cnpjCpf.replace(/(\d{3})(\d{3})(\d{3})(\d{2})/g, "\$1.\$2.\$3-\$4"); } else if (cnpjCpf.length === 14) { return cnpjCpf.replace(/(\d{2})(\d{3})(\d{3})(\d{4})(\d{2})/g, "\$1.\$2.\$3/\$4-\$5"); } } // VALIDAR CPF function validar_cpf(cpf) { cpf = cpf.replace(/[^\d]+/g,''); if(cpf == '') return false; // Elimina CPFs invalidos conhecidos if (cpf.length != 11 || cpf == "00000000000" || cpf == "11111111111" || cpf == "22222222222" || cpf == "33333333333" || cpf == "44444444444" || cpf == "55555555555" || cpf == "66666666666" || cpf == "77777777777" || cpf == "88888888888" || cpf == "99999999999") return false; // Valida 1o digito add = 0; for (i=0; i < 9; i ++) add += parseInt(cpf.charAt(i)) * (10 - i); rev = 11 - (add % 11); if (rev == 10 || rev == 11) rev = 0; if (rev != parseInt(cpf.charAt(9))) return false; // Valida 2o digito add = 0; for (i = 0; i < 10; i ++) add += parseInt(cpf.charAt(i)) * (11 - i); rev = 11 - (add % 11); if (rev == 10 || rev == 11) rev = 0; if (rev != parseInt(cpf.charAt(10))) return false; return true; } // VALIDAR CNPJ function validar_cnpj(cnpj) { cnpj = cnpj.replace(/[^\d]+/g,''); if(cnpj == '') return false; if (cnpj.length != 14) return false; if (cnpj == "00000000000000" || cnpj == "11111111111111" || cnpj == "22222222222222" || cnpj == "33333333333333" || cnpj == "44444444444444" || cnpj == "55555555555555" || cnpj == "66666666666666" || cnpj == "77777777777777" || cnpj == "88888888888888" || cnpj == "99999999999999") return false; tamanho = cnpj.length - 2 numeros = cnpj.substring(0,tamanho); digitos = cnpj.substring(tamanho); soma = 0; pos = tamanho - 7; for(i = tamanho; i >= 1; i--) { soma += numeros.charAt(tamanho - i) * pos--; if (pos < 2) pos = 9; } resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; if (resultado != digitos.charAt(0)) return false; tamanho = tamanho + 1; numeros = cnpj.substring(0,tamanho); soma = 0; pos = tamanho - 7; for (i = tamanho; i >= 1; i--) { soma += numeros.charAt(tamanho - i) * pos--; if (pos < 2) pos = 9; } resultado = soma % 11 < 2 ? 0 : 11 - soma % 11; if (resultado != digitos.charAt(1)) return false; return true; } //// // VERIFICA SE ACABOU OS TERMOS PARA REDIRECIONAR INTERNAUTA function verifica_popups_termos() { var contador = $('#cont_popup').val(); var link = $('#link').val(); if(contador - 1 == 0 || contador == "") { setTimeout(function() { var elemento = ".itn_consentimentos"; elemento = $(""+elemento+""); fechar_popup_internautas(elemento); var elemento_link = ".itn_consentimentos_link"; elemento_link = $(""+elemento_link+""); fechar_popup_internautas(elemento_link); var url_atual = window.location.pathname; // REDIRECIONA APENAS QUANDO LOGAR OU CADASTRAR if(url_atual != "/portal/internautas/dados" && url_atual != "/portal/internautas/dados/consentimentos" && url_atual != "/portal/internautas/dados/preferencias") { if(link == "/portal/internautas/alterar") { location.href = link; } else if(link != "" && link != undefined) { location.href = link; } else { location.href = '/portal/obras/10'; } } $('#cont_popup').val("0"); }, 300); } else { contador = contador - 1; $('#cont_popup').val(contador); } return contador; } // SE ESTIVER NA PÁGINA DE CONSENTIMENTOS (ACEITANDO, RECUSANDO OU REVOGANDO) A PÁGINA DEVERÁ SER RECARREGADA function redireciona_internauta_consentimento() { setTimeout(function() { if(window.location.pathname == "/portal/internautas/dados/consentimentos" || window.location.pathname == "/portal/internautas/dados") { location.href = window.location.pathname; } }, 800); } // CLICK DO BOTÃO OK (QUANDO ENTRAR EM UMA FERRAMENTA QUE TIVER TERMO DO TIPO EMITE AVISO QUE FOI ENVIADO UM E-MAIL PARA CONFIRMAÇÃO) function btn_ok(id_consentimento) { if(id_consentimento != "") { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); fechar_popup_internautas(elemento); } } // CLICK DO BOTÃO REENVIAR function btn_reenviar_consentimento(id_consentimento) { if(id_consentimento != "") { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"reenviar_consentimento", consentimento:id_consentimento}, retorno); function retorno(data) { fechar_popup_internautas(elemento); } } } // EXIBE MENSAGENS DE SUCESSO E ERRO function int_msg_erro(mensagem) { $("#conteudo_esquerda").append('<div class="sw_lato sw_aviso_suspenso sw_aviso_suspenso_erro" style="display:none;"><i class="swfa fas fa-times-circle-o"></i><span>'+mensagem+'</span></div>'); $(".sw_aviso_suspenso_erro").fadeIn("slow"); setTimeout(function() { $(".sw_aviso_suspenso_erro").fadeOut("slow"); }, 1500); } function int_msg_sucesso(mensagem) { $("#conteudo_esquerda").append('<div class="sw_lato sw_aviso_suspenso sw_aviso_suspenso_sucesso" style="display:none;"><i class="swfa fas fa-check-circle-o"></i><span>'+mensagem+'</span></div>'); $(".sw_aviso_suspenso_sucesso").fadeIn("slow"); setTimeout(function() { $(".sw_aviso_suspenso_sucesso").fadeOut("slow"); }, 1500); } // CLICK DO BOTÃO "CONFIRMAR CÓDIGO" function btn_confirmar_codigo_consentimento(id_consentimento) { var codigo = $("#form_codigo_confirmacao_consentimento").val(); if(id_consentimento != "" && codigo != "") { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"confirmar_codigo_consentimento", consentimento:id_consentimento, codigo:codigo}, retorno); function retorno(data) { data = JSON.parse(data); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento confirmado com sucesso!"); } else { int_msg_erro("Erro ao confirmar consentimento!"); } } } } // EXIBE MENSAGEM DE ERRO NO PROCESSO (CASO FALTE ALGUM DADO) function exibe_mensagem_erro_processo() { $(".sw_area_botoes_popup").hide(); $(".sw_conteudo_popup").html('<div class="sw_aviso sw_aviso_erro sw_lato"><i class="swfa fas fa-exclamation-triangle"></i> <span>Ops, algo deu errado. Tente novamente mais tarde.</span></div>'); // setTimeout(function() { // fechar_popup_internautas(elemento); // }, 1000); } // CLICK DO BOTÃO ACEITAR function btn_aceitar(id_consentimento, id_termo) { if(id_consentimento != "" && id_consentimento != undefined) { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"S"}, retorno); function retorno(data) { data = JSON.parse(data); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento aceito com sucesso!"); } else { int_msg_erro("Erro ao aceitar consentimento!"); } redireciona_internauta_consentimento(); } } else { exibe_mensagem_erro_processo(); } } // CLICK DO BOTÃO RECUSAR function btn_recusar(id_consentimento, id_termo, obrigatorio) { // VERIFICA SE TERMO É OBRIGATÓRIO PARA SOLICITAR CONFIRMAÇÃO if(obrigatorio == "S") { swal({ text: "Tem certeza que deseja recusar? É obrigatório a aceitação desse termo.", icon: "warning", buttons: ['Cancelar', 'OK'] }) .then(function(acao) { if(acao === true) { if(id_consentimento != "" && id_consentimento != undefined) { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"N", termo:id_termo}, retorno); function retorno(data) { data = JSON.parse(data); elemento.find(".sw_area_botoes_popup").hide(); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento recusado com sucesso!"); } else { int_msg_erro("Erro ao recusar consentimento!"); } redireciona_internauta_consentimento(); } } else { exibe_mensagem_erro_processo(); } } }); } else { if(id_consentimento != "" && id_consentimento != undefined) { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"responder_consentimento", consentimento:id_consentimento, valor:"N", termo:id_termo}, retorno); function retorno(data) { data = JSON.parse(data); elemento.find(".sw_area_botoes_popup").hide(); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento recusado com sucesso!"); } else { int_msg_erro("Erro ao recusar consentimento!"); } redireciona_internauta_consentimento(); } } else { exibe_mensagem_erro_processo(); } } } // CLICK DO BOTÃO REVOGAR (ENVIAR - REVOGAR DE FATO) function btn_revogar(id_consentimento) { var motivo = $("#motivo_revogar").val(); if(id_consentimento != "" && id_consentimento != undefined) { var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); $.post('/portal/internautas/acao/', {acao:"revogar_consentimento", consentimento:id_consentimento, motivo:motivo}, retorno); function retorno(data) { data = JSON.parse(data); fechar_popup_internautas(elemento); if(data.resultado == "sucesso") { int_msg_sucesso("Consentimento revogado com sucesso!"); } else { int_msg_erro("Erro ao revogar consentimento!"); } redireciona_internauta_consentimento(); } } else { exibe_mensagem_erro_processo(); } } // CLICK NO BOTÃO REVOGAR PARA EXIBIR CAMPO DO MOTIVO function btn_revogar_motivo(id_consentimento) { // EXIBE CAMPO PARA INFORMAR MOTIVO $(".itn_area_motivo").fadeIn(); // DESCE TELA $(".sw_popup_modal").animate({ scrollTop: $(document).height() }, 1000); // SETA NOVO ONCLICK PARA BOTÃO E REMOVE CLASSE $(".itn_btn_revogar").attr("onClick", "btn_revogar("+id_consentimento+")"); $(".itn_btn_revogar").removeClass("itn_btn_revogar_cinza"); // ADICIONA FOCO NO CAMPO $("#motivo_revogar").focus(); } // CLICK DO BOTÃO ASSINAR function btn_assinar(id_consentimento, id_termo, arquivo, diretorio, origem) { // DESABILITA BOTÃO $("#itn_consentimentos_int_"+id_consentimento).find(".itn_btn_aceitar").attr("disabled", "disabled"); $("#itn_consentimentos_int_"+id_consentimento).find(".itn_btn_aceitar").fadeOut(); var elemento = "#itn_consentimentos_int_"+id_consentimento; elemento = $(""+elemento+""); // AUTORIZADO OK SIGNIFICA QUE TEM CREDITOS PARA GASTAR COM A OPERAÇÃO, SE NÃO HOUVER VAI RETORNAR MENSSAGEM DE ERRO AO USUÁRIO if('ok' != 'ok') { swal({ text: "Você não possui créditos para assinar o documento, favor entrar em contato com Prefeitura Municipal de Taiobeiras - MG.", icon: "error" }); } else { // EXTRAI EXTENSÃO DO ARQUIVO var coleta_extensao = arquivo.split("."); // VERIFICA SE O ARQUIVO É UM PDF if (coleta_extensao[1] != "pdf") { swal({ text: "Extensão inválida, somente arquivos PDF podem ser assinados", icon: "error" }); } else { // CARREGA SELECT E MENSAGEM $("#itn_consentimentos_int_"+id_consentimento).find(".sw_area_botoes_popup").append('<div class="itn_area_assinatura"><div class="sw_aviso sw_aviso_alerta sw_lato"><i class="swfa fas fa-exclamation-triangle"></i><span>Por favor, selecione o certificado digital desejado para assinar este documento logo abaixo.</span></div><select id="certificateSelect"><option value="0">Selecione seu certificado A3...</option></select></div>'); // EXIBE SELECT E MENSAGEM $(".itn_area_assinatura").fadeIn(); // CRIA OBJETO PARA MANIPULAÇÃO DOAS CERTIFICADOS E ASSINATURAS var pki = new LacunaWebPKI(); pki.init({ ready: onWebPkiReady, notInstalled: onWebPkiNotInstalled, defaultError: onWebPkiError, restPkiUrl: 'https://pki.rest/' }); // FUNÇÃO DE LISTAGEM DOS CERTIFICADOS function onWebPkiReady () { pki.listCertificates().success(function (certs) { var selecao = $("#certificateSelect"); $.each(certs, function() { // VERIFICA SE É PESSOA FÍSICA OU JURÍDICA if(this.pkiBrazil.isPessoaFisica) { var doc = this.pkiBrazil.cpf; var doc_internauta = ""; } else { var doc = this.pkiBrazil.cnpj; var doc_internauta = ""; } var validadefim = this.validityEnd; // VERIFICA DOCUMENTO if(doc == doc_internauta) { selecao.append($('<option data-doc="'+doc+'" data-validadefim="'+validadefim+'" />').val(this.thumbprint) .text(this.subjectName) ); } }); }); } // FUNÇÃO SE O PLUGIN NÃO ESTIVER INSTALADO function onWebPkiNotInstalled (status, message) { swal({ text: "Plugin do Assinador não instalado, você será redirecionado para página de instalação.", icon: "warning" }) .then(function() { pki.redirectToInstallPage(); }); } // FUNÇÃO PARA IMPRIMIR O ERRO CASO OCORRA function onWebPkiError(message, error, origin) { swal({ text: "Erro ao assinador documento. Token/certificado não foi reconhecido. Tente conecta-lo em outra porta ou reinicie o navegador.", icon: "error" }) .then(function() { $("#sw_carregando_dados").hide(); }); } // CARREGA E EXIBE BOTÃO $("#itn_consentimentos_int_"+id_consentimento).find(".sw_area_botoes_popup").append('<div class="sw_btn_popup sw_btn_aceitar itn_btn_aceitar" id="signPDFButton" style="display:none;"><i class="swfa fas fa-check-circle-o" aria-hidden="true"></i><span>ASSINAR PDF</span></div>'); $("#signPDFButton").fadeIn(); // PASSA OS VALORES O BOTÃO "ASSINAR PDF" DENTRO DA SELEÇÃO DOS CERTIFICADOS $('#signPDFButton').attr("data-arquivo", arquivo); $('#signPDFButton').attr("data-diretorio", diretorio); $('#signPDFButton').attr("data-origem", origem); $('#signPDFButton').attr("data-codigo", id_consentimento); // CLICK DO BOTÃO ASSINAR PDF $('#signPDFButton').click(function(){ if(($('#certificateSelect').val() != null) && ($('#certificateSelect').val() != '0')) { // CARREGANDO $("#sw_carregando_dados").show(); // VALOR DO CERTIFCADO SELECIONADO var selectedCertThumb = $('#certificateSelect').val(); // VALOR COM ARQUIVO QUE SERÁ ASSINADO var arquivo = $(this).attr("data-arquivo"); // VALOR COM O DIRETÓRIO DO ARQUIVO QUE SERÁ ASSINADO var diretorio = $(this).attr("data-diretorio"); // MONTA DIRETÓRIO COMPLETO PARA O ARQUIVO QUE SERÁ ASSSINADO var arquivo_completo = diretorio+arquivo; // VALOR COM O NOME DO CERTIFICADO DIGITAL ESCOLHIDO var emissor = $('#certificateSelect option:selected').text(); // VALOR COM O DOCUMENTO DO CERTIFICADO QUE FOI ESCOLHIDO var documento = $('#certificateSelect option:selected').attr("data-doc"); // VALOR COM A VALIDADE DO CERTIFICADO ESCOLHIDO var finalvalidade = $('#certificateSelect option:selected').attr("data-validadefim"); // VALOR COM A ORIGEM DA PAGINA ONDE O ARQUIVO ESTA SENDO ASSINADO var origem = $(this).attr("data-origem"); // VALOR COM O ID DO ARQUIVO QUE ESTA SENDO ASSINADO var codigo = $(this).attr("data-codigo"); // PRIMEIRO POST INICIA O PROCESSO DE ASSINATURA $.post('/sg/assinador_a3.php', {arquivo:arquivo_completo, carimbo_tempo:'S', etapa:'1'}, retorno1); function retorno1(data1) { // FUNÇÃO QUE ASSINA O ARQUIVO pki.signWithRestPki({ token: data1, thumbprint: selectedCertThumb }).success(function () { // SEGUNDO POST IRÁ MONTAR O ARQUIVO ASSINADO $.post('/sg/assinador_a3.php', {token:data1, endereco:"../../tmp/", original:arquivo, origem:"Internautas", etapa: '2'}, retorno2); function retorno2(data2) { // TERCEIRO POST IRÁ ATUALIZAR O BANCO DE DADOS, CONFORME OS ATRIBUTOS PASSADOS $.post('/sg/assinador_a3.php', {origem: origem, codigo: codigo, titular: emissor, doc: documento, validade_cert:finalvalidade, pacote:'mensal', arquivo_completo:arquivo_completo, carimbo_tempo:'S', arquivo: arquivo, internauta: "", arquivo_assinado: data2, etapa: '3'}, retorno3); function retorno3(data3) { data3 = JSON.parse(data3); // CARREGANDO $("#sw_carregando_dados").hide(); // FECHA POPUP E EXIBE MENSAGEM fechar_popup_internautas(elemento); if(data3.resultado == "sucesso") { int_msg_sucesso("Consentimento aceito com sucesso!"); } else { int_msg_erro("Erro ao aceitar consentimento!"); } } } }); } } else { alert ("Nenhum certificado selecionado."); } }); // FIM $('#signPDFButton').click(function() } // FIM else verifica extensao do arquivo } // FIM else verifica os créditos } </script>]]>
4642 <![CDATA[<script> $(document).ready(function() { // FORMATA VALOR CONFORME INFORMA $("#cpf_cnpj_email").keyup(function() { var valor_formatado = formata_cpf_cnpj($(this).val()); if(valor_formatado != undefined) { $(this).val(valor_formatado); } }); // CONFIRMAÇÃO CAPTCHA $("#form_login").submit(function(e) { var response = grecaptcha.getResponse(captchaLogin); if(response.length == 0) { grecaptcha.reset(captchaLogin); swal({ text: "Ops, captcha confirmado incorretamente. Por favor, preencha-o para continuar!", icon: "warning" }); e.preventDefault(); return false; } }); $("#entrar_google").click(function(){ window.location.href="/internautas_login_servicos.php?tipo=google" }); }); </script>]]>
4676 <![CDATA[<script> var captchaLogin; var onloadCallbackLogin = function() { captchaLogin = grecaptcha.render('captchaLogin', { 'sitekey' : '6Lcg5gwUAAAAAFTAwOeaiRgV05MYvrWdi1U8jIwI' }); }; </script>]]>
5610 <![CDATA[<script> $(document).ready(function() { // #################################### FUNÇÕES MODAL #################################### // CHAMANDO FUNÇÃO EXIBIR MODAL $(document.body).on('click', '.avaliar_servico', function() { var data_origem = ""; var data_origem = $(this).attr('data-origem'); var data_id = ""; var data_id = $(this).attr("data-id"); var data_sic = ""; var attr_data_sic = $(this).attr('data-sic'); //VERFICA SE O ATRIBUTO DATA-SIC EXISTE NO BOTÃO DE AVALIAÇÃO if (typeof attr_data_sic !== typeof undefined && attr_data_sic !== false) { data_sic = attr_data_sic; } var dados_ajax = {"origem": data_origem, "id": data_id, "data_sic": data_sic }; var serializeDados = $.param(dados_ajax); $.ajax({ url: "/portal/avaliar/", dataType: 'html', type: 'POST', data: serializeDados, success: function(data) { $("#modal_avaliacao_conteudo").html(data); $("#modal_avaliacao_conteudo").find('.g-recaptcha').each(function(index, el) { grecaptcha.render(el, {'sitekey' : '6Lcg5gwUAAAAAFTAwOeaiRgV05MYvrWdi1U8jIwI'}); }); sw_popup("#modal_avaliacao", "S"); $("#form_data_solicitacao").mask("99/99/9999") $("#form_data_conclusao").mask("99/99/9999"); $("#form_hora_solicitacao").mask("99:99"); $("#form_data_solicitacao").datepicker(); $("#form_data_conclusao").datepicker(); }, error: function(xhr,er) { } }); }); // EXIBIR DATA DE CONCLUSÃO $('input[name=form_atendido]').change(function () { var valor = $(this).val(); if(valor == "S" || valor == "P") { $("#cont_data_conclusao").show(); $("#form_data_conclusao").val(""); } else { $("#cont_data_conclusao").hide(); $("#form_data_conclusao").val(""); } }); // ENVIAR AVALIAÇÃO $(document.body).on('click','#Avaliar', function() { // MOVE BARRA DE ROLAGEM PARA INÍCIO var obj = document.getElementById("modal_avaliacao"); obj.scrollTop = 0; if($("input[name=form_atendido]:checked").val() != undefined && $("input[name=form_nota]:checked").val() != undefined && ($("input[name=origem]").val() == "sic" || $("input[name=origem]").val() == "ouvidoria" || $("input[name=origem]").val() == "carta_servicos" || $("input[name=origem]").val() == "secretaria" || $("input[name=origem]").val() == "servico_menu" || $("input[name=origem]").val() == "noticia" || $("input[name=origem]").val() == "faq" || $("input[name=origem]").val() == "obras" || $("input[name=origem]").val() == "formulario" || $("input[name=origem]").val() == "paginas_dinamicas") && ($("input[name=origem_codigo]").val() != undefined || $("select[name=origem_codigo]").val())) { var serializeDados = $('#form_avaliacao').serialize(); $.ajax({ url: "/portal/avaliar/enviar/", dataType: 'html', type: 'POST', data: serializeDados, beforeSend: function() { $(".cad_carregar").fadeIn(); $("#Avaliar").attr("disabled", "disabled"); }, complete: function() { $(".cad_carregar").fadeOut(); }, success: function(data, textStatus) { data = JSON.parse(data); if(data.erro == "S") { $("#area_msg").fadeOut('', function() { $(this).html('<div class="cad_carregando_dados"><div class="cad_alerta_erro_msg"><i class="swfa fas fa-exclamation-triangle fa-lg"></i> '+data.msg+'</div></div>'); }).fadeIn(); grecaptcha.reset(); setTimeout(function() { $('.cad_alerta_erro_msg').fadeOut(); }, 3500); } if(data.erro == "N") { $("#area_msg").fadeOut('', function() { $(this).html('<div class="cad_carregando_dados"><div class="cad_alerta_sucesso_msg"><i class="swfa fas fa-exclamation-triangle fa-lg"></i> '+data.msg+'</div></div>'); }).fadeIn(); if(data.origem == "noticia") { setTimeout(function() { $(".ntc_btn_avaliar").toggleClass("ntc_btn_avaliar_gostei_ativo"); var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (!(msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))) { $(".ntc_efeito_avaliacao").show().addClass("ntc_efeito_avaliacao_show"); setTimeout(function() { $(".ntc_efeito_avaliacao").hide().removeClass("ntc_efeito_avaliacao_show"); }, 2000) } setTimeout(function() { location.reload(true); }, 3000); }, 1000); } else if (data.origem == "paginas_dinamicas") { setTimeout(function() { $(".pgd_btn_avaliar").toggleClass("pgd_btn_avaliar_gostei_ativo"); var ua = window.navigator.userAgent; var msie = ua.indexOf("MSIE "); if (!(msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))) { $(".pgd_efeito_avaliacao").show().addClass("pgd_efeito_avaliacao_show"); setTimeout(function() { $(".pgd_efeito_avaliacao").hide().removeClass("pgd_efeito_avaliacao_show"); }, 2000) } setTimeout(function() { location.reload(true); }, 3000); }, 1000); } else { setTimeout(function() { location.reload(true); }, 3500); } } if(data.erro == "A") { $("#area_msg").fadeOut('', function() { $(this).html('<div class="cad_carregando_dados"><div class="cad_alerta_aviso_msg"><i class="swfa fas fa-exclamation-circle fa-lg"></i> '+data.msg+'</div></div>'); }).fadeIn(); setTimeout(function() { location.reload(true); }, 3500); } $("#Avaliar").removeAttr("disabled"); }, error: function(xhr,er) { $('#area_msg').html('<div class="cad_carregando_dados"><div class="cad_alerta_erro_msg"><i class="swfa fas fa-exclamation-triangle fa-lg"></i> Ops, algo deu errado. Tente novamente mais tarde.</div></div>'); setTimeout(function() { location.reload(true); }, 3500); } }); } else { $('#area_msg').html('<div class="cad_carregando_dados"><div class="cad_alerta_erro_msg"><i class="swfa fas fa-exclamation-triangle fa-lg"></i> Ops, algo deu errado. Verifique os campos preenchidos e tente novamente.</div></div>'); setTimeout(function() { $('.cad_alerta_erro_msg').fadeOut(); }, 3500); } return false; }); }); </script>]]>
5774 <![CDATA[<script> var CaptchaCallback = function(){ $('.g-recaptcha').each(function(index, el) { grecaptcha.render(el, {'sitekey' : '6Lcg5gwUAAAAAFTAwOeaiRgV05MYvrWdi1U8jIwI'}); }); }; </script>]]>