<%@page contentType="text/html"%>
|
<%@page pageEncoding="UTF-8"%>
|
<!DOCTYPE html>
|
<html lang="zh-cmn-Hans">
|
|
<head>
|
|
<meta charset="utf-8">
|
<meta http-equiv="X-UA-Compatible" content="IE=edge">
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
<meta name="description" content="">
|
<meta name="author" content="">
|
|
<title>大屏系统后台任务数据</title>
|
|
<!-- Bootstrap Core CSS -->
|
<link rel="stylesheet" type="text/css" href="../vendor/bootstrap/css/bootstrap.min.css">
|
|
<!-- MetisMenu CSS -->
|
<link href="../vendor/metisMenu/metisMenu.min.css" rel="stylesheet">
|
|
<!-- Custom CSS -->
|
<link href="../dist/css/sb-admin-2.css" rel="stylesheet">
|
|
<!-- Morris Charts CSS -->
|
<link href="../vendor/morrisjs/morris.css" rel="stylesheet">
|
|
<!-- Custom Fonts -->
|
<link rel="stylesheet" type="text/css" href="../vendor/font-awesome/css/font-awesome.min.css">
|
|
<!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries -->
|
<!-- WARNING: Respond.js doesn't work if you view the page via file:// -->
|
<!--[if lt IE 9]>
|
<script src="https://oss.maxcdn.com/libs/html5shiv/3.7.0/html5shiv.js"></script>
|
<script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script>
|
<![endif]-->
|
|
<script src="../echarts/echarts.common.min.js"></script>
|
|
|
<style>
|
#htable{
|
text-align: center;
|
width:100%;
|
table-layout: fixed
|
}
|
#htable td{
|
height: 83px;
|
background: url('/pages/tdbg.png')no-repeat center top;
|
}
|
|
.value {
|
display: inline-block;
|
position: relative;
|
left: -18px;
|
top: -18px;
|
|
|
}
|
|
.sensor{
|
display: inline-block;
|
position: relative;
|
left: 6px;
|
top: 10px;
|
font-weight:bold;
|
|
}
|
|
|
|
</style>
|
|
|
</head>
|
|
<body>
|
|
<div id="wrapper">
|
|
<!-- Navigation -->
|
<nav class="navbar navbar-default navbar-static-top" role="navigation" style="margin-bottom: 0">
|
<div class="navbar-header">
|
<button type="button" class="navbar-toggle" data-toggle="collapse" data-target=".navbar-collapse">
|
<span class="sr-only">Toggle navigation</span>
|
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
<span class="icon-bar"></span>
|
</button>
|
<a class="navbar-brand" href="/mgr">大屏系统后台任务数据</a>
|
</div>
|
<!-- /.navbar-header -->
|
|
<ul class="nav navbar-top-links navbar-right">
|
<li class="dropdown">
|
<a class="dropdown-toggle" data-toggle="dropdown" href="#">
|
欢迎您 ${username} <i class="fa fa-user fa-fw"></i> <i class="fa fa-caret-down"></i>
|
</a>
|
<ul class="dropdown-menu dropdown-user">
|
<li><a id="logouts"><i class="fa fa-sign-out fa-fw"></i> 注销</a></li>
|
</ul>
|
<!-- /.dropdown-user -->
|
</li>
|
<!-- /.dropdown -->
|
</ul>
|
<!-- /.navbar-top-links -->
|
|
<div class="navbar-default sidebar" role="navigation">
|
<div class="sidebar-nav navbar-collapse">
|
<ul class="nav" id="side-menu">
|
<li class="sidebar-search">
|
<div class="input-group custom-search-form">
|
<input type="text" class="form-control" placeholder="Search...">
|
<span class="input-group-btn">
|
<button class="btn btn-default" type="button">
|
<i class="fa fa-search"></i>
|
</button>
|
</span>
|
</div>
|
<!-- /input-group -->
|
</li>
|
|
<li>
|
<a href="/mgr"><i class="fa fa-home fa-fw"></i> 首页</a>
|
</li>
|
|
<li>
|
<a href="index.html"><i class="fa fa-gear fa-fw"></i> 系统管理<span class="fa arrow"></span></a>
|
<ul class="nav nav-second-level">
|
<li>
|
<a href="/equ">设备管理</a>
|
</li>
|
<li>
|
<a href="/monitorpoint">监测点管理 </a>
|
</li>
|
<li>
|
</li>
|
</ul>
|
</li>
|
|
|
<li>
|
<a href="index.html"><i class="fa fa-search fa-fw"></i> 数据查询<span class="fa arrow"></span></a>
|
<ul class="nav nav-second-level">
|
<li>
|
<a href="/pointdata">监测点数据</a>
|
</li>
|
<li>
|
<a href="/history">历史数据</a>
|
</li>
|
<li>
|
</li>
|
</ul>
|
</li>
|
|
<li>
|
<a href="index.html"><i class="fa fa-bar-chart-o fa-fw"></i> 报表系统<span class="fa arrow"></span></a>
|
<ul class="nav nav-second-level">
|
<li>
|
<a href="/sensor">传感器</a>
|
</li>
|
<li>
|
</li>
|
</ul>
|
</li>
|
</ul>
|
<!-- /.nav-second-level -->
|
|
</li>
|
|
</ul>
|
</div>
|
<!-- /.sidebar-collapse -->
|
</div>
|
<!-- /.navbar-static-side -->
|
</nav>
|
|
<div id="page-wrapper">
|
<div class="row">
|
<div class="col-lg-12">
|
<h1 class="page-header">首页</h1>
|
</div>
|
<!-- /.col-lg-12 -->
|
</div>
|
<!-- /.row -->
|
<div class="row">
|
|
<div class="col-lg-8" >
|
|
<div >
|
<table id="htable">
|
<tr>
|
<td ><span id="n0" class="sensor"></span><span class="value" id="v0" style="left:-21px"></span></td>
|
<td ><span id="n1" class="sensor"></span><span class="value" id="v1"></span></td>
|
<td ><span id="n2" class="sensor"></span><span class="value" id="v2" style="left:-12px"></span></td>
|
<td ><span id="n3" class="sensor"></span><span class="value" id="v3"></span></td>
|
<td ><span id="n4" class="sensor"></span><span class="value" id="v4" style="left:-12px" ></span></td>
|
<td ><span id="n5" class="sensor"></span><span class="value" id="v5" style="left:-15px" ></span></td>
|
</tr>
|
</table>
|
</div>
|
<br><br>
|
<div>
|
<i class="fa fa-map-marker fa-fw"></i>取样监测点 <a href ="javascript:void(0)" id="achange" >换一批</a>
|
<small style="display: inline-block;position: relative;top: 5px" class="pull-right">数值单位:mg/m3(PM2.5、PM10 为 μg/m3)</small>
|
</div>
|
<br>
|
|
<div class="table-responsive">
|
<table class="table table-bordered table-hover table-striped">
|
<thead>
|
<tr>
|
<th>监测点</th>
|
<th>PM 2.5</th>
|
<th>PM 10</th>
|
<th>CO</th>
|
<th>NO2</th>
|
<th>O3</th>
|
<th>SO2</th>
|
</tr>
|
</thead>
|
<tbody id="randpoint"></tbody>
|
</table>
|
</div>
|
<div>
|
<a href="/pointdata" class="btn btn-default btn-block">查看更多监测点<i class="fa fa-angle-double-right fa-fw"></i></a>
|
</div>
|
</div>
|
|
<div class="col-lg-4 ">
|
<div id="equtotal" style="position: absolute;top: 180px;right: 19px"></div>
|
<div style="margin-top:130px;height: 400px" id="onandoff"></div>
|
</div>
|
|
</div>
|
<br><br><br>
|
<div class="row">
|
<div class="col-lg-6">
|
<div style="height:500px" id="top10"></div>
|
</div>
|
<div class="col-lg-6">
|
<div style="height:500px" id="last10"></div>
|
</div>
|
</div>
|
|
<br><br><br><br><br><br>
|
<div class="row">
|
<div class="col-lg-12">
|
<div class="panel panel-default">
|
<div class="panel-heading">
|
<i class="fa fa-arrow-up fa-fw"></i>监测点空气质量前100
|
</div>
|
<!-- /.panel-heading -->
|
<div class="panel-body">
|
|
<div style="margin-top: 10px" class="table-responsive">
|
<table class="table table-bordered table-hover table-striped">
|
<thead>
|
<tr>
|
<th>排名</th>
|
<th>监测点</th>
|
<th>PM 2.5</th>
|
<th>PM 10</th>
|
<th>CO</th>
|
<th>NO2</th>
|
<th>O3</th>
|
<th>SO2</th>
|
</tr>
|
</thead>
|
<tbody id="toppoint"></tbody>
|
</table>
|
</div>
|
|
|
</div>
|
<!-- /.panel-body -->
|
</div>
|
</div>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<!-- jQuery -->
|
<script src="../vendor/jquery/jquery.min.js"></script>
|
|
|
<!-- Bootstrap Core JavaScript -->
|
<script src="../vendor/bootstrap/js/bootstrap.min.js"></script>
|
|
<!-- Metis Menu Plugin JavaScript -->
|
<script src="../vendor/metisMenu/metisMenu.min.js"></script>
|
|
<!-- Morris Charts JavaScript -->
|
<script src="../vendor/raphael/raphael.min.js"></script>
|
<script src="../vendor/morrisjs/morris.min.js"></script>
|
|
|
<!-- Custom Theme JavaScript -->
|
<script src="../dist/js/sb-admin-2.js"></script>
|
|
<script>
|
|
|
|
|
$(function(){
|
|
function randpoint(){
|
$.ajax({
|
type:'GET',
|
url:'/randpoint',
|
contentType: "application/json;charset=UTF-8",
|
dataType:'json',
|
async:true,
|
cache:false,
|
success:function(data){
|
$("#randpoint").html("");
|
|
var points=data.data;
|
var avg = data.avg;
|
|
var sensor=new Array('PM2.5','PM10','CO','NO2','O3','SO2');
|
|
for(var i=0;i<avg.length;i++){
|
var ids="v"+i;
|
$("#"+ids).html(avg[i]);
|
var idns="n"+i;
|
$("#"+idns).html(sensor[i]);
|
}
|
|
for(var i=0;i<points.length;i++){
|
var name=points[i].name;
|
var pm25=points[i].pm25;
|
var pm10=points[i].pm10;
|
var co=points[i].co;
|
var no2=points[i].no2;
|
var o3=points[i].o3;
|
var so2=points[i].so2;
|
$("#randpoint").append("<tr> <td>"+name+"</td> <td>"+pm25+"</td> <td>"+pm10+"</td> <td>"+co+"</td> <td>"+no2+"</td> <td>"+o3+"</td><td>"+so2+"</td></tr>");
|
}
|
}
|
});
|
}
|
|
|
randpoint();
|
|
|
$("#achange").bind("click",function(){
|
randpoint();
|
})
|
|
|
//在线离线比
|
var pie = echarts.init(document.getElementById('onandoff'));
|
|
pieoption = {
|
tooltip: {
|
trigger: 'item',
|
formatter: "{a} <br/>{b}: {c} ({d}%)"
|
},
|
color:['green', 'gray'],
|
legend: {
|
orient: 'vertical',
|
x: 'right',
|
data:['在线设备','离线设备']
|
},
|
series: [
|
{
|
name:"",
|
type:'pie',
|
radius: ['50%', '70%'],
|
avoidLabelOverlap: false,
|
label: {
|
normal: {
|
show: false,
|
position: 'center'
|
},
|
emphasis: {
|
show: true,
|
textStyle: {
|
fontSize: '30',
|
fontWeight: 'bold'
|
}
|
}
|
},
|
labelLine: {
|
normal: {
|
show: false
|
}
|
},
|
data:[
|
{value:0, name:'在线设备'},
|
{value:0, name:'离线设备'}
|
]
|
}
|
]
|
};
|
|
|
$.ajax({
|
type:'GET',
|
url:'/screen/equcount',
|
data:{area:""},
|
dataType:'json',
|
async:true,
|
cache:false,
|
success:function(data){
|
var o=JSON.parse(data.data);
|
var on=o.ok+o.warn;
|
var off=o.offline;
|
var total=on+off;
|
|
pieoption.series[0].name='设备总数: '+total;
|
pieoption.series[0].data[0].value=on;
|
pieoption.series[0].data[1].value=off;
|
pie.setOption(pieoption);
|
|
$("#equtotal").html("");
|
$("#equtotal").html("<strong>设备总数:"+total+"台</strong>");
|
|
|
}
|
});
|
|
|
|
|
// 基于准备好的dom,初始化echarts实例
|
var top = echarts.init(document.getElementById('top10'));
|
var last = echarts.init(document.getElementById('last10'));
|
|
|
// 指定图表的配置项和数据
|
topoption ={
|
color: ['#3398DB'],
|
title: {
|
text: '监测点即时空气质量前十名',
|
subtext: '据PM2.5排序',
|
x:"center"
|
},
|
tooltip : {
|
trigger: 'axis',
|
axisPointer : { // 坐标轴指示器,坐标轴触发有效
|
type : 'line' // 默认为直线,可选为:'line' | 'shadow'
|
}
|
},
|
grid: {
|
left: '3%',
|
right: '4%',
|
bottom: '3%',
|
containLabel: true
|
},
|
xAxis : [
|
{
|
type : 'category',
|
data : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed'],
|
axisTick: {
|
alignWithLabel: true
|
}
|
}
|
],
|
yAxis : [
|
{
|
type : 'value',
|
axisLabel: {
|
formatter:'{value}'+'ug/m3'
|
}
|
}
|
],
|
series : [
|
{
|
name:'PM2.5值',
|
type:'bar',
|
barWidth: '50%',
|
data:[10, 52, 200, 334, 390, 330, 220,200,100,600]
|
}
|
]
|
};
|
|
|
// 指定图表的配置项和数据
|
lastoption = {
|
color: ['#3398DB'],
|
title: {
|
text: '监测点即时空气质量后十名',
|
subtext: '据PM2.5排序',
|
x:"center"
|
},
|
tooltip : {
|
trigger: 'axis',
|
axisPointer : {
|
type : 'line'
|
}
|
},
|
grid: {
|
left: '3%',
|
right: '4%',
|
bottom: '3%',
|
containLabel: true
|
},
|
xAxis : [
|
{
|
type : 'category',
|
data : ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun','Mon', 'Tue', 'Wed'],
|
axisTick: {
|
alignWithLabel: true
|
}
|
}
|
],
|
yAxis : [
|
{
|
type : 'value',
|
axisLabel: {
|
formatter:'{value}'+'ug/m3'
|
}
|
}
|
],
|
series : [
|
{
|
name:'PM2.5值',
|
type:'bar',
|
barWidth: '50%',
|
data:[10, 52, 200, 334, 390, 330, 220,200,100,600]
|
}
|
]
|
};
|
|
|
|
$.ajax({
|
type:'GET',
|
url:'/top100',
|
contentType: "application/json;charset=UTF-8",
|
dataType:'json',
|
async:true,
|
cache:false,
|
success:function(data){
|
var top100= data.top100;
|
var top10= data.top10;
|
var last10= data.last10;
|
|
var j= JSON.parse(data);
|
|
var top100=j.top100;
|
var top10=j.top10;
|
var last10=j.last10;
|
|
var top10name= new Array();
|
var top10pm25= new Array();
|
|
for(var i=0;i<top10.length;i++){
|
var name= top10[i].name;
|
var pm25= top10[i].pm25;
|
|
top10name.push(name)
|
top10pm25.push(pm25)
|
}
|
|
topoption.xAxis[0].data=top10name;
|
topoption.series[0].data=top10pm25;
|
|
|
var last10name= new Array();
|
var last10pm25= new Array();
|
|
for(var i=0;i<top10.length;i++){
|
var name= last10[i].name;
|
var pm25= last10[i].pm25;
|
|
last10name.push(name)
|
last10pm25.push(pm25)
|
}
|
|
lastoption.xAxis[0].data=last10name;
|
lastoption.series[0].data=last10pm25;
|
|
$("#toppoint").html("");
|
|
for(var i=0;i<top100.length;i++){
|
var name=top100[i].name
|
var pm25=top100[i].pm25
|
var pm10=top100[i].pm10
|
var co=top100[i].co
|
var no2=top100[i].no2
|
var o3=top100[i].o3
|
var so2=top100[i].so2
|
|
var n=i+1;
|
|
$("#toppoint").append("<tr><td>"+n+"</td> <td>"+name+"</td> <td>"+pm25+"</td> <td>"+pm10+"</td> <td>"+co+"</td> <td>"+no2+"</td> <td>"+o3+"</td><td>"+so2+"</td></tr>");
|
|
}
|
|
|
top.setOption(topoption);
|
last.setOption(lastoption);
|
|
}
|
});
|
|
|
|
|
|
|
$("#logouts").bind("click",function () {
|
$.ajax({
|
type:'GET',
|
url:'/login/logout',
|
async:true,
|
cache:false,
|
success:function(data){
|
if(data=="true"){
|
window.location.href='/login'
|
}
|
}
|
});
|
})
|
|
|
|
|
|
})
|
</script>
|
|
</body>
|
|
</html>
|