fuc/resources/views/tabler/admin/index.tpl
2025-04-22 19:28:24 +08:00

320 lines
13 KiB
Smarty
Executable File

{include file='admin/header.tpl'}
<div class="page-wrapper">
<div class="container-xl">
<div class="page-header d-print-none text-white">
<div class="row align-items-center">
<div class="col">
<h2 class="page-title">
<span class="home-title">站点概况</span>
</h2>
<div class="page-pretitle my-3">
<span class="home-subtitle">站点运营状态总览</span>
</div>
</div>
</div>
</div>
</div>
<div class="page-body">
<div class="container-xl">
<div class="row row-deck row-cards">
<div class="col-12">
<div class="row row-cards">
<div class="col-sm-6 col-lg-3">
<div class="card card-sm">
<div class="card-body">
<div class="row align-items-center">
<div class="col-auto">
<span class="bg-info text-white avatar">
<i class="ti ti-calendar-event icon"></i>
</span>
</div>
<div class="col">
<div class="font-weight-medium">
{$today_income}
</div>
<div class="text-secondary">
本日流水
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card card-sm">
<div class="card-body">
<div class="row align-items-center">
<div class="col-auto">
<span class="bg-blue text-white avatar">
<i class="ti ti-calendar-minus icon"></i>
</span>
</div>
<div class="col">
<div class="font-weight-medium">
{$yesterday_income}
</div>
<div class="text-secondary">
昨日流水
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card card-sm">
<div class="card-body">
<div class="row align-items-center">
<div class="col-auto">
<span class="bg-warning text-white avatar">
<i class="ti ti-calendar-stats icon"></i>
</span>
</div>
<div class="col">
<div class="font-weight-medium">
{$this_month_income}
</div>
<div class="text-secondary">
本月流水
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-6 col-lg-3">
<div class="card card-sm">
<div class="card-body">
<div class="row align-items-center">
<div class="col-auto">
<span class="bg-danger text-white avatar">
<i class="ti ti-calendar-plus icon"></i>
</span>
</div>
<div class="col">
<div class="font-weight-medium">
{$total_income}
</div>
<div class="text-secondary">
累计流水
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="card">
<div class="card-header">
<h3 class="card-title">{$total_user} 位用户的签到情况</h3>
</div>
<div class="card-body">
<div id="check-in"></div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="card">
<div class="card-header">
<h3 class="card-title">{$total_node} 个服务器的在线情况</h3>
</div>
<div class="card-body">
<div id="node-online"></div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="card">
<div class="card-header">
<h3 class="card-title">闲置账户</h3>
</div>
<div class="card-body">
<div id="user-inactive"></div>
</div>
</div>
</div>
<div class="col-sm-12 col-md-6">
<div class="card">
<div class="card-header">
<h3 class="card-title">流量用量</h3>
</div>
<div class="card-body">
<div id="traffic-usage"></div>
</div>
</div>
</div>
</div>
</div>
</div>
<script>
document.addEventListener("DOMContentLoaded", function () {
window.ApexCharts && (new ApexCharts(document.getElementById('check-in'), {
chart: {
type: "donut",
fontFamily: 'inherit',
height: 300,
sparkline: {
enabled: true
},
animations: {
enabled: false
},
},
fill: {
opacity: 1,
},
series: [{$total_user-$checkin_user}, {$checkin_user-$today_checkin_user}, {$today_checkin_user}],
labels: ["没有签到", "曾经签到", "今日签到"],
grid: {
strokeDashArray: 3,
},
colors: [tabler.getColor("azure"), tabler.getColor("cyan"), tabler.getColor("orange")],
legend: {
show: true,
position: 'bottom',
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8
},
},
tooltip: {
fillSeriesColor: false
},
})).render();
window.ApexCharts && (new ApexCharts(document.getElementById('node-online'), {
chart: {
type: "donut",
fontFamily: 'inherit',
height: 300,
sparkline: {
enabled: true
},
animations: {
enabled: false
},
},
fill: {
opacity: 1,
},
series: [{$alive_node}, {$total_node-$alive_node}],
labels: ["在线", "离线"],
grid: {
strokeDashArray: 2,
},
colors: [tabler.getColor("lime"), tabler.getColor("red")],
legend: {
show: true,
position: 'bottom',
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8
},
},
tooltip: {
fillSeriesColor: false
},
})).render();
window.ApexCharts && (new ApexCharts(document.getElementById('user-inactive'), {
chart: {
type: "donut",
fontFamily: 'inherit',
height: 300,
sparkline: {
enabled: true
},
animations: {
enabled: false
},
},
fill: {
opacity: 1,
},
series: [{$inactive_user}, {$active_user}],
labels: ["闲置账户", "活动账户"],
grid: {
strokeDashArray: 4,
},
colors: [tabler.getColor("yellow"), tabler.getColor("lime")],
legend: {
show: true,
position: 'bottom',
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8
},
},
tooltip: {
fillSeriesColor: false
},
})).render();
window.ApexCharts && (new ApexCharts(document.getElementById('traffic-usage'), {
chart: {
type: "donut",
fontFamily: 'inherit',
height: 300,
sparkline: {
enabled: true
},
animations: {
enabled: false
},
},
fill: {
opacity: 1,
},
series: [{$raw_today_traffic}, {$raw_last_traffic}, {$raw_unused_traffic}],
labels: ["今日已用({$today_traffic})", "过去已用({$last_traffic})", "剩余流量({$unused_traffic})"],
grid: {
strokeDashArray: 3,
},
colors: [tabler.getColor("green"), tabler.getColor("lime"), tabler.getColor("yellow")],
legend: {
show: true,
position: 'bottom',
offsetY: 12,
markers: {
width: 10,
height: 10,
radius: 100,
},
itemMargin: {
horizontal: 8,
vertical: 8
},
},
tooltip: {
fillSeriesColor: false
},
})).render();
});
</script>
<script src="//{$config['jsdelivr_url']}/npm/@tabler/core@1.1.1/dist/libs/apexcharts/dist/apexcharts.min.js"></script>
{include file='admin/footer.tpl'}