|
|
|
|
@ -0,0 +1,350 @@
|
|
|
|
|
<!DOCTYPE html>
|
|
|
|
|
<html lang="zh" xmlns:shiro="http://www.pollix.at/thymeleaf/shiro" xmlns:th="http://www.thymeleaf.org">
|
|
|
|
|
<head>
|
|
|
|
|
<th:block th:include="include :: header('振动实时曲线')"/>
|
|
|
|
|
<th:block th:include="include :: layout-latest-css"/>
|
|
|
|
|
<th:block th:include="include :: ztree-css"/>
|
|
|
|
|
<th:block th:include="include :: datetimepicker-css"/>
|
|
|
|
|
</head>
|
|
|
|
|
<style>
|
|
|
|
|
.echarts {
|
|
|
|
|
width: 49%;
|
|
|
|
|
display: inline-block;
|
|
|
|
|
}
|
|
|
|
|
</style>
|
|
|
|
|
<body class="gray-bg">
|
|
|
|
|
|
|
|
|
|
<div class="ui-layout-west">
|
|
|
|
|
<div class="box box-main">
|
|
|
|
|
<div class="box-header">
|
|
|
|
|
<div class="box-title">
|
|
|
|
|
<i class="fa icon-grid"></i> 测控点信息
|
|
|
|
|
</div>
|
|
|
|
|
<div class="box-tools pull-right">
|
|
|
|
|
<a class="btn btn-box-tool" href="#" onclick="dept()" title="测控点信息" type="button"><i
|
|
|
|
|
class="fa fa-edit"></i></a>
|
|
|
|
|
<button class="btn btn-box-tool" id="btnExpand" style="display:none;" title="展开" type="button"><i
|
|
|
|
|
class="fa fa-chevron-up"></i></button>
|
|
|
|
|
<button class="btn btn-box-tool" id="btnCollapse" title="折叠" type="button"><i
|
|
|
|
|
class="fa fa-chevron-down"></i>
|
|
|
|
|
</button>
|
|
|
|
|
<button class="btn btn-box-tool" id="btnRefresh" title="刷新" type="button"><i
|
|
|
|
|
class="fa fa-refresh"></i></button>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="ui-layout-content">
|
|
|
|
|
<div class="ztree" id="tree"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<div class="ui-layout-center">
|
|
|
|
|
<div class="container-div">
|
|
|
|
|
<div class="row">
|
|
|
|
|
<div class="col-sm-12 search-collapse">
|
|
|
|
|
<form id="formId">
|
|
|
|
|
<input id="monitorId" name="monitorId" type="hidden">
|
|
|
|
|
</form>
|
|
|
|
|
</div>
|
|
|
|
|
<div class="ibox-content" style="margin-top: 0px;margin-right: 0px;">
|
|
|
|
|
<div class="echarts" id="echarts-line-chart" style="height: 80vh;width: 100%"></div>
|
|
|
|
|
<div class="echarts" id="echarts-line-chart1" style="height: 40vh"></div>
|
|
|
|
|
<div class="echarts" id="echarts-line-chart2" style="height: 40vh"></div>
|
|
|
|
|
<div class="echarts" id="echarts-line-chart3" style="height: 40vh"></div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
</div>
|
|
|
|
|
|
|
|
|
|
<th:block th:include="include :: footer"/>
|
|
|
|
|
<th:block th:include="include :: layout-latest-js"/>
|
|
|
|
|
<th:block th:include="include :: ztree-js"/>
|
|
|
|
|
<th:block th:include="include :: echarts-js"/>
|
|
|
|
|
<th:block th:include="include :: datetimepicker-js"/>
|
|
|
|
|
<script src="../../../js/common/echarts.min.js"></script>
|
|
|
|
|
<script th:inline="javascript">
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
var prefix = ctx + "report/temandhumreport"
|
|
|
|
|
var timedata = [];
|
|
|
|
|
var tempreturedata = [];
|
|
|
|
|
var humdata = [];
|
|
|
|
|
var timer = null; // 定时器变量
|
|
|
|
|
layui.use('laydate', function () {
|
|
|
|
|
var laydate = layui.laydate;
|
|
|
|
|
|
|
|
|
|
laydate.render({
|
|
|
|
|
elem: '#laydate-demo-3',
|
|
|
|
|
type: 'datetime',
|
|
|
|
|
trigger: 'click'
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
laydate.render({
|
|
|
|
|
elem: '#laydate-demo-4',
|
|
|
|
|
type: 'datetime',
|
|
|
|
|
trigger: 'click'
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
$(function () {
|
|
|
|
|
|
|
|
|
|
var panehHidden = false;
|
|
|
|
|
// var time=getNowFormatDate();
|
|
|
|
|
// console.log(time);
|
|
|
|
|
|
|
|
|
|
getdata(null);
|
|
|
|
|
|
|
|
|
|
if ($(this).width() < 769) {
|
|
|
|
|
panehHidden = true;
|
|
|
|
|
}
|
|
|
|
|
$('body').layout({initClosed: panehHidden, west__size: 185});
|
|
|
|
|
// initTable();
|
|
|
|
|
queryUserList();
|
|
|
|
|
queryDeptTree();
|
|
|
|
|
|
|
|
|
|
// 启动定时器,每10秒调用一次getdata
|
|
|
|
|
startTimer();
|
|
|
|
|
|
|
|
|
|
// 页面卸载时清除定时器
|
|
|
|
|
$(window).on('beforeunload', function() {
|
|
|
|
|
clearTimer();
|
|
|
|
|
});
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
function queryUserList() {
|
|
|
|
|
var options = {
|
|
|
|
|
url: prefix + "/list",
|
|
|
|
|
modalName: "压缩空气数据曲线",
|
|
|
|
|
columns: [{
|
|
|
|
|
checkbox: true
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'objid',
|
|
|
|
|
title: '自增标识',
|
|
|
|
|
visible: false
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'monitorId',
|
|
|
|
|
title: '测控点编号'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'between',
|
|
|
|
|
title: '采集时间'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'temmaxNumber',
|
|
|
|
|
title: '温度最大值'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'temminNumber',
|
|
|
|
|
title: '温度最小值'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'temavgNumber',
|
|
|
|
|
title: '温度平均值'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'hummaxNumber',
|
|
|
|
|
title: '湿度最大值'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'humminNumber',
|
|
|
|
|
title: '湿度最小值'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
field: 'humavgNumber',
|
|
|
|
|
title: '湿度平均值'
|
|
|
|
|
},
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
]
|
|
|
|
|
};
|
|
|
|
|
$.table.init(options);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function queryDeptTree() {
|
|
|
|
|
var url = ctx + "system/Monitor/treeData?monitorType=20";
|
|
|
|
|
var options = {
|
|
|
|
|
url: url,
|
|
|
|
|
expandLevel: 1,
|
|
|
|
|
onClick: zOnClick,
|
|
|
|
|
|
|
|
|
|
};
|
|
|
|
|
$.tree.init(options);
|
|
|
|
|
|
|
|
|
|
function zOnClick(event, treeId, treeNode) {
|
|
|
|
|
$("#monitorId").val(treeNode.id);
|
|
|
|
|
/*alert(treeNode.id)*/
|
|
|
|
|
$.table.search();
|
|
|
|
|
getdata(treeNode.id);
|
|
|
|
|
// 重新启动定时器
|
|
|
|
|
clearTimer();
|
|
|
|
|
startTimer();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$('#btnExpand').click(function () {
|
|
|
|
|
$._tree.expandAll(true);
|
|
|
|
|
$(this).hide();
|
|
|
|
|
$('#btnCollapse').show();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#btnCollapse').click(function () {
|
|
|
|
|
$._tree.expandAll(false);
|
|
|
|
|
$(this).hide();
|
|
|
|
|
$('#btnExpand').show();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
$('#btnRefresh').click(function () {
|
|
|
|
|
queryDeptTree();
|
|
|
|
|
});
|
|
|
|
|
|
|
|
|
|
/* 社区信息 */
|
|
|
|
|
function dept() {
|
|
|
|
|
var url = ctx + "system/Monitor";
|
|
|
|
|
$.modal.openTab("社区信息", url);
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function getdata(monitorId) {
|
|
|
|
|
// 如果monitorId为空,尝试从表单获取
|
|
|
|
|
if (!monitorId) {
|
|
|
|
|
monitorId = $("#monitorId").val();
|
|
|
|
|
}
|
|
|
|
|
var formData = new FormData();
|
|
|
|
|
formData.append("sensorId", monitorId);
|
|
|
|
|
// formData.append("params[beginCollectTime]", $("#laydate-demo-3").val());
|
|
|
|
|
// formData.append("params[endCollectTime]", $("#laydate-demo-4").val());
|
|
|
|
|
$.ajax({
|
|
|
|
|
url: ctx + "system/TVibrationsensorData/realTimeCurveList",
|
|
|
|
|
type: 'post',
|
|
|
|
|
cache: false,
|
|
|
|
|
data: formData,
|
|
|
|
|
processData: false,
|
|
|
|
|
contentType: false,
|
|
|
|
|
dataType: "json",
|
|
|
|
|
success: function (result) {
|
|
|
|
|
design(result.data);
|
|
|
|
|
}
|
|
|
|
|
});
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 启动定时器
|
|
|
|
|
function startTimer() {
|
|
|
|
|
// 清除已存在的定时器
|
|
|
|
|
clearTimer();
|
|
|
|
|
// 每10秒调用一次getdata
|
|
|
|
|
timer = setInterval(function() {
|
|
|
|
|
var monitorId = $("#monitorId").val();
|
|
|
|
|
getdata(monitorId);
|
|
|
|
|
}, 10000); // 10000毫秒 = 10秒
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// 清除定时器
|
|
|
|
|
function clearTimer() {
|
|
|
|
|
if (timer) {
|
|
|
|
|
clearInterval(timer);
|
|
|
|
|
timer = null;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
function design(e) {
|
|
|
|
|
console.log(e)
|
|
|
|
|
let lineChart = echarts.init(document.getElementById("echarts-line-chart"));
|
|
|
|
|
lineChart.setOption({
|
|
|
|
|
title: {
|
|
|
|
|
text: '温度、速度、位移数据曲线',
|
|
|
|
|
left: 'center',
|
|
|
|
|
top: 20
|
|
|
|
|
},
|
|
|
|
|
tooltip: {
|
|
|
|
|
trigger: 'axis',
|
|
|
|
|
axisPointer: {
|
|
|
|
|
animation: false
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
grid: {
|
|
|
|
|
right: 100,
|
|
|
|
|
left: 80
|
|
|
|
|
},
|
|
|
|
|
legend: {
|
|
|
|
|
x: 'center'
|
|
|
|
|
},
|
|
|
|
|
dataZoom: [
|
|
|
|
|
{
|
|
|
|
|
show: false,
|
|
|
|
|
realtime: true,
|
|
|
|
|
start: 0,
|
|
|
|
|
end: 100,
|
|
|
|
|
xAxisIndex: 0
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
type: 'inside',
|
|
|
|
|
realtime: true,
|
|
|
|
|
start: 30,
|
|
|
|
|
end: 70,
|
|
|
|
|
xAxisIndex: 0
|
|
|
|
|
}
|
|
|
|
|
],
|
|
|
|
|
xAxis: {
|
|
|
|
|
type: 'category',
|
|
|
|
|
data: e.map(v => v.collectTime)
|
|
|
|
|
},
|
|
|
|
|
yAxis: [
|
|
|
|
|
{
|
|
|
|
|
type: 'value',
|
|
|
|
|
name: '℃',
|
|
|
|
|
axisLine: {
|
|
|
|
|
show: true
|
|
|
|
|
}
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'mm/s',
|
|
|
|
|
type: 'value',
|
|
|
|
|
axisLine: {
|
|
|
|
|
show: true
|
|
|
|
|
},
|
|
|
|
|
offset: 25,
|
|
|
|
|
position: 'left'
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: 'um',
|
|
|
|
|
type: 'value',
|
|
|
|
|
axisLine: {
|
|
|
|
|
show: true
|
|
|
|
|
},
|
|
|
|
|
offset: 50
|
|
|
|
|
},
|
|
|
|
|
],
|
|
|
|
|
series: [
|
|
|
|
|
{
|
|
|
|
|
name: '温度',
|
|
|
|
|
data: e.map(v => v.temperature),
|
|
|
|
|
type: 'line',
|
|
|
|
|
yAxisIndex: 0
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '速度',
|
|
|
|
|
data: e.map(v => v.speed),
|
|
|
|
|
type: 'line',
|
|
|
|
|
yAxisIndex: 1
|
|
|
|
|
},
|
|
|
|
|
{
|
|
|
|
|
name: '位移',
|
|
|
|
|
data: e.map(v => v.displacement),
|
|
|
|
|
type: 'line',
|
|
|
|
|
yAxisIndex: 2
|
|
|
|
|
},
|
|
|
|
|
// {
|
|
|
|
|
// name: '加速度',
|
|
|
|
|
// data: e.map(v => v.acceleration),
|
|
|
|
|
// type: 'line',
|
|
|
|
|
// yAxisIndex: 3
|
|
|
|
|
// },
|
|
|
|
|
]
|
|
|
|
|
});
|
|
|
|
|
$(window).resize(lineChart.resize);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
</script>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|