You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
466 lines
17 KiB
HTML
466 lines
17 KiB
HTML
<!DOCTYPE html>
|
|
<html lang="zh" xmlns:th="http://www.thymeleaf.org">
|
|
<head>
|
|
<th:block th:include="include :: header('设备智能驾驶舱')"/>
|
|
</head>
|
|
<body class="white-bg">
|
|
<th:block th:include="include :: datetimepicker-css"/>
|
|
<th:block th:include="include :: datetimepicker-js"/>
|
|
<link href="../../board/board.css" rel="stylesheet">
|
|
<script src="../../js/echarts.js"></script>
|
|
<script src="../../js/scrollTable.js"></script>
|
|
<script src="../../js/tableAnimation.js"></script>
|
|
<script>
|
|
|
|
let pageSize = 10
|
|
let pageNum = 1
|
|
let pagesNum = 0
|
|
let status = {
|
|
rightInfoS: false,
|
|
bottomBtn1S: false,
|
|
bottomBtn2S: false,
|
|
bottomBtn3S: false,
|
|
}
|
|
const routerSkip = (e) => {
|
|
try {
|
|
$.modal.openTab('设备智能驾驶舱', ctx + e);
|
|
} catch (val) {
|
|
location.href = ctx + e
|
|
}
|
|
}
|
|
|
|
const showModal = () => {
|
|
$("#eqModal").show()
|
|
}
|
|
const hideModal1 = () => {
|
|
$("#eqModal").hide()
|
|
}
|
|
|
|
const hideModal = (e, el) => {
|
|
$("#centerModal1").append(`<iframe src="monitoring1" frameborder="0" id="monitoringIframe1" style="width: 100%;height: 100%"></iframe>`)
|
|
setTimeout(() => {
|
|
document.getElementById("monitoringIframe1").contentWindow.login()
|
|
}, 1000)
|
|
status[`bottomBtn${e}S`] = false
|
|
$($(el)[0].parentNode).hide()
|
|
$("#bottomBtn" + e).css({
|
|
backgroundImage: status[`bottomBtn${e}S`] ? 'url("../../board/img/btn1bg.png")' : 'url("../../board/img/btnbg.png")'
|
|
})
|
|
if (e === 3) {
|
|
document.getElementById("monitoringIframe").contentWindow.edit()
|
|
setTimeout(() => {
|
|
$("#monitoring").empty()
|
|
}, 100)
|
|
}
|
|
}
|
|
const toggleInfo = () => {
|
|
$("#rightInfo").toggle()
|
|
status.rightInfoS = !status.rightInfoS
|
|
$("#toggleInfoBtn").css({
|
|
backgroundImage: status.rightInfoS ? 'url("../../board/img/click.png")' : 'url("../../board/img/click1.png")'
|
|
})
|
|
}
|
|
const bottomBtnInfo = (e, el) => {
|
|
$('#centerModal1').empty()
|
|
if (e === 3) {
|
|
$("#monitoring").append(`<iframe src="monitoring" frameborder="0" id="monitoringIframe" style="width: 100%;height: 100%"></iframe>`)
|
|
setTimeout(() => {
|
|
document.getElementById("monitoringIframe").contentWindow.login()
|
|
}, 1000)
|
|
}
|
|
$("#modal" + e).show()
|
|
switch (e) {
|
|
case 1:
|
|
status.bottomBtn1S = !status.bottomBtn1S
|
|
$(el).css({
|
|
backgroundImage: status.bottomBtn1S ? 'url("../../board/img/btn1bg.png")' : 'url("../../board/img/btnbg.png")'
|
|
})
|
|
break
|
|
|
|
case 2:
|
|
status.bottomBtn2S = !status.bottomBtn2S
|
|
$(el).css({
|
|
backgroundImage: status.bottomBtn2S ? 'url("../../board/img/btn1bg.png")' : 'url("../../board/img/btnbg.png")'
|
|
})
|
|
pageSize = 10
|
|
pageNum = 1
|
|
pagesNum = 0
|
|
$("#chart2").empty()
|
|
break
|
|
|
|
case 3:
|
|
status.bottomBtn3S = !status.bottomBtn3S
|
|
$(el).css({
|
|
backgroundImage: status.bottomBtn3S ? 'url("../../board/img/btn1bg.png")' : 'url("../../board/img/btnbg.png")'
|
|
})
|
|
break
|
|
|
|
}
|
|
}
|
|
const Modal1Search = () => {
|
|
let params = {}
|
|
if ($('#startTime1').val()) {
|
|
params.beginTime = $.common.dateFormat(new Date($('#startTime1').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
if ($('#endTime1').val()) {
|
|
params.endTime = $.common.dateFormat(new Date($('#startTime1').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
params.timeInterval=$('#timeInterval1').val();
|
|
$.get(ctx + 'broad/home/queryParamListB', params, (e) => {
|
|
if (e.data.length > 0) {
|
|
$('#chart1').remove()
|
|
$("#modal1 .centerModal .centerModalInfo").append('<div class="chart1" id="chart1"></div>')
|
|
chart = null
|
|
chart1(document.getElementById('chart1'), data)
|
|
} else {
|
|
$("#chart1").html(`<div style="width: 100%;height: 100%;text-align: center;line-height:35vw;color: #fff ">暂无数据</div>`)
|
|
}
|
|
})
|
|
}
|
|
const Modal2SearchReq = async (params) => {
|
|
await $.get(ctx + 'broad/home/queryParamDataB', {...params,pageSize,pageNum}, (e) => {
|
|
pagesNum = Math.ceil(e.total / 10)
|
|
let data = e.rows
|
|
$("#chart2").empty()
|
|
tableHeadChangeArr = [
|
|
"采集时间",
|
|
"一体机B转速",
|
|
"一体机B电流",
|
|
"一体机B机头压力",
|
|
"一体机B机头温度",
|
|
"一体机B切刀电流",
|
|
"一体机B切刀转速"
|
|
]
|
|
if (data.length > 0) {
|
|
dynamicTable({
|
|
el: '#chart2',
|
|
rowNum: 10,
|
|
timeout: 5,
|
|
header: ['序号', '<input type="checkbox" checked onchange="tableHeadChange(\'采集时间\',this)"/> 采集时间',
|
|
'<input type="checkbox" checked onchange="tableHeadChange(\'一体机B转速\',this)"/> 一体机B转速',
|
|
'<input type="checkbox" checked onchange="tableHeadChange(\'一体机B电流\',this)"/> 一体机B电流',
|
|
'<input type="checkbox" checked onchange="tableHeadChange(\'一体机B机头压力\',this)"/> 一体机B机头压力',
|
|
'<input type="checkbox" checked onchange="tableHeadChange(\'一体机B机头温度\',this)"/> 一体机B机头温度',
|
|
'<input type="checkbox" checked onchange="tableHeadChange(\'一体机B切刀电流\',this)"/> 一体机B切刀电流',
|
|
'<input type="checkbox" checked onchange="tableHeadChange(\'一体机B切刀转速\',this)"/> 一体机B切刀转速'],
|
|
data: data.map((val, i) => [i+1, val.recordTime, val['speedA'],
|
|
val['currentA'], val['pressureHead'], val['tempHead'], val['currentCutter'], val['speedCutter']]),
|
|
index: true,
|
|
fontColor: '#03BCD4 ',
|
|
indexBGC: '#86F3FF',
|
|
headerBGC: '#092A77',
|
|
oddRowBGC: '#092A77',
|
|
evenRowBGC: '#092A77',
|
|
});
|
|
|
|
let num1 = e.total / 10
|
|
let arr = []
|
|
if (num1 < 6) {
|
|
arr = new Array(Math.ceil(e.total / 10)).fill(1).map((i, k) => {
|
|
return k + 1
|
|
})
|
|
} else {
|
|
if (pageNum <= 3) {
|
|
arr = [1, 2, 3, '...', num1 - 1, num1]
|
|
} else {
|
|
if (pageNum < num1 - 3) {
|
|
arr = ['...', pageNum - 1, pageNum, pageNum + 1, '...', num1]
|
|
}
|
|
if (pageNum === num1 - 3) {
|
|
arr = ['...', pageNum - 1, pageNum, pageNum + 1, num1 - 1, num1]
|
|
}
|
|
if (pageNum === num1 - 2) {
|
|
arr = ['...', pageNum - 2, pageNum - 1, pageNum, num1 - 1, num1]
|
|
}
|
|
if (pageNum === num1 - 1) {
|
|
arr = ['...', pageNum - 3, pageNum - 2, pageNum - 1, pageNum, pageNum + 1]
|
|
}
|
|
if (pageNum === num1) {
|
|
arr = ['...', pageNum - 4, pageNum - 3, pageNum - 2, pageNum - 1, pageNum]
|
|
}
|
|
}
|
|
|
|
}
|
|
|
|
$("#Pagination").empty()
|
|
$("#Pagination").append(`
|
|
<li onclick="pageClick(this,1)">
|
|
<a aria-label="Previous" href="#">
|
|
<span aria-hidden="true">首页</span>
|
|
</a>
|
|
</li>
|
|
<li onclick="pre()">
|
|
<a aria-label="Previous" href="#">
|
|
<span aria-hidden="true">«</span>
|
|
</a>
|
|
</li>
|
|
`)
|
|
arr.map((i, k) => {
|
|
$("#Pagination").append(`
|
|
<li pageId="${k+1}" class="page" onclick="pageClick(this,${k+1})"><a href="#">${k+1}</a></li>
|
|
`)
|
|
})
|
|
$("#Pagination").append(`
|
|
<li onclick="Next()">
|
|
<a aria-label="Next" href="#">
|
|
<span aria-hidden="true">»</span>
|
|
</a>
|
|
</li>
|
|
<li onclick="pageClick(this,${num1}})">
|
|
<a aria-label="Previous" href="#">
|
|
<span aria-hidden="true">首页</span>
|
|
</a>
|
|
</li>
|
|
`)
|
|
} else {
|
|
$("#chart2").html(`<div style="width: 100%;height: 100%;text-align: center;line-height:35vw;color: #fff ">暂无数据</div>`)
|
|
}
|
|
})
|
|
|
|
}
|
|
const Modal2Search = async () => {
|
|
let params = {}
|
|
params.timeInterval = $('#timeInterval').val();
|
|
if ($('#startTime2').val()) {
|
|
params.beginTime = $.common.dateFormat(new Date($('#startTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
if ($('#endTime2').val()) {
|
|
params.endTime = $.common.dateFormat(new Date($('#endTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
await Modal2SearchReq(params)
|
|
$($(".page")[0]).addClass('active')
|
|
$($(".page")[0]).siblings().removeClass('active')
|
|
console.log(params)
|
|
}
|
|
const pageClick = (e,i) =>{
|
|
$(e).addClass('active')
|
|
$(e).siblings().removeClass('active')
|
|
pageNum = i
|
|
let params = {}
|
|
params.timeInterval = $('#timeInterval').val();
|
|
if ($('#startTime2').val()) {
|
|
params.beginTime = $.common.dateFormat(new Date($('#startTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
if ($('#endTime2').val()) {
|
|
params.endTime = $.common.dateFormat(new Date($('#endTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
Modal2SearchReq(params)
|
|
}
|
|
const pre = () =>{
|
|
pageNum -= 1
|
|
if (pageNum < 1) {
|
|
pageNum = 1
|
|
}
|
|
let params = {}
|
|
params.timeInterval = $('#timeInterval').val();
|
|
if ($('#startTime2').val()) {
|
|
params.beginTime = $.common.dateFormat(new Date($('#startTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
if ($('#endTime2').val()) {
|
|
params.endTime = $.common.dateFormat(new Date($('#endTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
Modal2SearchReq(params)
|
|
}
|
|
const Next = () =>{
|
|
pageNum += 1
|
|
if (pageNum > pagesNum) {
|
|
pageNum = pagesNum
|
|
}
|
|
let params = {}
|
|
params.timeInterval = $('#timeInterval').val();
|
|
if ($('#startTime2').val()) {
|
|
params.beginTime = $.common.dateFormat(new Date($('#startTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
if ($('#endTime2').val()) {
|
|
params.endTime = $.common.dateFormat(new Date($('#endTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
Modal2SearchReq(params)
|
|
}
|
|
const derive = () => {
|
|
let canvasNode = $("#chart1 div canvas")[0]
|
|
console.log(canvasNode)
|
|
let canvasURL = canvasNode.toDataURL("image/png");
|
|
let link = document.createElement("a");
|
|
link.setAttribute("href", canvasURL);
|
|
link.setAttribute("download", "picture.png");
|
|
link.click();
|
|
}
|
|
const derive2 = () => {
|
|
let params = {
|
|
colms: tableHeadChangeArr.toString()
|
|
}
|
|
|
|
params.timeInterval = $('#timeInterval').val();
|
|
if ($('#startTime2').val()) {
|
|
params.beginTime = $.common.dateFormat(new Date($('#startTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
if ($('#endTime2').val()) {
|
|
params.endTime = $.common.dateFormat(new Date($('#endTime2').val()),'yyyy-MM-dd HH-mm-ss');
|
|
}
|
|
if ($('#name').val()) {
|
|
params.name = $('#name').val()
|
|
}
|
|
if ($('#type').val()) {
|
|
params.type = $('#type').val()
|
|
}
|
|
$.post(ctx + 'broad/home/exportParamListB', params, (e) => {
|
|
window.location.href = ctx + "common/download?fileName=" + encodeURI(e.msg) + "&delete=" + true;
|
|
})
|
|
}
|
|
</script>
|
|
<div>
|
|
<div class="topBtn" onclick="routerSkip('board/board2')" style="left: 8vw;">首页</div>
|
|
<div class="topBtn " onclick="routerSkip('board/board1')" style="left: 16.5vw;">60型一体机A</div>
|
|
<div class="topBtn topBtnClick" onclick="routerSkip('board/board3')" style="left: 25vw;">60型一体机B</div>
|
|
<div class="topBtn" onclick="routerSkip('board/video')" style="left: 71vw;">视频展示</div>
|
|
<div class="topBtn" onclick="routerSkip('board/doc')" style="left: 83vw;">文档归档</div>
|
|
<div class="topBtn" id="toggleInfoBtn" onclick="toggleInfo()" style="left: 83vw;top:13%">设备介绍</div>
|
|
|
|
<div class="bottomBtn" id="bottomBtn1" onclick="bottomBtnInfo(1,this)" style="left: 22.5vw;">历史趋势</div>
|
|
<div class="bottomBtn" id="bottomBtn2" onclick="bottomBtnInfo(2,this)" style="left: 42.5vw;">数据记录</div>
|
|
<div class="bottomBtn" id="bottomBtn3" onclick="bottomBtnInfo(3,this)" style="left: 62.5vw;">实时监控</div>
|
|
|
|
<div class="centerImg">
|
|
|
|
</div>
|
|
<div id="statusD">
|
|
</div>
|
|
<div class="centerInfoDiv" id="centerInfoDiv">
|
|
|
|
</div>
|
|
|
|
<div id="rightInfo" style="display: none">
|
|
<div class="winDiv">
|
|
<div class="title">基本信息</div>
|
|
<div class="title1">设备描述:</div>
|
|
<div class="bg1">
|
|
</div>
|
|
<div class="title2">技术参数:</div>
|
|
<div class="bg2">
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
|
|
<div class="eqModal" id="eqModal">
|
|
<div class="shade" onclick="hideModal1()"></div>
|
|
<div class="centerModal"></div>
|
|
</div>
|
|
|
|
<div id="modal1" style="display:none;">
|
|
<div class="shade" onclick="hideModal(1,this)"></div>
|
|
<div class="centerModal">
|
|
|
|
<div class="centerModalInfo">
|
|
<div style="display: inline-block">
|
|
<span style="font-size: 1vw;color: #fff">时间间隔:</span>
|
|
<select class="form-control m-b" id="timeInterval1" style="width: 10vw;height:2vw;display: inline-block"
|
|
th:with="type=${@dict.getType('time_interval')}">
|
|
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
|
|
</select>
|
|
</div>
|
|
<span style="font-size: 1vw;color: #fff">起止时间: </span>
|
|
<input class="form-control" id="startTime1" placeholder="开始时间"
|
|
style="width: 10vw;height:2vw;display: inline-block"
|
|
type="text">
|
|
<span>-</span>
|
|
<input class="form-control" id="endTime1" placeholder="结束时间"
|
|
style="width: 10vw;height:2vw;display: inline-block"
|
|
type="text">
|
|
<a class="btn btn-primary btn-rounded btn-sm" onclick="Modal1Search()"><i class="fa fa-search"></i> 搜索</a>
|
|
<a class="btn btn-warning btn-rounded btn-sm" onclick="derive()"><i class="fa fa-download"></i> 导出</a>
|
|
</div>
|
|
<div class="chart1" id="chart1"></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="modal2" style="display:none;">
|
|
<div class="shade" onclick="hideModal(2,this)"></div>
|
|
<div class="centerModal">
|
|
<div class="centerModalInfo">
|
|
<div style="position:relative;">
|
|
<div style="display: inline-block">
|
|
<span style="font-size: 1vw;color: #fff">客户名称: </span>
|
|
<input id="name" name="loginName" style="width: 10vw;height:2vw;display: inline-block" type="text"/>
|
|
</div>
|
|
<div style="display: inline-block">
|
|
<span style="font-size: 1vw;color: #fff">实验胶种: </span>
|
|
<input id="type" name="loginName" style="width: 10vw;height:2vw;display: inline-block" type="text"/>
|
|
</div>
|
|
|
|
<div style="display: inline-block">
|
|
<span style="font-size: 1vw;color: #fff">起止时间: </span>
|
|
<input class="form-control" id="startTime2" placeholder="开始时间"
|
|
style="width: 8vw;height:2vw;display: inline-block"
|
|
type="text">
|
|
<span>-</span>
|
|
<input class="form-control" id="endTime2" placeholder="结束时间"
|
|
style="width: 8vw;height:2vw;display: inline-block"
|
|
type="text">
|
|
</div>
|
|
<div style="display: inline-block">
|
|
<span style="font-size: 1vw;color: #fff">时间间隔:</span>
|
|
<select class="form-control m-b" id="timeInterval" style="width: 10vw;height:2vw;display: inline-block"
|
|
th:with="type=${@dict.getType('time_interval')}">
|
|
<option th:each="dict : ${type}" th:text="${dict.dictLabel}" th:value="${dict.dictValue}"></option>
|
|
</select>
|
|
</div>
|
|
<a class="btn btn-primary btn-rounded btn-sm" onclick="Modal2Search()"><i
|
|
class="fa fa-search"></i> 搜索</a>
|
|
<a class="btn btn-warning btn-rounded btn-sm" onclick="derive2()"><i class="fa fa-download"></i> 导出</a>
|
|
</div>
|
|
<div class="chart1" id="chart2" style="position:relative;top:2%;left: 0;height: 80%"></div>
|
|
<nav aria-label="Page navigation">
|
|
<ul class="pagination pagination-lg" id="Pagination">
|
|
</ul>
|
|
</nav>
|
|
</div>
|
|
</div>
|
|
</div>
|
|
|
|
<div id="modal3" style="display:none;">
|
|
<div class="shade" onclick="hideModal(3,this)"></div>
|
|
<div class="centerModal">
|
|
<div class="monitoring" id="monitoring">
|
|
</div>
|
|
</div>
|
|
</div>
|
|
<div class="centerModal1" id="centerModal1" style="display: none">
|
|
<iframe frameborder="0" id="monitoringIframe1" src="monitoring1" style="width: 100%;height: 100%"></iframe>
|
|
</div>
|
|
</div>
|
|
<th:block th:include="include :: footer"/>
|
|
<script src="../../board/board3.js"></script>
|
|
<script>
|
|
|
|
layui.use('laydate', function () {
|
|
var laydate = layui.laydate;
|
|
|
|
laydate.render({
|
|
elem: '#startTime1',
|
|
type: 'datetime',
|
|
trigger: 'click'
|
|
});
|
|
|
|
laydate.render({
|
|
elem: '#endTime1',
|
|
type: 'datetime',
|
|
trigger: 'click'
|
|
});
|
|
|
|
laydate.render({
|
|
elem: '#startTime2',
|
|
type: 'datetime',
|
|
trigger: 'click'
|
|
});
|
|
|
|
laydate.render({
|
|
elem: '#endTime2',
|
|
type: 'datetime',
|
|
trigger: 'click'
|
|
});
|
|
});
|
|
</script>
|
|
</body>
|
|
</html>
|