PHP Classes

File: assets/js/components/cad/CadEnderecos.js

Recommend this page to a friend!
  Classes of Rodrigo Faustino   Web App Multi-Perfil   assets/js/components/cad/CadEnderecos.js   Download  
File: assets/js/components/cad/CadEnderecos.js
Role: Auxiliary data
Content type: text/plain
Description: Auxiliary data
Class: Web App Multi-Perfil
App that uses CRUD to manage multiple users
Author: By
Last change:
Date: 1 month ago
Size: 6,998 bytes
 

Contents

Class file image Download
import BuscaApi from '../lib/BuscaApiG.js'; import Mensagem from '../lib/Mensagens.js'; export default class CadEnderecos { constructor(navigateCallback,params) { this.navigate = navigateCallback; this.buscaApi = new BuscaApi(sessionStorage.getItem('token')); this.idSalao = params; this.mensagem = new Mensagem(); } async init() { await this.buscaEnderecos(); } async buscaEnderecos() { try { const data = await this.buscaApi.fetchApi(`Enderecos`, 'GET'); //this.renderSaloes(data); } catch (error) { console.error(error); } } async buscaCep(cep) { document.getElementById('rua').value="..."; document.getElementById('bairro').value="..."; document.getElementById('cidade').value="..."; document.getElementById('estado').value="..."; document.getElementById('latitude').value="..."; document.getElementById('longitude').value="..."; try { const endereco = await this.buscaApi.fetchCEP(cep, 'GET'); const rua = endereco.logradouro; const cidade = endereco.localidade; const geo = `${rua},${cidade}`; const dados = await this.buscaApi.fetchGEO(geo, 'GET'); document.getElementById('rua').value=(endereco.logradouro); document.getElementById('bairro').value=(endereco.bairro); document.getElementById('cidade').value=(endereco.localidade); document.getElementById('estado').value=(endereco.uf); document.getElementById('latitude').value=(dados[0].lat); document.getElementById('longitude').value=(dados[0].lon); } catch (error) { console.error(error); } } async cadastrar(endereco) { try { const data = await this.buscaApi.fetchApi('Enderecos', 'POST', endereco); if (data.status) { this.displayMessage('Endereço registrado com sucesso!'); this.navigate('gerirsaloes'); } else { this.displayMessage('Erro ao registrar o Endereço.'); } } catch (error) { console.error('Erro ao registrar:', error); this.displayMessage('Erro ao registrar o Endereço.'); } } displayMessage(message) { const messageElement = document.getElementById('message'); messageElement.textContent = message; } render() { const mainDiv = document.createElement('div'); mainDiv.className = 'main'; const registrationContainer = document.createElement('div'); registrationContainer.className = 'registration-container'; registrationContainer.innerHTML = ` <div class="w3-container"> <div id="id01" class="w3-modal" style="display:block"> <div class="w3-modal-content w3-card-4 w3-animate-zoom" style="max-width:600px"> <form class="w3-container w3-row-padding"" id="enderecoForm"> <div class="w3-section"> <label for="cep">CEP</label> <input class="w3-input w3-border w3-margin-bottom" type="text" name="cep" id="cep" placeholder="Insira o CEP" required /> </div> <div class="w3-section"> <label for="rua">Rua</label> <input class="w3-input w3-border w3-margin-bottom" type="text" name="rua" id="rua" placeholder="Insira a Rua" required /> </div> <div class="w3-section"> <label for="bairro">Bairro</label> <input class="w3-input w3-border w3-margin-bottom" type="text" name="bairro" id="bairro" placeholder="Insira o Bairro" required /> </div> <div class="w3-row-padding"> <div class="w3-half"> <label for="cidade">Cidade</label> <input class="w3-input w3-border w3-margin-bottom" type="text" name="cidade" id="cidade" placeholder="Insira a Cidade" required /> </div> <div class="w3-half"> <label for="estado">Estado</label> <input class="w3-input w3-border w3-margin-bottom" type="text" name="estado" id="estado" placeholder="Insira o Estado" required /> </div> </div> <div class="w3-row-padding"> <div class="w3-half"> <label>Latitude</label> <input class="w3-input w3-border " type="text" name="latitude" id="latitude" placeholder="Insira a Latitude" /> </div> <div class="w3-half"> <label>Longitude</label> <input class="w3-input w3-border " type="text" name="longitude" id="longitude" placeholder="Insira a Longitude" /> </div> </div> <button id="cancelar" class="w3-button w3-red w3-section w3-padding">Cancelar</button> <button type="submit" class="w3-button w3-green w3-section w3-padding">Cadastrar</button> <p id="message"></p> </form> </div> </div> </div> `; registrationContainer.querySelector('#cancelar').addEventListener('click', async (e) => { this.navigate('gerirsaloes'); }); registrationContainer.querySelector('#cep').addEventListener('blur', async (event) => { event.preventDefault(); this.buscaCep(event.target.value); }); registrationContainer.querySelector('#enderecoForm').addEventListener('submit', async (e) => { e.preventDefault(); let endereco = {}; const elements = registrationContainer.querySelector('#enderecoForm').elements; for (let i = 0; i < elements.length; i++) { const element = elements[i]; if (element.name && element.value) { endereco[element.name] = element.value; } } if (endereco.cep=='') { this.displayMessage("Cep invalido"); return; } endereco.idSalao = this.idSalao const isConfirmed = await this.mensagem.confirmAction('create'); if (isConfirmed) { await this.cadastrar(endereco); } }); mainDiv.appendChild(registrationContainer); return { element: mainDiv, init: () => {} }; } } // const enderecos = new CadEnderecos(); // const renderedElement = enderecos.render(); // enderecos.init(); // document.body.appendChild(renderedElement.element);