mirror of
https://github.com/ProxyPanel/ProxyPanel.git
synced 2026-04-12 23:48:53 +00:00
加入新支付方式 PayJS ← 未实装,后续版本实装。目前本人还卡在他们的账号注册上面,没法测试代码o(╥﹏╥)o 用户注册等地方添加新字段: 昵称; 用于后续邮件,页面显示;还需要更多优化与应用; 用户头像获取与昵称获取; 前提是用户有填写QQ信息或者注册邮箱为正常的QQ邮箱; 添加 维护模式; 模式开启后,用户界面将自动导到维护界面,管理后台正常运行。哀悼日网站可以添加大厂一样的哀悼维护了 3.1 维护模式定时关闭功能; 3.2 维护模式自定义提示语; Ping检测与定时记录; 4.1 添加Ping记录界面; 4.2 节点界面添加检测独立Ping按钮; 4.3 针对用户界面添加Ping参考信息; 余额充值自定义功能 部分界面js显示优化 模块化页面;
124 lines
4.7 KiB
PHP
124 lines
4.7 KiB
PHP
@extends('admin.layouts')
|
||
@section('content')
|
||
<div class="page-content container-fluid">
|
||
<div class="panel">
|
||
<div class="panel-heading">
|
||
<h2 class="panel-title">用户流量</h2>
|
||
</div>
|
||
<div class="alert alert-info alert-dismissible">
|
||
<button class="close" data-dismiss="alert" aria-label="Close"><span aria-hidden="true">×</span><span class="sr-only">{{trans('home.close')}}</span></button>
|
||
<h4 class="block">{{$email}}</h4>
|
||
<strong>提示:</strong> 月流量统计不会统计当天,日流量统计不会统计当前小时;如果无统计数据,请检查定时任务是否正常。(每月1日和每日0时因为没有统计流量,不显示流量)
|
||
</div>
|
||
<div class="panel-body">
|
||
<div class="row">
|
||
<div class="col-md-6">
|
||
<canvas id="dailyChart" aria-label="小时流量图" role="img"></canvas>
|
||
</div>
|
||
<div class="col-md-6">
|
||
<canvas id="monthlyChart" aria-label="月流量图" role="img"></canvas>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
</div>
|
||
@endsection
|
||
@section('script')
|
||
<script src="/assets/global/vendor/chart-js/Chart.min.js" type="text/javascript"></script>
|
||
|
||
<script type="text/javascript">
|
||
const dailyChart = new Chart(document.getElementById('dailyChart').getContext('2d'), {
|
||
type: 'line',
|
||
data: {
|
||
labels: [{!! $dayHours !!}],
|
||
datasets: [{
|
||
fill: true,
|
||
backgroundColor: "rgba(98, 168, 234, .1)",
|
||
borderColor: Config.colors("primary", 600),
|
||
pointRadius: 4,
|
||
borderDashOffset: 2,
|
||
pointBorderColor: "#fff",
|
||
pointBackgroundColor: Config.colors("primary", 600),
|
||
pointHoverBackgroundColor: "#fff",
|
||
pointHoverBorderColor: Config.colors("primary", 600),
|
||
data: [{!! $trafficHourly !!}],
|
||
}]
|
||
},
|
||
options: {
|
||
legend: {
|
||
display: false
|
||
},
|
||
responsive: true,
|
||
scales: {
|
||
xAxes: [{
|
||
display: true,
|
||
scaleLabel: {
|
||
display: true,
|
||
labelString: '小时'
|
||
}
|
||
}],
|
||
yAxes: [{
|
||
display: true,
|
||
ticks: {
|
||
beginAtZero: true,
|
||
userCallback: function (tick) {
|
||
return tick.toString() + ' GB';
|
||
}
|
||
},
|
||
scaleLabel: {
|
||
display: true,
|
||
labelString: '{{trans('home.traffic_log_24hours')}}'
|
||
}
|
||
}]
|
||
}
|
||
}
|
||
});
|
||
|
||
const monthlyChart = new Chart(document.getElementById('monthlyChart').getContext('2d'), {
|
||
type: 'line',
|
||
data: {
|
||
labels: [{!! $monthDays !!}],
|
||
datasets: [{
|
||
fill: true,
|
||
backgroundColor: "rgba(98, 168, 234, .1)",
|
||
borderColor: Config.colors("primary", 600),
|
||
pointRadius: 4,
|
||
borderDashOffset: 2,
|
||
pointBorderColor: "#fff",
|
||
pointBackgroundColor: Config.colors("primary", 600),
|
||
pointHoverBackgroundColor: "#fff",
|
||
pointHoverBorderColor: Config.colors("primary", 600),
|
||
data: [{!! $trafficDaily !!}],
|
||
}]
|
||
},
|
||
options: {
|
||
legend: {
|
||
display: false
|
||
},
|
||
responsive: true,
|
||
scales: {
|
||
xAxes: [{
|
||
display: true,
|
||
scaleLabel: {
|
||
display: true,
|
||
labelString: '天'
|
||
}
|
||
}],
|
||
yAxes: [{
|
||
display: true,
|
||
ticks: {
|
||
beginAtZero: true,
|
||
userCallback: function (tick) {
|
||
return tick.toString() + ' GB';
|
||
}
|
||
},
|
||
scaleLabel: {
|
||
display: true,
|
||
labelString: '{{trans('home.traffic_log_30days')}}'
|
||
}
|
||
}]
|
||
}
|
||
}
|
||
});
|
||
</script>
|
||
@endsection |