257 lines
8.0 KiB
HTML
Raw Normal View History

2025-03-06 08:59:31 +08:00
<style type="text/css">
.sm-st {
background:#fff;
padding:20px;
-webkit-border-radius:3px;
-moz-border-radius:3px;
border-radius:3px;
margin-bottom:20px;
-webkit-box-shadow: 0 1px 0px rgba(0,0,0,0.05);
box-shadow: 0 1px 0px rgba(0,0,0,0.05);
}
.sm-st-icon {
width:60px;
height:60px;
display:inline-block;
line-height:60px;
text-align:center;
font-size:30px;
background:#eee;
-webkit-border-radius:5px;
-moz-border-radius:5px;
border-radius:5px;
float:left;
margin-right:10px;
color:#fff;
}
.sm-st-info {
font-size:12px;
padding-top:2px;
}
.sm-st-info span {
display:block;
font-size:24px;
font-weight:600;
}
.orange {
background:#fa8564 !important;
}
.tar {
background:#45cf95 !important;
}
.sm-st .green {
background:#86ba41 !important;
}
.pink {
background:#AC75F0 !important;
}
.yellow-b {
background: #fdd752 !important;
}
.stat-elem {
background-color: #fff;
padding: 18px;
border-radius: 40px;
}
.stat-info {
text-align: center;
background-color:#fff;
border-radius: 5px;
margin-top: -5px;
padding: 8px;
-webkit-box-shadow: 0 1px 0px rgba(0,0,0,0.05);
box-shadow: 0 1px 0px rgba(0,0,0,0.05);
font-style: italic;
}
.stat-icon {
text-align: center;
margin-bottom: 5px;
}
.st-red {
background-color: #F05050;
}
.st-green {
background-color: #27C24C;
}
.st-violet {
background-color: #7266ba;
}
.st-blue {
background-color: #23b7e5;
}
.stats .stat-icon {
color: #28bb9c;
display: inline-block;
font-size: 26px;
text-align: center;
vertical-align: middle;
width: 50px;
float:left;
}
.stat {
white-space: nowrap;
overflow: hidden;
text-overflow: ellipsis;
display: inline-block;
margin-right: 10px; }
.stat .value {
font-size: 20px;
line-height: 24px;
overflow: hidden;
text-overflow: ellipsis;
font-weight: 500; }
.stat .name {
overflow: hidden;
text-overflow: ellipsis; }
.stat.lg .value {
font-size: 26px;
line-height: 28px; }
.stat.lg .name {
font-size: 16px; }
.stat-col .progress {height:2px;}
.stat-col .progress-bar {line-height:2px;height:2px;}
.item {
padding:30px 0;
}
</style>
{if $todaytimes>0}
<div class="alert alert-danger-light">
今日有攻击,请注意安全防护,安全并不能完全依赖于本插件。
</div>
{/if}
<div class="panel panel-default panel-intro">
<div class="panel-heading">
{:build_heading(null, false)}
<ul class="nav nav-tabs">
<li class="active"><a href="#one" data-toggle="tab">概括</a></li>
</ul>
</div>
<div class="panel-body">
<div id="myTabContent" class="tab-content">
<div class="tab-pane fade active in" id="one">
<div class="row">
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
<a href="javascript:;" data-title="">
<span class="sm-st-icon st-red"><i class="fa fa-warning"></i></span>
<div class="sm-st-info">
<span>{$todaytimes}</span>
今日攻击(次)
</div>
</a>
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
<a href="javascript:;" data-title="攻击来源(IP)">
<span class="sm-st-icon st-violet"><i class="fa fa-users"></i></span>
<div class="sm-st-info">
<span>{$todayips}</span>
今日IP
</div>
</a>
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
<a href="javascript:;" data-title="">
<span class="sm-st-icon st-violet"><i class="fa fa-warning"></i></span>
<div class="sm-st-info">
<span>{$totaltimes}</span>
总攻击(次)
</div>
</a>
</div>
</div>
<div class="col-sm-3 col-xs-6">
<div class="sm-st clearfix">
<a href="javascript:;" data-title="攻击来源(IP)">
<span class="sm-st-icon st-green"><i class="fa fa-users"></i></span>
<div class="sm-st-info">
<span>{$totalips}</span>
总共(IP)
</div>
</a>
</div>
</div>
</div>
<div class="row">
<div class="col-lg-12">
<div id="echart" style="height:400px;width:100%;"></div>
</div>
</div>
<div class="row">
<div class="col-lg-6">
<div class="box box-info">
<div class="box-header"><h3 class="box-title">攻击排行</h3></div>
<div class="box-body" style="padding-top:0;">
<table class="table table-striped">
<tbody>
{foreach rankingips as $v}
<tr>
<td width="140">{$v['count']}(次)</td>
<td>{$v['ip']}</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
</div>
</div>
<div class="col-lg-6">
<div class="box box-info">
<div class="box-header"><h3 class="box-title">今日攻击排行</h3></div>
<div class="box-body" style="padding-top:0;">
<table class="table table-striped">
<tbody>
{foreach $todayranking as $v}
<tr>
<td width="140">{$v['count']}(次)</td>
<td>{$v['ip']}</td>
</tr>
{/foreach}
</tbody>
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="tab-pane fade" id="two">
<div class="row">
<div class="col-xs-12">
{:__('Custom zone')}
</div>
</div>
</div>
</div>
</div>
<script>
var data = {
column: {:json_encode(array_keys($totallist))},
totallist: {:json_encode(array_values($totallist))},
};
</script>