3

const lojaRef=db.ref("loja"); const vendasRef=db.ref("vendas"); let modoAdmin=false, editando=null, imagemProduto="", bannerImagem="", carrinho=[]; let listaProdutos=[]; const SENHA_ADMIN="1234"; let WHATSAPP_SALVO=""; let LOJA_ABERTA=true; function alternarModo(){ if(!modoAdmin && prompt("Senha:")!==SENHA_ADMIN) return; modoAdmin=!modoAdmin; painel.style.display=modoAdmin?"block":"none"; modoTexto.innerText=modoAdmin?"Modo Administrativo":"Modo Cliente"; filtrarProdutos(); } /* STATUS */ function salvarStatus(){ lojaRef.child("status").set(statusSelect.value); } lojaRef.child("status").on("value",s=>{ if(!s.exists()) return; LOJA_ABERTA = s.val()==="aberta"; statusSelect.value=s.val(); statusAviso.style.display = LOJA_ABERTA?"none":"block"; filtrarProdutos(); }); /* NOME */ function salvarNomeLoja(){ lojaRef.child("nome").set(nomeLojaInput.value); } lojaRef.child("nome").on("value",s=>{ if(s.exists()){ nomeLojaTexto.innerText=s.val(); nomeLojaInput.value=s.val(); } }); /* BANNER */ function lerBanner(i){ const r=new FileReader(); r.onload=()=>bannerImagem=r.result; r.readAsDataURL(i.files[0]); } function salvarBanner(){ if(!bannerImagem){alert("Escolha uma imagem");return;} lojaRef.child("banner").set(bannerImagem); } lojaRef.child("banner").on("value",s=>{ if(s.exists()) banner.innerHTML=''; }); /* CORES */ function aplicarCores(c){ if(!c) return; document.documentElement.style.setProperty("--primary-color",c.primary||"#111"); document.documentElement.style.setProperty("--bg-card",c.card||"#fff"); document.documentElement.style.setProperty("--bg-body",c.body||"#f2f2f2"); document.documentElement.style.setProperty("--text-color",c.text||"#000"); corPrimaria.value=corPrimariaTxt.value=c.primary; corCard.value=corCardTxt.value=c.card; corBody.value=corBodyTxt.value=c.body; corTexto.value=corTextoTxt.value=c.text; } lojaRef.child("cores").on("value",s=>{ if(s.exists()) aplicarCores(s.val()); }); function salvarCores(){ lojaRef.child("cores").set({ primary:corPrimaria.value, card:corCard.value, body:corBody.value, text:corTexto.value }); } /* WHATS */ function salvarWhats(){ lojaRef.child("whatsapp").set(whatsInput.value); } lojaRef.child("whatsapp").on("value",s=>{ if(s.exists()){ WHATSAPP_SALVO=s.val(); whatsInput.value=s.val(); } }); /* PRODUTOS */ produtosRef.on("value",snap=>{ listaProdutos=[]; snap.forEach(i=>{ const val=i.val(); val.id=i.key; listaProdutos.push(val); }); filtrarProdutos(); }); function renderProdutos(lista){ produtos.innerHTML=""; lista.forEach(function(p){ const estoqueAtual=p.estoque||0; const precoNum=Number(p.preco||0); const bloqueado = (!LOJA_ABERTA || estoqueAtual<=0); produtos.innerHTML+=`

${p.titulo||""}

${p.descricao||""}

R$ ${precoNum.toFixed(2)}
Estoque: ${estoqueAtual}
`; }); } function filtrarProdutos(){ const termo=(buscaInput.value||"").toLowerCase(); renderProdutos(listaProdutos.filter(p=>{ return (p.titulo||"").toLowerCase().includes(termo) || (p.descricao||"").toLowerCase().includes(termo); })); } function lerImagemProduto(i){ const r=new FileReader(); r.onload=()=>imagemProduto=r.result; r.readAsDataURL(i.files[0]); } function salvarProduto(){ const p={ titulo:titulo.value, descricao:descricao.value, preco:Number(preco.value||0), imagem:imagemProduto, estoque:Number(estoque.value||0) }; if(editando){produtosRef.child(editando).set(p);} else{produtosRef.push(p);} cancelarEdicao(); } function editarProduto(id){ produtosRef.child(id).once("value").then(s=>{ const p=s.val(); titulo.value=p.titulo; descricao.value=p.descricao; preco.value=p.preco; estoque.value=p.estoque||0; imagemProduto=p.imagem; editando=id; }); } function removerProduto(id){ if(confirm("Remover?")) produtosRef.child(id).remove();

Comentários

Postagens mais visitadas deste blog

Tentativa

Atualização