|
|
<!DOCTYPE html> |
|
|
<html lang="pt-BR"> |
|
|
<head> |
|
|
<meta charset="UTF-8"> |
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0"> |
|
|
<title>BetMonitor - Dashboard Casa de Apostas</title> |
|
|
<script src="https://cdn.tailwindcss.com"></script> |
|
|
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css"> |
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js"></script> |
|
|
<style> |
|
|
@import url('https://fonts.googleapis.com/css2?family=Poppins:wght@300;400;500;600;700&display=swap'); |
|
|
|
|
|
:root { |
|
|
--primary: #1a365d; |
|
|
--secondary: #2c5282; |
|
|
--accent: #e53e3e; |
|
|
--success: #38a169; |
|
|
--warning: #dd6b20; |
|
|
--dark: #1a202c; |
|
|
--light: #f7fafc; |
|
|
} |
|
|
|
|
|
body { |
|
|
font-family: 'Poppins', sans-serif; |
|
|
background-color: #edf2f7; |
|
|
} |
|
|
|
|
|
.sidebar { |
|
|
transition: all 0.3s ease; |
|
|
} |
|
|
|
|
|
.card { |
|
|
transition: transform 0.3s ease, box-shadow 0.3s ease; |
|
|
} |
|
|
|
|
|
.card:hover { |
|
|
transform: translateY(-5px); |
|
|
box-shadow: 0 10px 20px rgba(0, 0, 0, 0.1); |
|
|
} |
|
|
|
|
|
.dashboard-grid { |
|
|
display: grid; |
|
|
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr)); |
|
|
gap: 1.5rem; |
|
|
} |
|
|
|
|
|
.notification-badge { |
|
|
position: absolute; |
|
|
top: -5px; |
|
|
right: -5px; |
|
|
} |
|
|
|
|
|
.bet-table tr:nth-child(even) { |
|
|
background-color: #f8fafc; |
|
|
} |
|
|
|
|
|
.bet-table tr:hover { |
|
|
background-color: #edf2f7; |
|
|
} |
|
|
|
|
|
.status-badge { |
|
|
padding: 0.25rem 0.75rem; |
|
|
border-radius: 9999px; |
|
|
font-size: 0.75rem; |
|
|
font-weight: 600; |
|
|
} |
|
|
|
|
|
.status-win { |
|
|
background-color: rgba(56, 161, 105, 0.1); |
|
|
color: #38a169; |
|
|
} |
|
|
|
|
|
.status-lose { |
|
|
background-color: rgba(229, 62, 62, 0.1); |
|
|
color: #e53e3e; |
|
|
} |
|
|
|
|
|
.status-pending { |
|
|
background-color: rgba(221, 107, 32, 0.1); |
|
|
color: #dd6b20; |
|
|
} |
|
|
|
|
|
.role-admin { |
|
|
background-color: rgba(229, 62, 62, 0.1); |
|
|
color: #e53e3e; |
|
|
} |
|
|
|
|
|
.role-banquista { |
|
|
background-color: rgba(66, 153, 225, 0.1); |
|
|
color: #4299e1; |
|
|
} |
|
|
|
|
|
.role-operador { |
|
|
background-color: rgba(101, 163, 13, 0.1); |
|
|
color: #65a30d; |
|
|
} |
|
|
|
|
|
.role-financeiro { |
|
|
background-color: rgba(159, 122, 234, 0.1); |
|
|
color: #9f7aea; |
|
|
} |
|
|
</style> |
|
|
</head> |
|
|
<body class="flex h-screen bg-gray-100"> |
|
|
|
|
|
<div class="sidebar bg-white w-64 min-h-screen shadow-lg"> |
|
|
<div class="p-5 border-b"> |
|
|
<div class="flex items-center"> |
|
|
<div class="bg-red-600 text-white w-10 h-10 rounded-full flex items-center justify-center font-bold text-xl">BM</div> |
|
|
<div class="ml-3"> |
|
|
<h1 class="text-xl font-bold text-gray-800">BetMonitor</h1> |
|
|
<p class="text-xs text-gray-500">Dashboard Casa de Apostas</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<nav class="mt-5"> |
|
|
<a href="#" class="flex items-center px-5 py-3 text-white bg-red-600"> |
|
|
<i class="fas fa-chart-line mr-3"></i> |
|
|
Dashboard |
|
|
</a> |
|
|
<a href="#" class="flex items-center px-5 py-3 text-gray-600 hover:bg-gray-100"> |
|
|
<i class="fas fa-users mr-3"></i> |
|
|
Clientes |
|
|
</a> |
|
|
<a href="#" class="flex items-center px-5 py-3 text-gray-600 hover:bg-gray-100"> |
|
|
<i class="fas fa-ticket-alt mr-3"></i> |
|
|
Apostas |
|
|
</a> |
|
|
<a href="#" class="flex items-center px-5 py-3 text-gray-600 hover:bg-gray-100"> |
|
|
<i class="fas fa-money-bill-wave mr-3"></i> |
|
|
Transações |
|
|
</a> |
|
|
<a href="#" class="flex items-center px-5 py-3 text-gray-600 hover:bg-gray-100"> |
|
|
<i class="fas fa-chart-bar mr-3"></i> |
|
|
Relatórios |
|
|
</a> |
|
|
<a href="#" class="flex items-center px-5 py-3 text-gray-600 hover:bg-gray-100"> |
|
|
<i class="fas fa-cog mr-3"></i> |
|
|
Configurações |
|
|
</a> |
|
|
</nav> |
|
|
|
|
|
<div class="absolute bottom-0 w-64 p-5 border-t"> |
|
|
<div class="flex items-center"> |
|
|
<img src="https://ui-avatars.com/api/?name=Admin+User&background=ef4444&color=fff" class="w-10 h-10 rounded-full"> |
|
|
<div class="ml-3"> |
|
|
<p class="text-sm font-medium text-gray-800">Admin User</p> |
|
|
<p class="text-xs text-gray-500">Administrador</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="flex-1 overflow-auto"> |
|
|
|
|
|
<header class="bg-white shadow"> |
|
|
<div class="flex justify-between items-center p-4"> |
|
|
<div class="flex items-center"> |
|
|
<button class="text-gray-500 mr-4"> |
|
|
<i class="fas fa-bars"></i> |
|
|
</button> |
|
|
<div class="relative"> |
|
|
<input type="text" placeholder="Pesquisar..." class="pl-10 pr-4 py-2 rounded-lg border border-gray-300 focus:outline-none focus:ring-2 focus:ring-red-500 focus:border-transparent"> |
|
|
<i class="fas fa-search absolute left-3 top-3 text-gray-400"></i> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="flex items-center space-x-4"> |
|
|
<div class="relative"> |
|
|
<button class="text-gray-500 hover:text-gray-700"> |
|
|
<i class="fas fa-bell"></i> |
|
|
</button> |
|
|
<span class="notification-badge bg-red-500 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center">3</span> |
|
|
</div> |
|
|
|
|
|
<div class="relative"> |
|
|
<button class="text-gray-500 hover:text-gray-700"> |
|
|
<i class="fas fa-comment"></i> |
|
|
</button> |
|
|
<span class="notification-badge bg-red-500 text-white text-xs rounded-full w-5 h-5 flex items-center justify-center">5</span> |
|
|
</div> |
|
|
|
|
|
<div class="flex items-center"> |
|
|
<img src="https://ui-avatars.com/api/?name=Admin+User&background=ef4444&color=fff" class="w-8 h-8 rounded-full"> |
|
|
<span class="ml-2 text-sm font-medium">Admin User</span> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</header> |
|
|
|
|
|
|
|
|
<main class="p-6"> |
|
|
|
|
|
<div class="mb-6"> |
|
|
<h1 class="text-2xl font-bold text-gray-800">Dashboard</h1> |
|
|
<p class="text-gray-600">Visão geral das operações da casa de apostas</p> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="dashboard-grid mb-6"> |
|
|
<div class="card bg-white rounded-xl shadow"> |
|
|
<div class="p-5"> |
|
|
<div class="flex justify-between items-center"> |
|
|
<div> |
|
|
<p class="text-gray-500">Apostas Hoje</p> |
|
|
<h3 class="text-2xl font-bold mt-1">1,245</h3> |
|
|
</div> |
|
|
<div class="bg-red-100 p-3 rounded-full"> |
|
|
<i class="fas fa-ticket-alt text-red-600 text-xl"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mt-3"> |
|
|
<p class="text-green-500 text-sm"><i class="fas fa-arrow-up"></i> 12.3% desde ontem</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="card bg-white rounded-xl shadow"> |
|
|
<div class="p-5"> |
|
|
<div class="flex justify-between items-center"> |
|
|
<div> |
|
|
<p class="text-gray-500">Lucro Total</p> |
|
|
<h3 class="text-2xl font-bold mt-1">R$ 84,250</h3> |
|
|
</div> |
|
|
<div class="bg-green-100 p-3 rounded-full"> |
|
|
<i class="fas fa-money-bill-wave text-green-600 text-xl"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mt-3"> |
|
|
<p class="text-green-500 text-sm"><i class="fas fa-arrow-up"></i> 8.5% desde ontem</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="card bg-white rounded-xl shadow"> |
|
|
<div class="p-5"> |
|
|
<div class="flex justify-between items-center"> |
|
|
<div> |
|
|
<p class="text-gray-500">Novos Clientes</p> |
|
|
<h3 class="text-2xl font-bold mt-1">42</h3> |
|
|
</div> |
|
|
<div class="bg-blue-100 p-3 rounded-full"> |
|
|
<i class="fas fa-user-plus text-blue-600 text-xl"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mt-3"> |
|
|
<p class="text-red-500 text-sm"><i class="fas fa-arrow-down"></i> 3.2% desde ontem</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="card bg-white rounded-xl shadow"> |
|
|
<div class="p-5"> |
|
|
<div class="flex justify-between items-center"> |
|
|
<div> |
|
|
<p class="text-gray-500">Taxa de Retenção</p> |
|
|
<h3 class="text-2xl font-bold mt-1">78.3%</h3> |
|
|
</div> |
|
|
<div class="bg-purple-100 p-3 rounded-full"> |
|
|
<i class="fas fa-chart-pie text-purple-600 text-xl"></i> |
|
|
</div> |
|
|
</div> |
|
|
<div class="mt-3"> |
|
|
<p class="text-green-500 text-sm"><i class="fas fa-arrow-up"></i> 2.1% desde ontem</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6 mb-6"> |
|
|
<div class="card bg-white rounded-xl shadow"> |
|
|
<div class="p-5"> |
|
|
<h3 class="font-bold text-lg mb-4">Lucro por Esporte</h3> |
|
|
<div class="h-80"> |
|
|
<canvas id="sportChart"></canvas> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="card bg-white rounded-xl shadow"> |
|
|
<div class="p-5"> |
|
|
<h3 class="font-bold text-lg mb-4">Apostas por Hora</h3> |
|
|
<div class="h-80"> |
|
|
<canvas id="hourlyChart"></canvas> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="grid grid-cols-1 lg:grid-cols-3 gap-6 mb-6"> |
|
|
|
|
|
<div class="card bg-white rounded-xl shadow lg:col-span-2"> |
|
|
<div class="p-5"> |
|
|
<div class="flex justify-between items-center mb-4"> |
|
|
<h3 class="font-bold text-lg">Apostas Recentes</h3> |
|
|
<a href="#" class="text-red-600 text-sm">Ver todas</a> |
|
|
</div> |
|
|
|
|
|
<div class="overflow-x-auto"> |
|
|
<table class="w-full bet-table"> |
|
|
<thead> |
|
|
<tr class="text-left text-gray-500 text-sm border-b"> |
|
|
<th class="pb-2">Cliente</th> |
|
|
<th class="pb-2">Evento</th> |
|
|
<th class="pb-2">Valor</th> |
|
|
<th class="pb-2">Retorno</th> |
|
|
<th class="pb-2">Status</th> |
|
|
</tr> |
|
|
</thead> |
|
|
<tbody class="text-sm"> |
|
|
<tr class="border-b"> |
|
|
<td class="py-3">João Silva</td> |
|
|
<td class="py-3">Flamengo x Palmeiras</td> |
|
|
<td class="py-3">R$ 150,00</td> |
|
|
<td class="py-3">R$ 320,00</td> |
|
|
<td class="py-3"><span class="status-win status-badge">Vitória</span></td> |
|
|
</tr> |
|
|
<tr class="border-b"> |
|
|
<td class="py-3">Maria Oliveira</td> |
|
|
<td class="py-3">Brasil x Argentina</td> |
|
|
<td class="py-3">R$ 250,00</td> |
|
|
<td class="py-3">R$ 0,00</td> |
|
|
<td class="py-3"><span class="status-lose status-badge">Derrota</span></td> |
|
|
</tr> |
|
|
<tr class="border-b"> |
|
|
<td class="py-3">Carlos Souza</td> |
|
|
<td class="py-3">Corinthians x São Paulo</td> |
|
|
<td class="py-3">R$ 80,00</td> |
|
|
<td class="py-3">R$ 180,00</td> |
|
|
<td class="py-3"><span class="status-win status-badge">Vitória</span></td> |
|
|
</tr> |
|
|
<tr class="border-b"> |
|
|
<td class="py-3">Ana Costa</td> |
|
|
<td class="py-3">UFC - Silva vs Jones</td> |
|
|
<td class="py-3">R$ 200,00</td> |
|
|
<td class="py-3">R$ 450,00</td> |
|
|
<td class="py-3"><span class="status-win status-badge">Vitória</span></td> |
|
|
</tr> |
|
|
<tr> |
|
|
<td class="py-3">Pedro Alves</td> |
|
|
<td class="py-3">NBA Finals</td> |
|
|
<td class="py-3">R$ 300,00</td> |
|
|
<td class="py-3">-</td> |
|
|
<td class="py-3"><span class="status-pending status-badge">Pendente</span></td> |
|
|
</tr> |
|
|
</tbody> |
|
|
</table> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="card bg-white rounded-xl shadow"> |
|
|
<div class="p-5"> |
|
|
<div class="flex justify-between items-center mb-4"> |
|
|
<h3 class="font-bold text-lg">Atividade da Equipe</h3> |
|
|
<a href="#" class="text-red-600 text-sm">Ver todas</a> |
|
|
</div> |
|
|
|
|
|
<div class="space-y-4"> |
|
|
<div class="flex items-start"> |
|
|
<div class="relative"> |
|
|
<img src="https://ui-avatars.com/api/?name=Banquista+1&background=4299e1&color=fff" class="w-10 h-10 rounded-full"> |
|
|
<span class="absolute bottom-0 right-0 bg-green-500 border-2 border-white rounded-full w-3 h-3"></span> |
|
|
</div> |
|
|
<div class="ml-3"> |
|
|
<p class="font-medium">Banquista 1</p> |
|
|
<p class="text-sm text-gray-600">Registrou 12 novas apostas</p> |
|
|
<p class="text-xs text-gray-400">Há 15 minutos</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="flex items-start"> |
|
|
<div class="relative"> |
|
|
<img src="https://ui-avatars.com/api/?name=Financeiro&background=9f7aea&color=fff" class="w-10 h-10 rounded-full"> |
|
|
<span class="absolute bottom-0 right-0 bg-green-500 border-2 border-white rounded-full w-3 h-3"></span> |
|
|
</div> |
|
|
<div class="ml-3"> |
|
|
<p class="font-medium">Financeiro</p> |
|
|
<p class="text-sm text-gray-600">Processou 5 saques</p> |
|
|
<p class="text-xs text-gray-400">Há 30 minutos</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="flex items-start"> |
|
|
<div class="relative"> |
|
|
<img src="https://ui-avatars.com/api/?name=Operador&background=65a30d&color=fff" class="w-10 h-10 rounded-full"> |
|
|
<span class="absolute bottom-0 right-0 bg-green-500 border-2 border-white rounded-full w-3 h-3"></span> |
|
|
</div> |
|
|
<div class="ml-3"> |
|
|
<p class="font-medium">Operador</p> |
|
|
<p class="text-sm text-gray-600">Atualizou odds de 3 eventos</p> |
|
|
<p class="text-xs text-gray-400">Há 1 hora</p> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="flex items-start"> |
|
|
<div class="relative"> |
|
|
<img src="https://ui-avatars.com/api/?name=Banquista+2&background=4299e1&color=fff" class="w-10 h-10 rounded-full"> |
|
|
<span class="absolute bottom-0 right-0 bg-green-500 border-2 border-white rounded-full w-3 h-3"></span> |
|
|
</div> |
|
|
<div class="ml-3"> |
|
|
<p class="font-medium">Banquista 2</p> |
|
|
<p class="text-sm text-gray-600">Registrou novo cliente</p> |
|
|
<p class="text-xs text-gray-400">Há 2 horas</p> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<div class="mt-6"> |
|
|
<h4 class="font-bold mb-3">Equipe Online</h4> |
|
|
<div class="flex flex-wrap gap-2"> |
|
|
<span class="role-admin status-badge">Administrador</span> |
|
|
<span class="role-banquista status-badge">Banquista 1</span> |
|
|
<span class="role-banquista status-badge">Banquista 2</span> |
|
|
<span class="role-operador status-badge">Operador</span> |
|
|
<span class="role-financeiro status-badge">Financeiro</span> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</main> |
|
|
</div> |
|
|
|
|
|
<script> |
|
|
|
|
|
document.addEventListener('DOMContentLoaded', function() { |
|
|
|
|
|
const sportCtx = document.getElementById('sportChart').getContext('2d'); |
|
|
const sportChart = new Chart(sportCtx, { |
|
|
type: 'doughnut', |
|
|
data: { |
|
|
labels: ['Futebol', 'Basquete', 'Tênis', 'Vôlei', 'eSports', 'Outros'], |
|
|
datasets: [{ |
|
|
data: [35, 20, 15, 10, 12, 8], |
|
|
backgroundColor: [ |
|
|
'#e53e3e', |
|
|
'#3182ce', |
|
|
'#38a169', |
|
|
'#d69e2e', |
|
|
'#9f7aea', |
|
|
'#a0aec0' |
|
|
], |
|
|
borderWidth: 0 |
|
|
}] |
|
|
}, |
|
|
options: { |
|
|
responsive: true, |
|
|
maintainAspectRatio: false, |
|
|
plugins: { |
|
|
legend: { |
|
|
position: 'right', |
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
|
|
|
|
|
|
const hourlyCtx = document.getElementById('hourlyChart').getContext('2d'); |
|
|
const hourlyChart = new Chart(hourlyCtx, { |
|
|
type: 'line', |
|
|
data: { |
|
|
labels: ['00:00', '04:00', '08:00', '12:00', '16:00', '20:00'], |
|
|
datasets: [{ |
|
|
label: 'Número de Apostas', |
|
|
data: [120, 80, 150, 220, 300, 450], |
|
|
backgroundColor: 'rgba(66, 153, 225, 0.1)', |
|
|
borderColor: '#4299e1', |
|
|
borderWidth: 2, |
|
|
tension: 0.3, |
|
|
fill: true |
|
|
}] |
|
|
}, |
|
|
options: { |
|
|
responsive: true, |
|
|
maintainAspectRatio: false, |
|
|
scales: { |
|
|
y: { |
|
|
beginAtZero: true, |
|
|
grid: { |
|
|
drawBorder: false |
|
|
} |
|
|
}, |
|
|
x: { |
|
|
grid: { |
|
|
display: false |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
}); |
|
|
}); |
|
|
</script> |
|
|
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - 🧬 <a href="https://enzostvs-deepsite.hf.space?remix=Yurikks/teste" style="color: #fff;text-decoration: underline;" target="_blank" >Remix</a></p></body> |
|
|
</html> |