|
@@ -0,0 +1,87 @@
|
|
|
|
|
+<script>
|
|
|
|
|
+ import { onMount } from 'svelte';
|
|
|
|
|
+ import OrderCard from '$lib/component/OrderCard.svelte';
|
|
|
|
|
+ import HistoricModal from '$lib/component/HistoricModal.svelte';
|
|
|
|
|
+
|
|
|
|
|
+ let pedidos = [];
|
|
|
|
|
+
|
|
|
|
|
+ let mostrarHistorico = false;
|
|
|
|
|
+
|
|
|
|
|
+ const abrirHistorico = () => {
|
|
|
|
|
+ mostrarHistorico = true;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ const fecharHistorico = () => {
|
|
|
|
|
+ mostrarHistorico = false;
|
|
|
|
|
+ };
|
|
|
|
|
+
|
|
|
|
|
+ // Marca pedido como concluído (vai para o histórico)
|
|
|
|
|
+ function handlePedidoPronto(event) {
|
|
|
|
|
+ const pedidoAtualizado = event.detail;
|
|
|
|
|
+ pedidos = pedidos.map(pedido =>
|
|
|
|
|
+ pedido.mesa === pedidoAtualizado.mesa
|
|
|
|
|
+ ? { ...pedido, status: 'concluido' }
|
|
|
|
|
+ : pedido
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // Volta pedido do histórico para andamento (volta pra lista)
|
|
|
|
|
+ function handleVoltarAndamento(event) {
|
|
|
|
|
+ const pedidoAlvo = event.detail;
|
|
|
|
|
+ pedidos = pedidos.map(pedido =>
|
|
|
|
|
+ pedido.mesa === pedidoAlvo.mesa
|
|
|
|
|
+ ? { ...pedido, status: 'andamento' }
|
|
|
|
|
+ : pedido
|
|
|
|
|
+ );
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
|
|
+ // ⚡ Carrega pedidos do "backend"
|
|
|
|
|
+ onMount(async () => {
|
|
|
|
|
+ try {
|
|
|
|
|
+ const response = await fetch('https://dev2.mixtech.dev.br/dashboard/kitchen');
|
|
|
|
|
+ const data = await response.json();
|
|
|
|
|
+ pedidos = data;
|
|
|
|
|
+ } catch (error) {
|
|
|
|
|
+ console.error('Erro ao carregar pedidos:', error);
|
|
|
|
|
+
|
|
|
|
|
+ // Fallback local caso falhe
|
|
|
|
|
+ pedidos = [
|
|
|
|
|
+ { mesa: '01', itens: ['Coca', 'X-Burguer'], status: 'pendente' },
|
|
|
|
|
+ { mesa: '02', itens: ['Água', 'Batata'], status: 'andamento' },
|
|
|
|
|
+ { mesa: '03', itens: ['Cerveja', 'Sopa'], status: 'pendente' },
|
|
|
|
|
+ { mesa: '04', itens: ['Suco', 'Lasanha'], status: 'concluido' }
|
|
|
|
|
+ ];
|
|
|
|
|
+ }
|
|
|
|
|
+ });
|
|
|
|
|
+
|
|
|
|
|
+ // Lista apenas pedidos não concluídos
|
|
|
|
|
+ $: pedidosAtivos = pedidos.filter(p => p.status !== 'concluido');
|
|
|
|
|
+
|
|
|
|
|
+ // Lista de pedidos concluídos para o histórico
|
|
|
|
|
+ $: pedidosConcluidos = pedidos.filter(p => p.status === 'concluido');
|
|
|
|
|
+</script>
|
|
|
|
|
+
|
|
|
|
|
+<main class="p-4 bg-gray-800 min-h-screen text-white relative">
|
|
|
|
|
+ <!-- Botão para abrir histórico -->
|
|
|
|
|
+ <div class="absolute top-4 right-4">
|
|
|
|
|
+ <button class="text-sm underline" on:click={abrirHistorico}>
|
|
|
|
|
+ Ver histórico
|
|
|
|
|
+ </button>
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- Lista de pedidos ativos -->
|
|
|
|
|
+ <div class="mt-10 space-y-4">
|
|
|
|
|
+ {#each pedidosAtivos as pedido (pedido.mesa)}
|
|
|
|
|
+ <OrderCard {pedido} on:pedidoPronto={handlePedidoPronto} />
|
|
|
|
|
+ {/each}
|
|
|
|
|
+ </div>
|
|
|
|
|
+
|
|
|
|
|
+ <!-- Modal de histórico -->
|
|
|
|
|
+ {#if mostrarHistorico}
|
|
|
|
|
+ <HistoricModal
|
|
|
|
|
+ pedidos={pedidosConcluidos}
|
|
|
|
|
+ on:close={fecharHistorico}
|
|
|
|
|
+ on:voltarAndamento={handleVoltarAndamento}
|
|
|
|
|
+ />
|
|
|
|
|
+ {/if}
|
|
|
|
|
+</main>
|