1.更新登录页logo和首页左上角logo

2.流量统计页面新样式,涉及3个加了new后缀的文件,现场根据需要去掉_new即可使用:
* static/pages/scripts/echart.js_new
* static/pages/css/data_text.css_new
* views/dashboard/dashBoardIndex.jsp_new
This commit is contained in:
chenjinsong
2018-12-19 16:05:05 +08:00
parent e37bc7251d
commit e25d3d600a
29 changed files with 3602 additions and 110 deletions

View File

@@ -0,0 +1,935 @@
<%@ page contentType="text/html;charset=UTF-8"%>
<%@ include file="/WEB-INF/include/taglib.jsp"%>
<html>
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge">
<meta name="viewport" content="width=device-width, initial-scale=1">
<title>数据概览</title>
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/pages/css/common.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/pages/css/data_text.css">
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/pages/css/dashboard.css">
<script src="${pageContext.request.contextPath}/static/pages/scripts/dashboard.js"></script>
<!--[if lt IE 9]>
<script src="js/html5shiv.min.js"></script>
<script src="js/respond.min.js"></script>
<![endif]-->
<style>
body {
overflow-x:hidden
}
.chart_topic text {
color: #fff
}
.fa-arrow-circle-up {
color: #fe392e;
background-color: white;
border-radius: 10px;
font-size: 13px;
width: 10px;
height: 10px;
line-height: 9px !important;
}
.fa-arrow-circle-down {
color: #42DEEB;
background-color: white;
border-radius: 10px;
font-size: 13px;
width: 10px;
height: 10px;
line-height: 9px !important;
}
</style>
</head>
<body>
<!--content开始-->
<div class="data_content">
<!--header开始-->
<!-- <div class="header-title">
<div class="title-left fl"></div>
<div class="title-center fl"><a href="javascript:window.location.reload()"><i class="fa fa-line-chart"></i>&nbsp;网络流量分析</a></div>
<div class="title-right fr"></div>
</div> -->
<div class="header">
<div class="data_info">
<div class="info_1 fl_fc">
<div class="text_1">
<div class="fr_fc" style="width:60%">
<div class="fl_visual">
<a href="${ctx}/dashboard/traffic/bandwidthList"><i class="fa fa-cloud-download"></i></a>
</div>
<div class="fl_fc">
<p>
<label data-original-title="<spring:message code="traffic"/>" class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 网络带宽 --><spring:message code="traffic"/>
</label>
</p>
<a href="${ctx}/dashboard/traffic/bandwidthList"><p class="csNum">c2s <span class="c2sNum">0</span> | s2c <span class="s2cNum">0</span> </p>
<span class="numberRun4">0</span > <span class="numberRun4-unit">bps</span></a>
</div>
</div>
<div class="fr_fc" style="width:40%">
<div class="fl_visual">
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=block"><i class="fa fa-ban"></i></a>
</div>
<div class="fl_fc">
<p style="margin-left: 0px;width:100%">
<label data-original-title="<spring:message code="action_reject"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 阻断链接数 --><spring:message code="action_reject"/>
</label>
</p>
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=block"><p class="numberRun1">0</p></a>
</div>
</div>
</div>
</div>
<div class="info_2 fl_fc">
<div class="text_2">
<div class="fr_fc">
<div class="fl_visual">
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=monitor"><i class="fa fa-eye"> </i></a>
</div>
<div class="fl_fc">
<p data-original-title="<spring:message code="action_monit"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 监测链接数 --><spring:message code="action_monit"/></p>
<a href="${ctx}/dashboard/traffic/trafficBlockList?searchAction=monitor"><p class="numberRun2">0</p></a>
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-trash"> </i>
</div>
<div class="fl_fc">
<%-- <a href="${ctx}/dashboard/ipActiveList"> --%>
<p data-original-title="<spring:message code="action_drop"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 丢弃链接数 --><spring:message code="action_drop"/></p>
<p class="numberRun3">0</p>
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-recycle"> </i>
</div>
<div class="fl_fc">
<!-- <a href="javacript:;"> -->
<p data-original-title="<spring:message code="action_loop"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 回流链接数 --><spring:message code="action_loop"/></p>
<p class="numberRun">0</p>
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-link"> </i>
</div>
<div class="fl_fc">
<!-- <a href="javacript:;"> -->
<p data-original-title="<spring:message code="new_link"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 新建链接数 --><spring:message code="new_link"/></p>
<p class="numberRun5">0</p>
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-unlink"> </i>
</div>
<div class="fl_fc">
<p data-original-title="<spring:message code="active_link"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- 活跃链接数 --><spring:message code="active_link"/></p>
<p class="numberRun6">0</p>
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-smile-o"> </i>
</div>
<div class="fl_fc">
<p data-original-title="<spring:message code="pass"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- pass --><spring:message code="pass"/></p>
<p class="numberRun7">0</p>
</div>
</div>
<div class="fr_fc">
<div class="fl_visual">
<i class="fa fa-heartbeat"> </i>
</div>
<div class="fl_fc">
<p data-original-title="<spring:message code="live_link"/>"
class="tooltips" data-flag="false" data-html="true" data-placement="top">
<!-- live link--><spring:message code="live_link"/></p>
<p class="numberRun8">0</p>
</div>
</div>
</div>
</div>
</div>
</div>
<input id="beginDateh" type="hidden" value="${beginDate}"/>
<input id="endDateh" type="hidden" value="${endDate}"/>
<!--header结束-->
<!-- 第一行 -->
<div class="data_main">
<div class="main_left fl">
<div class="left_1">
<div class="main_title">
<label class="txt"><spring:message code="traffic_ipactive_chart"/></label>
<span class="label_block" style="border-left:2px #646d8a solid;">
<label class="btn2"> <a href="javascipt:void(0)" onclick="ipActiveList();return false;"><i class="fa fa-refresh"></i></a></label>
</span>
<span class="label_block" style="border-left:2px #626a87 solid;">
<label><a href="${ctx}/dashboard/ipActiveList"><i class="fa fa-line-chart"></i></a></label>
</span>
</div>
<!-- 活跃IP图 --> <div class="chart-back" id="chart_main" style="width:100%;height:400px;"></div>
</div>
</div>
<!-- 协议类型图 -->
<div class="main_center fl">
<div class="center_text">
<div class="main_title">
<label class="txt"><spring:message code="traffic_protocol_chart"/></label>
<span class="label_block" style="border-left:2px #575073 solid;">
<label><a href="javascipt:void(0)" onclick="protocolList();return false;"><i class="fa fa-refresh"></i></a></label>
</span>
<span class="label_block" style="border-left:2px #575073 solid;">
<label><a href="${ctx}/dashboard/traffic/protocolTypeList"><i class="fa fa-line-chart"></i></a></label>
</span>
</div>
<div id="chart_1" class="chart-back" style="width:100%;height: 400px;"></div>
</div>
</div>
<!-- 活跃端口 -->
<div class="main_right fr">
<div class="right_1">
<div class="main_title_port">
<label class="txt"><spring:message code="active_port"/></label>
<span class="label_block" style="border-left:2px #575073 solid;">
<label><a href="javascipt:void(0)" onclick="portActiveList();return false;"><i class="fa fa-refresh"></i></a></label>
</span>
</div>
<div class="main_table_port">
<table id="contentTable">
<thead>
<tr>
<th><spring:message code="port"/></th>
<th><spring:message code="visits"/></th>
<th><spring:message code="trend"/></th>
</tr>
</thead>
<tbody id="tbodyDataPort">
</tbody>
</table>
</div>
</div>
</div>
</div>
<!-- 第2行 -->
<div class="data_main1">
<div class="main_left1 fl">
<div class="left_1">
<div class="main_title1">
<label class="txt"><spring:message code="service"/></label>
<span class="label_block" style="border-left:2px #99879b solid;">
<label><a href="javascipt:void(0)" onclick="topicAndDomainList();return false;"><i class="fa fa-refresh"></i></a></label>
</span>
<span class="label_block" style="border-left:2px #9f8da1 solid;">
<label><a href="${ctx}/dashboard/httpStatisticList"><i class="fa fa-line-chart"></i></a></label>
</span>
</div>
<!-- 网站主题分类图 --><div id="chart_topic" style="width:100%;height:400px;"></div>
</div>
</div>
<div class="main_center1 fl">
<div class="bottom_web fl">
<div class="main_title_web">
<label class="txt"><spring:message code="traffic_website_list"/></label>
<span class="label_block" style="border-left:2px #824e6a solid;">
<label><a href="javascipt:void(0)" onclick="websiteList();return false;"><i class="fa fa-refresh"></i></a></label>
</span>
</div>
<div class="main_table_web">
<table>
<thead>
<tr>
<th><spring:message code="ranking"/></th>
<th><spring:message code="website"/></th>
<th><spring:message code="trend"/></th>
</tr>
</thead>
<tbody id="tbodyData2">
</tbody>
</table>
</div>
</div>
</div>
<div class="main_right1 fl" style="margin-left:5px;">
<div class="bottom_web fl">
<%-- <div class="main_title_web">
<spring:message code="traffic_website_type_chart"/>
</div> --%>
<div class="main_table_web">
<!-- http网站分类图 --><div id="chart_4" class=""></div>
</div>
</div>
</div>
</div>
<!-- 第三行-->
<div class="data_main1">
<div class="main_left1 fl">
<div class="left_1">
<div class="main_title1">
<label class="txt"><spring:message code="traffic_app_chart"/></label>
<span class="label_block" style="border-left:2px #5c6a78 solid;">
<label><a href="javascipt:void(0)" onclick="appTypeList();return false;"><i class="fa fa-refresh"></i></a></label>
</span>
<span class="label_block" style="border-left:2px #5c6a78 solid;">
<label><a href="${ctx}/dashboard/traffic/appTypeList"><i class="fa fa-line-chart"></i></a></label>
</span>
</div>
<!--app应用图 --><div id="chart_3" class="" style="width:100%;height: 420px;"></div>
</div>
</div>
<div class="main_center1 fl">
<div class="bottom_web fl">
<div class="main_title_web">
<label class="txt"><!-- 终端 -->OS/BS </label><!-- <a href="#"><i class="fa fa-list-ul"></i></a> -->
<span class="label_block" style="border-left:2px #6e5377 solid;">
<label><a href="javascipt:void(0)" onclick="uaSelectChange();return false;"><i class="fa fa-refresh"></i></a></label>
</span>
</div>
<div class="main_table_web">
<table>
<thead>
<tr>
<th><spring:message code="ranking"/></th>
<th>
<div class="choice">
<select name="uaSelect" id="uaSelect" style="text-align:center; text-align-last:center; -webkit-appearance: none; background-color: #3D495F; width: 80px;" class="minimal">
<option value="system">&nbsp;<spring:message code="os"/></option>
<option value="browser">&nbsp;<spring:message code="browser"/></option>
</select>
</div>
</th>
<th><spring:message code="trend"/></th>
</tr>
</thead>
<tbody id="tbodyData1">
</tbody>
</table>
</div>
</div>
</div>
<div class="main_right1 fl">
<div class="bottom_web fl" style="margin-left:5px;">
<%-- <div class="main_title_web">
<spring:message code="traffic_website_type_chart"/>
</div> --%>
<div class="main_table_web">
<!-- ua终端图 --><div id="chart_2" class="" style="width:100%;height: 470px;"></div>
</div>
</div>
</div>
</div>
</div>
<!--content结束-->
<!-- 列表显示 -->
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/highcharts.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/data.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/drilldown.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/no-data-to-display.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/sunburst.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/exporting.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/series-label.js"></script>
<script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/js/offline-exporting.js"></script>
<script src="${pageContext.request.contextPath}/static/pages/scripts/echart.js"></script>
<%-- <script src="${pageContext.request.contextPath}/static/global/plugins/highcharts/themes/grid.js"></script> --%>
<style>
tr.select-row-tr:HOVER {
background-color: #5d6062 !important;
cursor: pointer;
}
tr.select-row-tr:ACTIVE {
background-color: #5d6062 !important;
}
.activeColor{
background-color: #5d6062 !important;
}
</style>
<script type="text/javascript">
$(document).ready(function(){
//动态显示数据
ajaxinfo();
setInterval(function(){
ajaxinfo();
},300000);
protocolList();//协议统计
ipActiveList();//活跃IP
portActiveList();//活跃端口
appTypeList();//应用类型
// systemList();//操作系统列表
websiteList();//http网站列表
topicAndDomainList();//主题网站域名
uaSelectChange();
//当选择改变时触发
$('#uaSelect').change(function(){
uaSelectChange();
});
var starth=$("#beginDateh").val();
var endh=$("#endDateh").val();
$("#ipBeginDate").val(starth);
$("#ipEndDate").val(endh);
});
//获取数据info
function ajaxinfo(){
$.ajax({
url:'${ctx}/dashboard/traffic/info',
type : "get" ,
dataType:'json',
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (data){
var loopConnNum =loopConnNum= data.loopConnNum;
var rejectNum =data.rejectNum;
var monitorNum =data.monitorNum;
var dropConnNum =data.dropConnNum;
var newUniConnNum=data.newUniConnNum;
var liveConnNum=data.liveConnNum;
if(loopConnNum==null||loopConnNum==""){
loopConnNum=0;
}
if(rejectNum==null||rejectNum==""){
rejectNum=0;
}
if(monitorNum==null||monitorNum==""){
monitorNum=0;
}
if(dropConnNum==null||dropConnNum==""){
dropConnNum=0;
}
if(newUniConnNum==null||newUniConnNum==""){
newUniConnNum=0;
}
if(liveConnNum==null||liveConnNum==""){
liveConnNum=0;
}
dataScroll(".numberRun",Math.round(loopConnNum));
dataScroll(".numberRun1",Math.round(rejectNum));
dataScroll(".numberRun2",Math.round(monitorNum));
dataScroll(".numberRun3",Math.round(dropConnNum));
dataScroll(".numberRun5",Math.round(newUniConnNum));
dataScroll(".numberRun6",Math.round(liveConnNum));
dataScroll(".numberRun7",Math.round(newUniConnNum-rejectNum));
dataScroll(".numberRun8",Math.round(newUniConnNum-rejectNum-dropConnNum));
//计算带宽进出口流量百分比
var inoctetsNum=Math.round(data.inoctetsNum);
var inoctetsNumK=inoctetsNum/1024;
var inoctetsNumM=inoctetsNumK/1024;
var inoctetsNumG=inoctetsNumM/1024;
var outoctetsNum=Math.round(data.outoctetsNum);
var outoctetsNumK=outoctetsNum/1024;
var outoctetsNumM=outoctetsNumK/1024;
var outoctetsNumG=outoctetsNumM/1024;
var unit="bps";
var bandwidth=inoctetsNum+outoctetsNum;
if(inoctetsNumK>1||outoctetsNumK>1){
inoctetsNum=inoctetsNumK.toFixed(2);
outoctetsNum=outoctetsNumK.toFixed(2);
unit="Kbps";
};
if(inoctetsNumM>1||outoctetsNumM>1){
inoctetsNum=inoctetsNumM.toFixed(2);
outoctetsNum=outoctetsNumM.toFixed(2);
unit="Mbps";
};
if(inoctetsNumG>1||outoctetsNumG>1){
inoctetsNum=inoctetsNumG.toFixed(2);
outoctetsNum=outoctetsNumG.toFixed(2);
unit="Gbps";
};
$(".c2sNum").text(inoctetsNum);
$(".s2cNum").text(outoctetsNum);
$(".numberRun4-unit").text(" "+unit);
bandwidth=parseFloat(inoctetsNum)+parseFloat(outoctetsNum);
dataScroll2(".numberRun4",bandwidth);
},
});
}
//动态显示数据
function dataScroll(index,nums){
if(typeof nums=='undefined'||nums==null||nums==""){
nums=0;
}
var num=nums;
var numRun = $(index).numberAnimate({num:1, speed:3000, symbol:","});
numRun.resetData(nums);
}
function dataScroll2(index,nums){
if(typeof nums=='undefined'||nums==null||nums==""){
nums=0;
}
var num=nums;
var numRun = $(index).numberAnimate({num:1, speed:3000, symbol:",",dot:2});
numRun.resetData(nums);
}
//切换下拉列表-操作系统与浏览器
function uaSelectChange(){
var ua = $('#uaSelect').val();
if(ua=="system"){
systemList();
}
if(ua=="browser"){
browserList();
}
}
//协议类型统计
function protocolList(){
loading();
$.ajax({
url: '${ctx}/dashboard/protocol',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
if(rs!=null&&rs.length>0&&rs[0].error!=null){
top.$.jBox.tip("<spring:message code='request_service_failed'/>", "<spring:message code='info'/>");
return;
}else{
echart_1(rs);
}
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//活跃IP统计
function ipActiveList(){
loading();
$.ajax({
url: '${ctx}/dashboard/ipActive',
type : "get" ,
dataType:"json",
cache:false,
async:true,
timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
if(rs!=null&&rs.length>0&&rs[0].error!=null){
top.$.jBox.tip("<spring:message code='request_service_failed'/>", "<spring:message code='info'/>");
return;
}else{
echart_main(rs);
}
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//活跃端口统计
function portActiveList(){
loading();
$.ajax({
url: '${ctx}/dashboard/portActive',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
beforeSend: function () {
var msg = "OnLoading...";
var trLen = $("#tbodyDataPort tr").length;
if(trLen<=0) {
msg = "OnLoading...";
}else {
$("#tbodyDataPort").html("")
}
var tr = "<tr class='frist rowData'>";
tr += "<td class='list_c1' colspan='3' align='center' style='color:#fff'>"+msg+"</td>";
$("#tbodyDataPort").prepend(tr);
},
success:function (rs) {
rs.reverse();
$("#tbodyDataPort").html("");
var n=rs.length;
if(rs!=null&&rs.length>0&&rs[0].error!=null){
$("#tbodyDataPort").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'><spring:message code='request_service_failed'/></td><td></td></tr>");
}else{
if(n>0){
$(rs).each(function(i, itemObj) {
var count= itemObj.sum;
var preCount = itemObj.preSum;
var tr = "<tr class='frist rowData'>";
tr += "<td class='list_c1' style='color:#fff' title='"+itemObj.port+"'>"+itemObj.port+"</td>";
tr += "<td class='list_c2' style='color:#fff'>"+count+"</td>";
if(preCount<count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-circle-up'/>"+"</td></tr>";
}else if(preCount>count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-circle-down/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+"--"+"</td></tr>";
}
$("#tbodyDataPort").prepend(tr);
})
}else{
$("#tbodyDataPort").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
}
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//app应用类型统计
function appTypeList(){
loading();
$.ajax({
url: '${ctx}/dashboard/app',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
if(rs!=null&&rs.length>0&&rs[0].error!=null){
top.$.jBox.tip("<spring:message code='request_service_failed'/>", "<spring:message code='info'/>");
return;
}else{
echart_3(rs);
}
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//获取终端用户-操作系统列表 左下
function systemList(){
loading();
$.ajax({
url: '${ctx}/dashboard/osList',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
beforeSend: function () {
var msg = "OnLoading...";
var trLen = $("#tbodyData1 tr").length;
if(trLen<=0) {
msg = "OnLoading...";
}else {
$("#tbodyData1").html("")
}
var tr = "<tr class='frist rowData'>";
tr += "<td class='list_c1' colspan='3' align='center' style='color:#fff'>"+msg+"</td>";
$("#tbodyData1").prepend(tr);
},
success:function (rs) {
$("#tbodyData1").html("");
rs.reverse();
var n=rs.length;
if(rs!=null&&rs.length>0&&rs[0].error!=null){
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'><spring:message code='request_service_failed'/></td><td></td></tr>");
}else{
if(n>0){
$(rs).each(function(i, itemObj) {
var os="";
if(typeof(itemObj.osType)!="undefined"&&itemObj.osType!=null){
os=(itemObj.osType).toString();
if(os.length>18){
os=os.substring(0,18);
}
}
var count= itemObj.count;
var preCount = itemObj.preCount;
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:osClick(\""+itemObj.osType+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title='"+itemObj.osType+"'>"+os+"</td>";
if(preCount<count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-circle-up'/>"+"</td></tr>";
}else if(preCount>count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-circle-down'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+"--"+"</td></tr>";
}
n=n-1;
$("#tbodyData1").prepend(tr);
})
}else{
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
//终端图-操作系统
echart_2(rs.reverse());
}
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
// 点击操作系统列表右侧显示 浏览器图
function osClick(osType,obj){
//点击行变色
$("#tbodyData1 tr").removeClass("activeColor");
loading();
$(obj).addClass("activeColor");
$.ajax({
url: '${ctx}/dashboard/browserChart',
type : "get" ,
data:{"osType":osType},
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
echart_5(rs);
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//点击浏览器列表右侧显示 操作系统图
function bsClick(bsType,obj){
$("#tbodyData1 tr").removeClass("activeColor");
loading();
$(obj).addClass("activeColor");
$.ajax({
url: '${ctx}/dashboard/systemChart',
type : "get" ,
data:{"bsType":bsType},
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
echart_2(rs);
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//获取终端用户-浏览器列表
function browserList() {
loading();
$.ajax({
url: '${ctx}/dashboard/bsList',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
beforeSend: function () {
var msg = "OnLoading...";
var trLen = $("#tbodyData1 tr").length;
if(trLen<=0) {
msg = "OnLoading...";
}else {
$("#tbodyData1").html("")
}
var tr = "<tr class='frist rowData'>";
tr += "<td class='list_c1' colspan='3' align='center' style='color:#fff'>"+msg+"</td>";
$("#tbodyData1").prepend(tr);
},
success:function (rs) {
$("#tbodyData1").html("");
rs.reverse();
var n=rs.length;
if(rs!=null&&rs.length>0&&rs[0].error!=null){
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'><spring:message code='request_service_failed'/></td><td></td></tr>");
}else{
if(n>0){
$(rs).each(function(i, itemObj) {
var bs="";
if(typeof(itemObj.bsType)!="undefined"&&itemObj.bsType!=null){
bs=(itemObj.bsType).toString();
if(bs.length>18){
bs=bs.substring(0,18);
}
}
var count= itemObj.count;
var preCount = itemObj.preCount;
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:bsClick(\""+itemObj.bsType+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title='"+itemObj.bsType+"'>"+bs+"</td>";
if(preCount<count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-circle-up'/>"+"</td></tr>";
}else if(preCount>count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-circle-down'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+"--"+"</td></tr>";
}
$("#tbodyData1").prepend(tr);
n=n-1;
})
}else{
$("#tbodyData1").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
//终端图-浏览器
echart_5(rs.reverse());
}
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//获取http网站table列表
function websiteList() {
loading();
$.ajax({
url: '${ctx}/dashboard/websiteList',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
beforeSend: function () {
var msg = "OnLoading...";
var trLen = $("#tbodyData2 tr").length;
if(trLen<=0) {
msg = "OnLoading...";
}else {
$("#tbodyData2").html("")
}
var tr = "<tr class='frist rowData'>";
tr += "<td class='list_c1' colspan='3' align='center' style='color:#fff'>"+msg+"</td>";
$("#tbodyData2").prepend(tr);
},
success:function (rs) {
rs.reverse();
$("#tbodyData2").html("");
var n=rs.length;
if(rs!=null&&rs.length>0&&rs[0].error!=null){
$("#tbodyData2").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'><spring:message code='request_service_failed'/></td><td></td></tr>");
}else{
if(n>0){
$(rs).each(function(i, itemObj) {
var web="";
if(typeof(itemObj.websiteService)!="undefined"&&itemObj.websiteService!=null){
web=(itemObj.websiteService).toString();
if(web.length>18){
web=web.substring(0,18);
}
}
var tr = "<tr class='frist rowData select-row-tr' onclick='javascript:webClick(\""+itemObj.websiteServiceId+"\",this);return false;'>";
tr += "<td class='list_c1' style='color:#fff'>"+n+"</td>";
tr += "<td class='list_c2' style='color:#fff' title="+itemObj.websiteService+">"+web+"</td>";
if(itemObj.preCount<itemObj.count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-circle-up'/>"+"</td></tr>";
}else if(itemObj.preCount>itemObj.count){
tr += "<td class='list_c3'>"+"<i class='fa fa-arrow-circle-down'/>"+"</td></tr>";
}else{
tr += "<td class='list_c3'>"+"--"+"</td></tr>";
}
$("#tbodyData2").prepend(tr);
n=n-1;
})
}else{
$("#tbodyData2").prepend("<tr class='frist rowData'><td></td><td style='color:#fff'>No Data</td><td></td></tr>");
}
//网站统计图
echart_4(rs.reverse());
}
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//点击http网站列表-显示域名图
function webClick(websiteServiceId,obj){
//点击行变色
$("#tbodyData2 tr").removeClass("activeColor");
loading();
$(obj).addClass("activeColor");
$.ajax({
url: '${ctx}/dashboard/webTypeChart',
type : "get" ,
data:{"websiteServiceId":websiteServiceId},
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
echart_6(rs);
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
//网站主题
function topicAndDomainList(){
loading();
$.ajax({
url: '${ctx}/dashboard/topicAndDomainList',
type : "get" ,
dataType:"json",
cache:false,async:true,timeout:60000,//超时时间设置,查询接口时间过长超时
success:function (rs) {
//主题域名流量统计图
echart_topic_domain(rs);
closeTip();
},
complete:function(XMLHttpRequest,status){//超时设置
closeTip();
}
});
}
</script>
</body>
</html>

View File

@@ -270,7 +270,7 @@ background:#3d3d3d;
<!-- BEGIN LOGO -->
<div class="page-logo">
<a href="index.html"> <img
src="${pageContext.request.contextPath}/static/layouts/layout/img/logo2.png"
src="${pageContext.request.contextPath}/static/layouts/layout/img/logo2-K.png"
alt="logo" class="logo-default" />
</a>
<!-- <button type="button" onclick="javascript:fullScreen();">a</button> -->

View File

@@ -29,14 +29,41 @@
<link rel="stylesheet" href="${pageContext.request.contextPath}/static/login/assets/css/ace-rtl.min.css" />
<style type="text/css">
/*滚动条样式*/
body::-webkit-scrollbar {/*滚动条整体样式*/
width: 10px; /*高宽分别对应横竖滚动条的尺寸*/
height: 10px;
}
body::-webkit-scrollbar-thumb {/*滚动条里面小方块*/
border-radius: 5px;
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
background: rgba(228,230,233,0.2);
}
body::-webkit-scrollbar-track {/*滚动条里面轨道*/
-webkit-box-shadow: inset 0 0 5px rgba(0,0,0,0.2);
border-radius: 0;
background: rgba(0,0,0,0.1);
}
body::-webkit-scrollbar-corner{
width: 0px;
height: 0px;
background: rgba(255,255,255,0);
}
.row{
margin-left: 0px;
margin-right: 0px;
}
.col-sm-1 ,.col-sm-2 ,.col-sm-3 ,.col-sm-4 ,.col-sm-5 ,.col-sm-6 ,.col-sm-7 ,.col-sm-8,.col-sm-12{
margin: 0px;
padding: 0px;
}
body{
font-family: inherit;
max-height:1080px;
max-width:1920px;
height:864px;
width:1518px;
background-color:rgba(255,255,255,0);
background-image: url("${pageContext.request.contextPath}/static/login/assets/images/login/backimg.png");
background-repeat:no-repeat;
@@ -44,6 +71,7 @@
color: white;
/* width: 1920px;
height: 1080px; */
}
.input-icon input{
outline:0;
@@ -68,7 +96,7 @@
}
.main_right{
background-image: url("${pageContext.request.contextPath}/static/login/assets/images/login/login_06.png");
background-image: url("${pageContext.request.contextPath}/static/login/assets/images/login/login_06-K.png");
background-repeat:no-repeat;
background-size: 100% 100%;
max-height: 501px;
@@ -87,18 +115,15 @@
.foot{
position: absolute;
bottom: 0px;
left: 50%;
left: 45%;
}
#messageBox{
position: absolute;
background-color: #2c3038;
border: 1px solid #545866;
border-radius: 10px;
}
</style>
</head>
<body class="login-layout" style="height: 100%;overflow: hidden">
<div class="main-container" style="height: 100%;">
<body class="login-layout" style="overflow-y: hidden;">
<div class="main-container" style="height: 100%">
<div class="row" style="height: 100%">
<div class="col-sm-12" style="height: 100%">
<div class="col-sm-7" style="height: 100%;padding-top: 6%;">
@@ -109,10 +134,12 @@
</div>
</div>
</div>
<div class="col-sm-4" style="height: 100%;padding-top: 10%;padding-bottom: 5%;">
<div class="col-sm-1" ></div>
<div class="col-sm-3" style="height: 100%;padding-top: 10%;padding-bottom: 5%;">
<div class="main_right" style="height: 100%">
<div class="widget-main" style="height: 100%">
<form style="margin: 160px 50px 0px 50px;" id="loginForm" action="${pageContext.request.contextPath }/login" method="post">
<form style="margin: 160px 50px 0px 50px;" autocomplete="off" id="loginForm" action="${pageContext.request.contextPath }/login" method="post">
<!-- <form style="margin: 160px 50px 0px 50px;" id="loginForm" action="${pageContext.request.contextPath }/dynamicIndex" method="post"> -->
<fieldset>
<label class="block clearfix">
<span class="block input-icon input-icon-left" style="border-bottom:1px solid #565656;">
@@ -120,7 +147,6 @@
<input id="username" type="text" name="username" class="form-control" value="${username}" placeholder="<spring:message code='fill_loginName'/>" style="padding-left: 30px;"/>
</span>
</label>
<label class="block clearfix" style="margin-top: 35px;">
<span class="block input-icon input-icon-left" style="border-bottom:1px solid #565656;">
<i class="icon-lock" style="padding-top: 4px;"></i>
@@ -131,9 +157,14 @@
<div class="space"></div>
<div class="clearfix" style="text-align: center;margin-top: 24%;">
<button type="submit" style="background-color: #4697d7!important;border-radius: 5px;" class="width-40 btn btn-sm btn-primary uppercase">
<button type="submit" style="background-color: #4697d7!important;border-radius: 5px;" class="width-40 btn btn-sm btn-primary">
<spring:message code='login'/>
</button>
<!--
<button type="button" style="background-color: #4697d7!important;border-radius: 5px;" class="width-40 btn btn-sm btn-primary" onclick="fullScreen();">
fullscreen
</button>
-->
</div>
<div class="space-4"></div>
@@ -142,8 +173,8 @@
</div><!-- /widget-main -->
<p class="messageBox" style="margin-top:0px;" align="center">
<div id="messageBox" class="alert alert-danger ${empty message ? 'hide' : ''}">
<label id="loginError" class="error" style="width:410px;text-align: center"><spring:message code="${message}"></spring:message></label>
<div id="messageBox" class="alert alert-danger ${empty message ? 'hide' : ''}" style="width:376px;text-align: center">
<label id="loginError" class="error" style="width:100%;text-align: center"><spring:message code="${message}"></spring:message></label>
</div>
</p>
</div><!-- /widget-body -->
@@ -165,7 +196,6 @@
<script src="${pageContext.request.contextPath}/static/global/plugins/jquery-validation/1.11.0/jquery.validate.method.js" type="text/javascript"></script>
<!-- END CORE PLUGINS --> <script type="text/javascript">
$(document).ready(function(){
$("#loginForm").validate({
rules: {
username: { required: true},
@@ -202,26 +232,29 @@
window.jQuery || document.write("<script src='${pageContext.request.contextPath}/static/login/assets/js/jquery-2.0.3.min.js'>"+"<"+"/script>");
</script>
<!-- dynamic_add -->
<script src="${pageContext.request.contextPath}/static/login/echarts/echarts.min.js"></script>
<script type="text/javascript">
if("ontouchend" in document) document.write("<script src='${pageContext.request.contextPath}/static/login/assets/js/jquery.mobile.custom.min.js'>"+"<"+"/script>");
</script>
<!-- inline scripts related to this page -->
<script type="text/javascript">
var bodyHeight = window.screen.height;
/*var bodyHeight = window.screen.height;*/
var bodyHeight = 864;
$("body").height(bodyHeight+"px");
$("#ntc_chart").height((bodyHeight-200)+"px");
$("#ntc_chart").width($(".main_left").width()+"px");
var lineheight_y = 485;
var lineheight_y2 = 724;
var lineheight_x2 = 761;
var lineheight_x = 346;
lineheight_y = 364;
lineheight_x = 362;
lineheight_y2 = 739;
lineheight_x2 = 767;
console.log(bodyHeight);
if(bodyHeight >800){
lineheight_y = 485;
lineheight_x = 358;
lineheight_y2 = 705;
lineheight_x2 = 834;
lineheight_y = 364;
lineheight_x = 362;
lineheight_y2 = 739;
lineheight_x2 = 767;
}
@@ -233,22 +266,8 @@
/* 出端 */
{
coords: [
[lineheight_x2-35, lineheight_y2+70],
[1000, 968]
],
effect: {
period: 1,
},
lineStyle: {
normal: {
color: '#119dd8'
}
}
},
{
coords: [
[lineheight_x2-35, lineheight_y2+70],
[961, 941]
[lineheight_x2+60, lineheight_y2-70],
[978, 809]
],
effect: {
period: 0.5,
@@ -261,8 +280,21 @@
},
{
coords: [
[lineheight_x2-35, lineheight_y2+70],
[967, 868]
[lineheight_x2+60, lineheight_y2-120],
[970, 777]
],
effect: {
period: 1,
},
lineStyle: {
normal: {
color: '#119dd8'
}
}
},{
coords: [
[lineheight_x2+60, lineheight_y2-140],
[985, 746]
],
effect: {
period: 1,
@@ -275,11 +307,11 @@
},
{
coords: [
[lineheight_x2, lineheight_y2],
[973, 818]
[lineheight_x2-25, lineheight_y2+65],
[878, 986]
],
effect: {
period: 0.4,
period: 0.8,
},
lineStyle: {
normal: {
@@ -289,8 +321,8 @@
},
{
coords: [
[lineheight_x2, lineheight_y2],
[967, 868]
[lineheight_x2-10, lineheight_y2+40],
[904, 968]
],
effect: {
period: 1,
@@ -303,11 +335,11 @@
},
{
coords: [
[lineheight_x2, lineheight_y2],
[lineheight_x2, lineheight_y2+20],
[935, 952]
],
effect: {
period: 0.4,
period: 0.5,
},
lineStyle: {
normal: {
@@ -321,7 +353,7 @@
[967, 868]
],
effect: {
period: 0.5,
period: 0.8,
},
lineStyle: {
normal: {
@@ -331,39 +363,11 @@
},
{
coords: [
[lineheight_x2, lineheight_y2],
[927, 978]
[lineheight_x2+40, lineheight_y2-45],
[984, 824]
],
effect: {
period: 0.5,
},
lineStyle: {
normal: {
color: '#119dd8'
}
}
},
{
coords: [
[lineheight_x2-69, lineheight_y2+100],
[927, 978]
],
effect: {
period: 0.5,
},
lineStyle: {
normal: {
color: '#119dd8'
}
}
},
{
coords: [
[lineheight_x2-75, lineheight_y2+110],
[987, 1100]
],
effect: {
period: 1,
period: 0.8,
},
lineStyle: {
normal: {
@@ -554,5 +558,52 @@
};
lines_Chart_chu.setOption(line_chu_option);
</script>
<script type="text/javascript">
var fullflag = false;
// 全屏代码
function fullScreen() {
if(fullflag){
exitFullScreen();
}else{
fullflag = true;
var elem = document.body;
if (elem.webkitRequestFullScreen) {
elem.webkitRequestFullScreen();
} else if (elem.mozRequestFullScreen) {
elem.mozRequestFullScreen();
} else if (elem.requestFullScreen) {
elem.requestFullscreen();
} else {
//notice.notice_show("浏览器不支持全屏API或已被禁用", null, null, null, true, true);
}
}
}
function exitFullScreen() {
fullflag = false;
var elem = document;
if (elem.webkitCancelFullScreen) {
elem.webkitCancelFullScreen();
} else if (elem.mozCancelFullScreen) {
elem.mozCancelFullScreen();
} else if (elem.cancelFullScreen) {
elem.cancelFullScreen();
} else if (elem.exitFullscreen) {
elem.exitFullscreen();
} else {
//notice.notice_show("浏览器不支持全屏API或已被禁用", null, null, null, true, true);
}
}
//document.addEventListener("fullscreenchange", function( event ) {
// if (document.fullscreenElement) {
// console.log('进入全屏');
// } else {
// console.log('退出全屏');
//}});
//window.onload = function() {
// fullScreen();//直接执行onclick中的函数就行
//}
</script>
</body>
</html>

View File

@@ -12,7 +12,7 @@ q.options.colorIndex,x&&x.colorIndex,w,C,y.colorIndex)}return{color:e,colorIndex
p[b]:{});return y},setTreeValues:function y(b,p){var e=p.before,t=p.idRoot,k=p.mapIdToNode[t],l=p.points[b.i],w=l&&l.options||{},q=0,v=[];n(b,{levelDynamic:b.level-(("boolean"===typeof p.levelIsConstant?p.levelIsConstant:1)?0:k.level),name:D(l&&l.name,""),visible:t===b.id||("boolean"===typeof p.visible?p.visible:!1)});"function"===typeof e&&(b=e(b,p));B(b.children,function(e,l){var t=n({},p);n(t,{index:l,siblings:b.children.length,visible:b.visible});e=y(e,t);v.push(e);e.visible&&(q+=e.val)});b.visible=
0<q||b.visible;e=D(w.value,q);n(b,{children:v,childrenTotal:q,isLeaf:b.visible&&!q,val:e});return b},updateRootId:function(b){var e;w(b)&&(e=w(b.options)?b.options:{},e=D(b.rootNode,e.rootId,""),w(b.userOptions)&&(b.userOptions.rootId=e),b.rootNode=e);return e}}}(E);(function(b,B){var n=b.seriesType,k=b.seriesTypes,w=b.map,e=b.merge,H=b.extend,D=b.noop,t=b.each,x=B.getColor,y=B.getLevelOptions,v=b.grep,p=b.isNumber,F=b.isObject,C=b.isString,z=b.pick,l=b.Series,E=b.stableSort,q=b.Color,L=function(a,
d,c){c=c||this;b.objectEach(a,function(f,g){d.call(c,f,g,a)})},J=b.reduce,I=function(a,d,c){c=c||this;a=d.call(c,a);!1!==a&&I(a,d,c)},K=B.updateRootId;n("treemap","scatter",{showInLegend:!1,marker:!1,colorByPoint:!1,dataLabels:{enabled:!0,defer:!1,verticalAlign:"middle",formatter:function(){return this.point.name||this.point.id},inside:!0},tooltip:{headerFormat:"",pointFormat:"\x3cb\x3e{point.name}\x3c/b\x3e: {point.value}\x3cbr/\x3e"},ignoreHiddenPoint:!0,layoutAlgorithm:"sliceAndDice",layoutStartingDirection:"vertical",
alternateStartingDirection:!1,levelIsConstant:!0,drillUpButton:{position:{align:"right",x:-10,y:10}},borderColor:"#e6e6e6",borderWidth:1,opacity:.15,states:{hover:{borderColor:"#999999",brightness:k.heatmap?0:.1,halo:!1,opacity:.75,shadow:!1}}},{pointArrayMap:["value"],axisTypes:k.heatmap?["xAxis","yAxis","colorAxis"]:["xAxis","yAxis"],directTouch:!0,optionalAxis:"colorAxis",getSymbol:D,parallelArrays:["x","y","value","colorValue"],colorKey:"colorValue",translateColors:k.heatmap&&k.heatmap.prototype.translateColors,
alternateStartingDirection:!1,levelIsConstant:!0,drillUpButton:{position:{align:"right",x:-1,y:305},theme:{fill:'#485263',style:{color:'#e6e6e6'},states:{hover: {fill:'#485263'}}}},borderColor:"#e6e6e6",borderWidth:1,opacity:.15,states:{hover:{borderColor:"#999999",brightness:k.heatmap?0:.1,halo:!1,opacity:.75,shadow:!1}}},{pointArrayMap:["value"],axisTypes:k.heatmap?["xAxis","yAxis","colorAxis"]:["xAxis","yAxis"],directTouch:!0,optionalAxis:"colorAxis",getSymbol:D,parallelArrays:["x","y","value","colorValue"],colorKey:"colorValue",translateColors:k.heatmap&&k.heatmap.prototype.translateColors,
colorAttribs:k.heatmap&&k.heatmap.prototype.colorAttribs,trackerGroups:["group","dataLabelsGroup"],getListOfParents:function(a,d){a=J(a||[],function(c,a,d){a=z(a.parent,"");void 0===c[a]&&(c[a]=[]);c[a].push(d);return c},{});L(a,function(a,f,g){""!==f&&-1===b.inArray(f,d)&&(t(a,function(a){g[""].push(a)}),delete g[f])});return a},getTree:function(){var a=w(this.data,function(a){return a.id}),a=this.getListOfParents(this.data,a);this.nodeMap=[];return this.buildNode("",-1,0,a,null)},init:function(a,
d){l.prototype.init.call(this,a,d);this.options.allowDrillToNode&&b.addEvent(this,"click",this.onClickDrillToNode)},buildNode:function(a,d,c,f,b){var g=this,r=[],h=g.points[d],u=0,G;t(f[a]||[],function(d){G=g.buildNode(g.points[d].id,d,c+1,f,a);u=Math.max(G.height+1,u);r.push(G)});d={id:a,i:d,children:r,height:u,level:c,parent:b,visible:!1};g.nodeMap[d.id]=d;h&&(h.node=d);return d},setTreeValues:function(a){var d=this,c=d.options,f=d.nodeMap[d.rootNode],c="boolean"===typeof c.levelIsConstant?c.levelIsConstant:
!0,b=0,A=[],r,h=d.points[a.i];t(a.children,function(a){a=d.setTreeValues(a);A.push(a);a.ignore||(b+=a.val)});E(A,function(a,c){return a.sortIndex-c.sortIndex});r=z(h&&h.options.value,b);h&&(h.value=r);H(a,{children:A,childrenTotal:b,ignore:!(z(h&&h.visible,!0)&&0<r),isLeaf:a.visible&&!b,levelDynamic:a.level-(c?0:f.level),name:z(h&&h.name,""),sortIndex:z(h&&h.sortIndex,-r),val:r});return a},calculateChildrenAreas:function(a,d){var c=this,b=c.options,g=c.mapOptionsToLevel[a.level+1],A=z(c[g&&g.layoutAlgorithm]&&

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 47 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 56 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 86 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 208 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 49 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 51 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 53 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 322 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 210 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 60 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 74 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

File diff suppressed because it is too large Load Diff

Binary file not shown.

After

Width:  |  Height:  |  Size: 133 KiB

File diff suppressed because it is too large Load Diff