Files
SIPAIIS_WMS_JSSW/WebRoot/jsp/visual/expo_homepage.jsp

1540 lines
57 KiB
Plaintext
Raw Permalink Normal View History

2026-01-16 14:13:44 +08:00
<%@ page language="java" pageEncoding="UTF-8"%>
<%@ taglib uri="http://java.sun.com/jstl/core_rt" prefix="c"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/functions" prefix="fn"%>
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt"%>
<%@ page import="com.sipai.entity.base.ServerObject"%>
<%@ taglib uri="http://www.springsecurity.org/jsp" prefix="security"%>
<%@ page import="com.sipai.tools.Mqtt" %>
<%@ page import="org.springframework.context.ApplicationContext" %>
<%@ page import="org.springframework.web.context.support.WebApplicationContextUtils" %>
<% ApplicationContext ctx = WebApplicationContextUtils.getWebApplicationContext(request.getServletContext());
Mqtt mqtt = (Mqtt) ctx.getBean("mqtt");
request.setAttribute("mqttStatus", mqtt.getStatus());
request.setAttribute("hostWeb", mqtt.getHostWeb()); %>
<!DOCTYPE html>
<!-- <html lang="zh-CN"> -->
<!-- BEGIN HEAD -->
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<meta http-equiv = "X-UA-Compatible" content = "IE=edge,chrome=1" />
<title>
<%= ServerObject.atttable.get("TOPTITLE")%>
</title>
<!-- 引用页头及CSS页-->
<jsp:include page="/jsp/inc.jsp"></jsp:include>
<script type="text/javascript" src="<%=request.getContextPath()%>/plugins/bootstrap-daterangepicker/moment.min.js"
charset="utf-8"></script>
<%-- mqtt依赖--%>
<script src="<%=request.getContextPath()%>/JS/mqtt/mqtt.min.js" type="text/javascript"></script>
<style type="text/css">
.whole-body{
width: 1920px;
height: 1080px;
}
.content-wrapper-bg{
background-size: 100% 100%;
background-repeat:no-repeat;
background-position:center center;
}
.content-wrapper-bg-darkblue{
background-image: url(<%=request.getContextPath()%>/IMG/expo/bg.png);
}
.content-wrapper-bg-main{
background-image: url(<%=request.getContextPath()%>/IMG/expo/main_bg.png);
}
.whole-element,.left-equ-number{
position: absolute;
}
.top-title{
top: 22px;
left: 53px;
font-size: 40px;
color: #ffffff;
}
/*.top-title{
top: 0px;
left: 0px;
width: 1920px;
height: 140px;
}*/
.top-weather{
top: 12px;
right: 3px;
color: #ffffff;
}
.top-weather-element{
float: left;
padding:0;
height: 80px;
}
.top-menu{
width: 196px;
height: 42px;
background-size: 100% 100%;
background-repeat:no-repeat;
background-position:center center;
background-image: url(<%=request.getContextPath()%>/IMG/expo/top_menu.png);
cursor: pointer;
top: 91.5px;
left: 26.5px;
font-size: 18px;
font-weight: 700;
text-align: left;
color: #baf6ff;
line-height: 28px;
padding-top: 9px;
padding-left: 39px;
}
.top-menu-list{
width: 190px;
top: 138px;
left: 30px;
font-size: 18px;
font-weight: 700;
text-align: left;
color: #baf6ff;
display: none;
background-size: 100% 100%;
background-repeat:no-repeat;
background-position:center center;
background-image: url(<%=request.getContextPath()%>/IMG/expo/u5.svg);
z-index: 10;
}
.top-menu-list-option{
height: 44px;
line-height: 2.5;
padding-left: 35px;
}
.whole-left{
top: 200px;
left: 30px;
}
.left-equ{
width: 200px;
height: 100px;
background-size: 100% 100%;
background-repeat:no-repeat;
background-position:center center;
margin-bottom: 7px;
position: relative;
}
.left-equ-qdkqc{
background-image: url(<%=request.getContextPath()%>/IMG/expo/equ_qdkqc.png);
}
.left-equ-czfj{
background-image: url(<%=request.getContextPath()%>/IMG/expo/equ_czfj.png);
}
.left-equ-gylw{
background-image: url(<%=request.getContextPath()%>/IMG/expo/equ_gylw.png);
}
.left-equ-mqby{
background-image: url(<%=request.getContextPath()%>/IMG/expo/equ_mqby.png);
}
.left-equ-mqddc{
background-image: url(<%=request.getContextPath()%>/IMG/expo/equ_mqddc.png);
}
.left-equ-srq{
background-image: url(<%=request.getContextPath()%>/IMG/expo/equ_srq.png);
}
.left-equ-xhfj{
background-image: url(<%=request.getContextPath()%>/IMG/expo/equ_xhfj.png);
}
.left-equ-zyl{
background-image: url(<%=request.getContextPath()%>/IMG/expo/equ_zyl.png);
}
.left-equ-open{
top: 33px;
left: 80px;
width: 50px;
text-align: center;
}
.left-equ-close{
top: 33px;
left: 135px;
width: 50px;
text-align: center;
}
.left-equ-all{
top: 72px;
left: 94px;
}
.opacity-4{
opacity: 0.4;
}
.opacity-7{
opacity: 0.7;
}
.p1-data{
width: 300px;
height: 300px;
top: 497px;
left: 375px;
}
.p1-data-element{
width: 120px;
height: 40px;
}
.now-people-number-element{
top: 50px;
left: 25px;
}
.max-bear-capacity-element{
top: 50px;
left: 155px;
}
.p1-temperature{
top: 210px;
left: 20px;
}
.p1-humidity{
top: 210px;
left: 160px;
}
.p-data{
width: 500px;
height: 315px;
}
.p2-data{
top: 125px;
left: 275px;
}
.p3-data{
top: 125px;
left: 795px;
}
.p4-data{
top: 125px;
left: 1318px;
}
.p-data-title{
width: 500px;
height: 60px;
}
.p-data-pie{
width: 500px;
height: 105px;
position: relative;
}
.p-data-pie-number{
width: 80px;
height: 28px;
text-align: center;
}
.p-data-pie-number-top{
top: 28px;
}
.p2-temperature,.p3-temperature,.p4-temperature{
left: 22px;
}
.p2-humidity,.p3-humidity,.p4-humidity{
left: 115px;
}
.p2-co2,.p3-co2,.p4-co2{
left: 210px;
}
.p2-windSpeed,.p3-windSpeed,.p4-windSpeed{
left: 304px;
}
.p2-illuminance,.p3-illuminance,.p4-illuminance{
left: 397px;
}
.p-data-line{
width: 500px;
height: 150px;
}
.p-url{
width: 155px;
height: 40px;
}
.p2-url{
top: 557px;
left: 788px;
}
.p3-url{
top: 515px;
left: 1180px;
}
.p4-url{
top: 724px;
left: 1510px;
}
.content-left, .content-right{
float: left;
padding:0;
}
.content-left{
width: 810px;
}
.content-right{
width: 2380px;
}
.content-right-subject{
min-height: 215px;
}
.content-bg-darkblue{
background: rgba(12,12,12,0.60);
}
.homePage-btn{
cursor:pointer;
background: rgba(54,167,204,0.70);
border-radius: 10px;
}
.col-lg-1, .col-lg-10, .col-lg-11, .col-lg-12, .col-lg-2, .col-lg-3, .col-lg-4, .col-lg-5, .col-lg-6, .col-lg-7, .col-lg-8, .col-lg-9,
.col-md-1, .col-md-10, .col-md-11, .col-md-12, .col-md-2, .col-md-3, .col-md-4, .col-md-5, .col-md-6, .col-md-7, .col-md-8, .col-md-9,
.col-sm-1, .col-sm-10, .col-sm-11, .col-sm-12, .col-sm-2, .col-sm-3, .col-sm-4, .col-sm-5, .col-sm-6, .col-sm-7, .col-sm-8, .col-sm-9,
.col-xs-1, .col-xs-10, .col-xs-11, .col-xs-12, .col-xs-2, .col-xs-3, .col-xs-4, .col-xs-5, .col-xs-6, .col-xs-7, .col-xs-8, .col-xs-9,
.col-xs-1-5 {
padding-right: 5px;
padding-left: 5px
}
.col-xs-1-5 {
width: 12%;
}
.col-xs-1-5{
float: left;
}
.col-xs-1-5 {
position: relative;
min-height: 1px;
}
.title-height{
height:70px;
}
.row-10{
height:10%;
}
.row-15{
height:15%;
}
.row-25{
height:25%;
}
.row-30{
height:30%;
}
.row-35{
height:35%;
}
.row-40{
height:40%;
}
.row-50{
height:50%;
}
.row-70{
height:70%;
}
.row-75{
height:75%;
}
.row-100{
height:100%;
}
.content-wrapper-bg-grey{
background: #eeeeee;
}
.content-wrapper-bg-white,.bgcolor-white,.bgcolor-white-light{
background: #ffffff;
border-radius: 5px;
}
.content-wrapper-bg-white,.content-wrapper-bg-transparent{
margin:0 5px;
border-radius: 5px;
}
.bgcolor-blue{
background: #052941;
}
.margin-bottom-15{
margin-bottom: 15px;
}
.margin-bottom-22{
margin-bottom: 22px;
}
.margin-bottom-25{
margin-bottom: 25px;
}
.margin-bottom-36{
margin-bottom: 22px;
}
.margin-bottom-55{
margin-bottom: 55px;
}
.margin-bottom-75{
margin-bottom: 75px;
}
.padding-topbottom-35{
padding-top: 35px;
padding-bottom: 35px;
}
.pad-topbottom-60{
padding-top: 60px;
padding-bottom: 60px;
}
.padding-leftright-15{
padding-left: 15px;
padding-right: 15px;
}
.padding-left-15{
padding-left: 15px;
}
.padding-left-20{
padding-left: 20px;
}
.pad-leftright-72{
padding-left: 72px;
padding-right: 72px;
}
.pad-bottom-10{
padding-bottom: 10px;
}
.padding-top-5{
padding-top:5px;
}
.padding-top-10{
padding-top: 10px;
}
.padding-top-15{
padding-top: 15px;
}
.padding-top-27{
padding-top: 27px;
}
.padding-top-90{
padding-top: 90px;
}
.line-height-08{
line-height: 0.8;
}
.line-height-1{
line-height: 1;
}
.line-height-2{
line-height: 2;
}
.line-height-2-3{
line-height: 2.3;
}
.line-height-3{
line-height: 3;
}
.line-height-5{
line-height: 5;
}
.line-height-6{
line-height: 6;
}
.font-size-12{
font-size: 12px;
font-weight: 400;
line-height: 24px;
}
.font-size-14{
font-size: 14px;
line-height: inherit;
}
.font-size-16{
font-size: 16px;
}
.font-size-18{
font-size: 18px;
}
.font-size-20{
font-size: 20px;
}
.font-size-22{
font-size: 22px;
}
.font-size-28{
font-size: 28px;
}
.font-size-33{
font-size: 33px;
}
.font-size-30{
font-size: 30px;
}
.font-size-35{
font-size: 35px;
}
.font-size-36{
font-size: 36px;
}
.font-size-40{
font-size: 40px;
}
.font-size-50{
font-size: 50px;
}
.font-size-60{
font-size: 60px;
}
.font-size-65{
font-size: 65px;
}
.font-size-70{
font-size: 70px;
}
.font-color-white,.font-color-dark-white{
color: #FFFFFF;
}
.font-color-black{
color: #0d2336;
font-weight: 600;
}
.font-color-red{
color: #CF0C0C;
}
.font-color-yellow{
color: #FFF700;
}
.font-color-redlight{
color: #CE00FF
}
.font-color-blue,.font-color-dark-blue{
color: #1472FF;
}
.font-color-lightBlue,.font-color-light-blue{
color: #00D2FF;
}
.font-color-green{
color: #00EC1F;
}
.border-left{
border-left: 1px solid #c1c1c1;
}
.border-right{
border-right: 2px solid #ffffff;
}
.border-bottom{
border-bottom: 1px solid #c1c1c1;
}
.border-leftAndRight{
border-left: 1px solid #c1c1c1;border-right: 1px solid #c1c1c1;
}
.bgcolor-blue-light{
background: #192B73;
}
.bgcolor-transparent{
background: transparent;
border-radius: 5px;
}
.img-icon{
width: 70px;
height: 70px;
}
.img-pump{
width: 60px;
height: 97px;
}
.progress_bar{
min-width: 630px;
height: 25px;
}
.polarBarLegend{
width: 360px;
height: 200px;
position: fixed;
}
.polarBar{
min-width: 630px;
height: 450px;
}
.cursor-pointer{
cursor: pointer;
}
.pressure-line{
width: 1180px;
height: 560px;
}
.rawwater-line{
width: 2360px;
height: 560px;
}
.instructions-line{
width: 2360px;
height: 355px;
}
</style>
<script type="text/javascript">
var fontcolor_grey = '#aeaeae';
var fontcolor_black = '#0d2336';
var color_blue = '#36FFF9';
var color_blue_other = '#1D4F6D';
var img_name = '';
var color = ['#649DFF','#64FFFA','#ff2ee3','#2e97ff','#ffb536'];
$(function () {
updateNowTime();
/* 定时器 */
setInterval(updateNowTime, 1000); //<!--每隔1秒钟刷新一次-->
/*$("#top-url").attr("src",ext.contextPath + '/expo/top.do' );*/
$('.top-menu-list').hide();
$(".top-menu").on("click", function (e) {
$(".top-menu-list").toggle();
});
var data2 = [['00:00',0],['01:00',0],['02:00',0],['03:00',0]];
var data1 = [['00:00',0],['01:00',0],['02:00',0],['03:00',0]];
echarts_line('p2_temperature',data1,data2);
echarts_line('p3_temperature',data1,data2);
echarts_line('p4_temperature',data1,data2);
getData();
//getWeather();
/*setInterval(getData, 60000);*/ //<!--每隔1分钟钟刷新一次-->
});
function updateNowTime(){
var nowTime = moment().format('YYYY-MM-DD HH:mm:ss');
$('.top-date').html(nowTime.substring(0,10));
$('.top-time').html(nowTime.substring(11,19));
var hour = Number(nowTime.substring(11,13));
if(hour<7 || hour>17){
var src = "<%=request.getContextPath()%>/IMG/expo/night.png";
$('.dayOrNight').attr('src', src);
}else{
var src = "<%=request.getContextPath()%>/IMG/expo/day.png";
$('.dayOrNight').attr('src', src);
}
//getData();
}
function addAndRemove4Class(one,two){
$('.'+one).addClass(two);
$('.'+one).removeClass(one);
}
var pageCode = [];
var pageCodeType = [];
var p2_temperature_sw_seriesdata = [];
var p2_temperature_cg_seriesdata = [];
var p3_temperature_sw_seriesdata = [];
var p3_temperature_cg_seriesdata = [];
var p4_temperature_sw_seriesdata = [];
var p4_temperature_cg_seriesdata = [];
function getData(){
var bizid = "021SHSB";
var jsp_id = $('#jsp_id').val();
var time_input = $('#time_input').val();
//var time_input = '2024-03-06 13:00';
$.post(ext.contextPath + '/expo/getExpoData.do', {bizid:bizid,time:time_input,jsp_id:jsp_id} , function(data) {
var arr= JSON.parse(data);
//console.log(arr);
var windDirection = '0';
var transition = '0';
if(arr.rows!=null && arr.rows!=undefined && arr.rows!=''){
for(var i=0;i<arr.rows.length;i++){
var value =0;
var numtail=0;
var dataMax=0;
var rate = 1;
if(arr.rows[i].visualCacheConfig!=null
&& arr.rows[i].visualCacheConfig!=undefined
&& arr.rows[i].visualCacheConfig!=''){
var visualCacheConfig = arr.rows[i].visualCacheConfig;
if(visualCacheConfig.numtail!=null && visualCacheConfig.numtail!=undefined && (visualCacheConfig.numtail!='' || visualCacheConfig.numtail===0)){
numtail = visualCacheConfig.numtail;
}
}
if(arr.rows[i].visualCacheData!=null
&& arr.rows[i].visualCacheData!=undefined
&& arr.rows[i].visualCacheData!=''){
var visualCacheData = arr.rows[i].visualCacheData;
if(visualCacheData.inivalue!=null && visualCacheData.inivalue!=undefined && (visualCacheData.inivalue!='' || visualCacheData.inivalue===0)){
value = visualCacheData.inivalue;
}else if(visualCacheData.value!=null && visualCacheData.value!=undefined && (visualCacheData.value!='' || visualCacheData.value===0)){
value = visualCacheData.value;
}else {
if(arr.rows[i].mPoint!=null && arr.rows[i].mPoint!=undefined && arr.rows[i].mPoint!=''){
var mPoint = arr.rows[i].mPoint;
if(mPoint.parmvalue!=null && mPoint.parmvalue!=undefined && (mPoint.parmvalue!='' || mPoint.parmvalue===0)){
value = mPoint.parmvalue;
}
if(mPoint.alarmmax!=null && mPoint.alarmmax!=undefined && (mPoint.alarmmax!='' || mPoint.alarmmax===0)){
dataMax = mPoint.alarmmax;
}
if(mPoint.numtail!=null && mPoint.numtail!=undefined && (mPoint.numtail!='' || mPoint.numtail===0)){
numtail = mPoint.numtail;
}
}
}
if(visualCacheData.numtail!=null && visualCacheData.numtail!=undefined && (visualCacheData.numtail!='' || visualCacheData.numtail===0)){
numtail = visualCacheData.numtail;
}
if(visualCacheData.rate!=null && visualCacheData.rate!=undefined && (visualCacheData.rate!='' || visualCacheData.rate===0)){
rate = visualCacheData.rate;
}
}
value = parseFloat(value)*rate;
value = value.toFixed(numtail);
if(arr.rows[i].visualCacheData!=null
&& arr.rows[i].visualCacheData!=undefined
&& arr.rows[i].visualCacheData!='') {
var visualCacheData = arr.rows[i].visualCacheData;
//只显示固定数据
/*if ((visualCacheData.mpcode==null || visualCacheData.mpcode=='') && $("." + arr.rows[i].elementCode).length > 0) {
$("." + arr.rows[i].elementCode).html(toThousands(value));
}*/
if ($("." + arr.rows[i].elementCode).length > 0) {
$("." + arr.rows[i].elementCode).html(toThousands(value));
}
if (visualCacheData.mpcode!=null && visualCacheData.mpcode!='') {
if(pageCode.indexOf(visualCacheData.mpcode)!=-1){
var pageCodedata = pageCodeType[pageCode.indexOf(visualCacheData.mpcode)];
pageCodedata.push(arr.rows[i]);
}else{
pageCode.push(visualCacheData.mpcode);
var pageCodedata = [];
pageCodedata.push(arr.rows[i]);
pageCodeType.push(pageCodedata);
}
}
}
/*if($("."+arr.rows[i].elementCode).parent().find('.nowdate').length > 0){
$("."+arr.rows[i].elementCode).parent().find('.nowdate').html(nowdate.substring(11,16));
}*/
/*if(arr.rows[i].elementCode.indexOf("number_open")!= -1){
if(Number(value)>0){
$("."+arr.rows[i].elementCode).parent().removeClass("opacity-4");
}else{
$("."+arr.rows[i].elementCode).parent().addClass("opacity-4");
}
}*/
if(arr.rows[i].elementCode=='windDirection'){
windDirection = value;
}
if(arr.rows[i].elementCode=='transition'){
transition = value;
}
if(arr.rows[i].elementCode=='p2_temperature_sw'){
p2_temperature_sw_seriesdata = getdataseries(arr.rows[i].mPointHistory,arr.rows[i].visualCacheDataList,numtail);
}
if(arr.rows[i].elementCode=='p2_temperature_cg'){
p2_temperature_cg_seriesdata = getdataseries(arr.rows[i].mPointHistory,arr.rows[i].visualCacheDataList,numtail);
}
if(arr.rows[i].elementCode=='p3_temperature_sw'){
p3_temperature_sw_seriesdata = getdataseries(arr.rows[i].mPointHistory,arr.rows[i].visualCacheDataList,numtail);
}
if(arr.rows[i].elementCode=='p3_temperature_cg'){
p3_temperature_cg_seriesdata = getdataseries(arr.rows[i].mPointHistory,arr.rows[i].visualCacheDataList,numtail);
}
if(arr.rows[i].elementCode=='p4_temperature_sw'){
p4_temperature_sw_seriesdata = getdataseries(arr.rows[i].mPointHistory,arr.rows[i].visualCacheDataList,numtail);
}
if(arr.rows[i].elementCode=='p4_temperature_cg'){
p4_temperature_cg_seriesdata = getdataseries(arr.rows[i].mPointHistory,arr.rows[i].visualCacheDataList,numtail);
}
}
}
switch(windDirection) {
case '1':
windDirection = '北风';
break;
case '2':
windDirection = '东北风';
break;
case '3':
windDirection = '东风';
break;
case '4':
windDirection = '东南风';
break;
case '5':
windDirection = '南风';
break;
case '6':
windDirection = '西南风';
break;
case '7':
windDirection = '西风';
break;
case '8':
windDirection = '西北风';
break;
default:
windDirection = '无';
}
if($("#windDirection").length > 0){
$("#windDirection").html(windDirection);
}
var equEle = [];
var equEle_hot = ['left-equ-srq','left-equ-mqby','left-equ-mqddc','left-equ-qdkqc','left-equ-czfj'];
var equEle_transition = ['left-equ-mqby','left-equ-mqddc','left-equ-qdkqc','left-equ-xhfj'];
var equEle_cold = ['left-equ-zyl','left-equ-gylw','left-equ-mqby','left-equ-mqddc','left-equ-qdkqc','left-equ-xhfj'];
if($("#transition").length > 0){
switch(transition) {
case '0':
//$("#transition").attr("src",ext.contextPath + "/IMG/expo/cold.png");
equEle = equEle_cold;
break;
case '1':
//$("#transition").attr("src",ext.contextPath + "/IMG/expo/hot.png");
equEle = equEle_hot;
break;
default:
//$("#transition").attr("src",ext.contextPath + "/IMG/expo/transition.png");
equEle = equEle_transition;
}
}
if(equEle!=null && equEle.length>0) {
for (var e = 0; e < equEle.length; e++) {
$("." + equEle[e]).removeClass("opacity-4");
$("." + equEle[e]).parent().prepend($("." + equEle[e]));
}
}
if(p2_temperature_sw_seriesdata!=null && p2_temperature_cg_seriesdata.length>0){
echarts_line('p2_temperature',p2_temperature_sw_seriesdata,p2_temperature_cg_seriesdata);
}
if(p3_temperature_sw_seriesdata!=null && p3_temperature_cg_seriesdata.length>0){
echarts_line('p3_temperature',p3_temperature_sw_seriesdata,p3_temperature_cg_seriesdata);
}
if(p4_temperature_sw_seriesdata!=null && p4_temperature_cg_seriesdata.length>0){
echarts_line('p4_temperature',p4_temperature_sw_seriesdata,p4_temperature_cg_seriesdata);
}
try {
//初始化mqtt
if ('${mqttStatus}' == '0') {
initialMqtt('expo_homepage_'+'${cu.id}'+Math.random());
} else {
console.log('mq已关闭')
}
} catch (err) {
//处理错误
}
});
}
function getdataseries(mPointHistory,visualCacheDataList,numtail){
var dataseries =[];
if(mPointHistory!=null
&& mPointHistory!=undefined
&& mPointHistory!=''){
var mPointHistory = mPointHistory;
for(var m=0;m<mPointHistory.length;m++){
var dataserie =[];
dataserie.push(mPointHistory[m].measuredt.substr(0,19));
dataserie.push(mPointHistory[m].parmvalue.toFixed(numtail));
dataseries.push(dataserie);
}
}else{
if(visualCacheDataList!=null
&& visualCacheDataList!=undefined
&& visualCacheDataList!=''){
var visualCacheDataList = visualCacheDataList;
for(var m=0;m<visualCacheDataList.length;m++){
var dataserie =[];
dataserie.push(visualCacheDataList[m].insdt.substr(0,16));
dataserie.push(visualCacheDataList[m].value.toFixed(numtail));
dataseries.push(dataserie);
}
}
}
return dataseries;
}
function echarts_line_apprend(id,seriesdata1,seriesdata2){
var lifeChart = echarts.getInstanceByDom(document.getElementById(id));
//有的话就获取已有echarts实例的DOM节点。
if (lifeChart != null) { // 如果存在,就进行销毁。
}
}
function echarts_line(id,seriesdata1,seriesdata2){
var lifeChart = echarts.getInstanceByDom(document.getElementById(id));
//有的话就获取已有echarts实例的DOM节点。
if (lifeChart != null) { // 如果存在,就进行销毁。
lifeChart.setOption({
series: [
{
name: '室外温度',
type: 'line',
//smooth: true,
showSymbol: false,
data: seriesdata1,
},
{
name: '场馆温度',
type: 'line',
//smooth: true,
showSymbol: false,
data: seriesdata2,
areaStyle: {
// 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1相当于在图形包围盒中的百分比如果 globalCoord 为 `true`,则该四个值是绝对的像素位置
color: {
type: 'linear',
x: 0,
y: 1,
x2: 0,
y2: 0,
colorStops: [{
offset: 0, color: 'rgba(255,255,255,0)' // 0% 处的颜色
}, {
offset: 1, color: 'rgba(214,255,0,0.7)' // 100% 处的颜色
}],
global: false // 缺省为 false
}
},
},
]
})
}else{
var option = {
color:['#00FFDD','#D6FF00'],
animation: false ,
tooltip: {
trigger: 'axis',
},
legend: {
data: ['场馆温度', '室外温度'],
right: '5%',
icon: 'circle',
textStyle: {
color: '#70AFD8' ,
}
},
grid: {
left: '5%',
right: '5%',
top: '28',
bottom: '5%',
show: true ,
backgroundColor: 'rgba(24,45,95,0.7)',
borderColor: '#1D5179' ,
containLabel: true
},
xAxis: {
type : 'time',
boundaryGap: false,
axisLine: {
show: true,
lineStyle: {
color: '#1D5179'
}
},
axisTick: {
show: false ,
},
axisLabel: {
color: '#70AFD8' ,
/*formatter: function (value, index) {
if(value.length>18){
return value.substring(11,19);
}else{
return value;
}
}*/
},
},
yAxis: {
type: 'value',
splitNumber: 3,
axisLine: {
show: true,
lineStyle: {
color: '#1D5179'
}
},
axisLabel: {
color: '#70AFD8' ,
},
//网格样式
splitLine: {
show: true,
lineStyle:{
color: '#1D5179',
width: 1,
type: 'dashed'
}
}
},
progressive: 20000,
series: [
{
name: '室外温度',
type: 'line',
//smooth: true,
showSymbol: false,
data: seriesdata1,
//折线图在数据量远大于像素点时候的降采样策略,开启后可以有效的优化图表的绘制效率,默认关闭,也就是全部绘制不过滤数据点。
// 可选:
// 'lttb' 采用 Largest-Triangle-Three-Bucket 算法,可以最大程度保证采样后线条的趋势,形状和极值。
// 'average' 取过滤点的平均值
// 'min' 取过滤点的最小值
// 'max' 取过滤点的最大值
// 'minmax' 取过滤点绝对值的最大极值 (从 v5.5.0 开始支持)
// 'sum' 取过滤点的和
sampling: 'lttb',
//开启大数据量优化,在数据特别多而出现图形卡顿时候开启
large:true,
},
{
name: '场馆温度',
type: 'line',
//smooth: true,
showSymbol: false,
data: seriesdata2,
areaStyle: {
// 线性渐变,前四个参数分别是 x0, y0, x2, y2, 范围从 0 - 1相当于在图形包围盒中的百分比如果 globalCoord 为 `true`,则该四个值是绝对的像素位置
color: {
type: 'linear',
x: 0,
y: 1,
x2: 0,
y2: 0,
colorStops: [{
offset: 0, color: 'rgba(255,255,255,0)' // 0% 处的颜色
}, {
offset: 1, color: 'rgba(214,255,0,0.7)' // 100% 处的颜色
}],
global: false // 缺省为 false
}
},
//折线图在数据量远大于像素点时候的降采样策略,开启后可以有效的优化图表的绘制效率,默认关闭,也就是全部绘制不过滤数据点。
// 可选:
// 'lttb' 采用 Largest-Triangle-Three-Bucket 算法,可以最大程度保证采样后线条的趋势,形状和极值。
// 'average' 取过滤点的平均值
// 'min' 取过滤点的最小值
// 'max' 取过滤点的最大值
// 'minmax' 取过滤点绝对值的最大极值 (从 v5.5.0 开始支持)
// 'sum' 取过滤点的和
sampling: 'lttb',
//开启大数据量优化,在数据特别多而出现图形卡顿时候开启
large:true,
},
]
};
lifeChart = echarts.init(document.getElementById(id));
lifeChart.setOption(option,true);
}
}
function homePage() {
$('.jump-area').hide();
$('.sub-region').hide();
$('.homePage').show();
}
function jumpArea(el) {
$('.homePage').hide();
$('.sub-region').hide();
$('.jump-area').show();
$('.'+el).show();
}
//添加千分位符合
function toThousands(num) {
var nums =num;
var re=/\d{1,3}(?=(\d{3})+$)/g;
var n1=0;
if(nums!=null && nums!='' && nums!=undefined){
n1=nums.toString().replace(/^(\d+)((\.\d+)?)$/,function(s,s1,s2){return s1.replace(re,"$&,")+s2;});
}
return n1;
}
var locationhref = function (url) {
window.location.href = ext.contextPath + url;
}
var getWeather = function () {
$.post(ext.contextPath + "/work/weather/getList.do", {page: 1,rows:1,bizid:unitId,type:0}, function(data) {
if (data.total >0){
let temp = data.rows[0].temp;
let weather = data.rows[0].weather;
let precip = data.rows[0].precip;
let windSpeed = data.rows[0].windspeed;
var reg = new RegExp("/h","g");// 加'g',删除字符串里所有的/h
windSpeed=windSpeed.replace(reg,"");
let humidity = data.rows[0].humidity;
let vis = data.rows[0].vis;
$("#temperature").html(temp);
$("#weather").html(weather);
$("#precip").html(precip);
$("#windSpeed").html(windSpeed);
$("#humidity").html(humidity);
$("#vis").html(vis);
}else{
$.post(ext.contextPath + "/work/weather/getList.do", {page: 1,rows:1,bizid:unitId,type:1}, function(data) {
if (data.total >0){
let temp = data.rows[0].temp;
let weather = data.rows[0].weather;
let precip = data.rows[0].precip;
let windSpeed = data.rows[0].windspeed;
var reg = new RegExp("/h","g");// 加'g',删除字符串里所有的/h
windSpeed=windSpeed.replace(reg,"");
let humidity = data.rows[0].humidity;
let vis = data.rows[0].vis;
$("#temperature").html(temp);
$("#weather").html(weather);
$("#precip").html(precip);
$("#windSpeed").html(windSpeed);
$("#humidity").html(humidity);
$("#vis").html(vis);
}
},'json');
}
},'json');
}
function openExpoHomepage() {
if('${param.link}'==''){
window.open(ext.contextPath + "/expo/homepage.do?link=expo");
}
}
var client = null;
var dataType = 0;
function initialMqtt(mqttId) {
const options = {
clean: true,
connectTimeout: 10000,
clientId: mqttId,
username: "admin",
password: 'public'
}
const connectUrl = '${hostWeb}';
//console.log(connectUrl);
client = mqtt.connect(connectUrl, options);
//当重新连接启动触发回调
client.on('reconnect', function () {
// console.log('正在重连.....');
});
//连接断开后触发的回调
client.on("close", function () {
console.log('客户端已断开连接.....');
});
//从broker接收到断开连接的数据包后发出。MQTT 5.0特性
client.on("disconnect", function (packet) {
console.log('从broker接收到断开连接的数据包.....' + packet);
});
//客户端脱机下线触发回调
client.on("offline", function () {
console.log('客户端脱机下线.....');
});
//当客户端无法连接或出现错误时触发回调
client.on("error", (error) => {
console.log('客户端出现错误.....' + error);
});
//当客户端发送任何数据包时发出。这包括published()包以及MQTT用于管理订阅和连接的包
client.on("packetsend", (packet) => {
// console.log('客户端已发出数据包:' + packet);
});
//当客户端接收到任何数据包时发出。这包括来自订阅主题的信息包以及MQTT用于管理订阅和连接的信息包
client.on("packetreceive", (packet) => {
// console.log('收到:' + packet);
});
//成功连接后触发的回调
client.on("connect", function (connack) {
// layer.msg('成功连接上mq服务器');
console.log('成功连接上mqtt服务器');
//订阅某主题
/**
* client.subscribe(topic/topic array/topic object, [options], [callback])
* topic:一个string类型的topic或者一个topic数组,也可以是一个对象
* options
*/
client.subscribe('021SHSB_UP_VUE', {qos: 2});
//每隔2秒发布一次数据
// setInterval(publish, 2000)
});
function publish() {
//发布数据
/**
* client.publish(topic,message,[options], [callback])
*
* message: Buffer or String
* options:{
* qos:0, //默认0
* retain:false, //默认false
* dup:false, //默认false
* properties:{}
* }
* callback:function (err){}
*/
const message = "h5 message " + Math.random() + new Date();
client.publish("testtopic/123", message, {qos: 2});
}
//当客户端接收到发布消息时触发回调
/**
* topic:收到的数据包的topic
* message:收到的数据包的负载playload
* packet:收到的数据包
*/
client.on('message', (topic, message, packet) => {
//console.log(topic);
if (topic == '021SHSB_UP_VUE' && dataType == 0) {
dataType = 1;
//秒级数据保留秒数当前为6小时
var dataNumber = 21600;
var topic_json = JSON.parse(message.toString());
//console.log(topic_json);
if(topic_json!=null && topic_json!=undefined && topic_json!=''){
var windDirection = '0';
var transition = '0';
var p2_temperature_sw = 0;
var p2_temperature_cg = 0;
var p2_temperature_date = '';
var p3_temperature_sw = 0;
var p3_temperature_cg = 0;
var p3_temperature_date = '';
var p4_temperature_sw = 0;
var p4_temperature_cg = 0;
var p4_temperature_date = '';
for(var i=0;i<topic_json.length;i++){
var mpdata = topic_json[i];
var value = mpdata.parmvalue;
var measuredt = mpdata.measuredt.substr(0,19);
var numtail=0;
var dataMax=0;
var rate = 1;
if(pageCode.indexOf(mpdata.id)!=-1){
var arrs = pageCodeType[pageCode.indexOf(mpdata.id)];
//console.log(pageCode);
//console.log(arrs);
for(var a=0;a<arrs.length;a++){
arr = arrs[a];
//console.log(arr);
if(arr.visualCacheData!=null
&& arr.visualCacheData!=undefined
&& arr.visualCacheData!=''){
var visualCacheData = arr.visualCacheData;
if(arr.mPoint!=null && arr.mPoint!=undefined && arr.mPoint!=''){
var mPoint = arr.mPoint;
if(mPoint.alarmmax!=null && mPoint.alarmmax!=undefined && (mPoint.alarmmax!='' || mPoint.alarmmax===0)){
dataMax = mPoint.alarmmax;
}
if(mPoint.numtail!=null && mPoint.numtail!=undefined && (mPoint.numtail!='' || mPoint.numtail===0)){
numtail = mPoint.numtail;
}
}
if(visualCacheData.numtail!=null && visualCacheData.numtail!=undefined && (visualCacheData.numtail!='' || visualCacheData.numtail===0)){
numtail = visualCacheData.numtail;
}
if(visualCacheData.rate!=null && visualCacheData.rate!=undefined && (visualCacheData.rate!='' || visualCacheData.rate===0)){
rate = visualCacheData.rate;
}
}else{
var mPoint = arr.mPoint;
if(mPoint!=null && mPoint!=undefined && mPoint!=''){
if(mPoint.alarmmax!=null && mPoint.alarmmax!=undefined && (mPoint.alarmmax!='' || mPoint.alarmmax===0)){
dataMax = mPoint.alarmmax;
}
if(mPoint.numtail!=null && mPoint.numtail!=undefined && (mPoint.numtail!='' || mPoint.numtail===0)){
numtail = mPoint.numtail;
}
}
}
value = parseFloat(value)*rate;
value = value.toFixed(numtail);
if (arr.elementCode=='qdkqc_number_all') {
console.log(value);
}
if ($("." + arr.elementCode).length > 0) {
$("." + arr.elementCode).html(toThousands(value));
}
if($("."+arr.elementCode).parent().find('.nowdate').length > 0){
$("."+arr.elementCode).parent().find('.nowdate').html(nowdate.substring(11,16));
}
/*if(arr.elementCode.indexOf("number_open")!= -1){
if(Number(value)>0){
$("."+arr.elementCode).parent().removeClass("opacity-4");
}else{
$("."+arr.elementCode).parent().addClass("opacity-4");
}
}*/
if(arr.elementCode=='windDirection'){
windDirection = value;
switch(windDirection) {
case '1':
windDirection = '北风';
break;
case '2':
windDirection = '东北风';
break;
case '3':
windDirection = '东风';
break;
case '4':
windDirection = '东南风';
break;
case '5':
windDirection = '南风';
break;
case '6':
windDirection = '西南风';
break;
case '7':
windDirection = '西风';
break;
case '8':
windDirection = '西北风';
break;
default:
windDirection = '无';
}
if($("#windDirection").length > 0){
$("#windDirection").html(windDirection);
}
}
if(arr.elementCode=='transition'){
transition = value;
//left-equ-czfj,left-equ-xhfj,left-equ-qdkqc,left-equ-mqddc,left-equ-mqby,left-equ-gylw,left-equ-zyl,left-equ-srq
var equEle = [];
var equEle_hot = ['left-equ-srq','left-equ-mqby','left-equ-mqddc','left-equ-qdkqc','left-equ-czfj'];
var equEle_cold = ['left-equ-mqby','left-equ-mqddc','left-equ-qdkqc','left-equ-xhfj'];
var equEle_transition = ['left-equ-zyl','left-equ-gylw','left-equ-mqby','left-equ-mqddc','left-equ-qdkqc','left-equ-xhfj'];
if($("#transition").length > 0){
switch(transition) {
case '0':
//$("#transition").attr("src",ext.contextPath + "/IMG/expo/cold.png");
equEle = equEle_cold;
break;
case '1':
//$("#transition").attr("src",ext.contextPath + "/IMG/expo/hot.png");
equEle = equEle_hot;
break;
default:
//$("#transition").attr("src",ext.contextPath + "/IMG/expo/transition.png");
equEle = equEle_transition;
}
}
if(equEle!=null && equEle.length>0) {
$(".left-equ").each(function(i){//i表示下标索引
if(!$(this).hasClass("opacity-4")){
$(this).addClass("opacity-4");
}
});
for (var e = 0; e < equEle.length; e++) {
$("." + equEle[e]).removeClass("opacity-4");
$("." + equEle[e]).parent().prepend($("." + equEle[e]));
}
}
}
if(arr.elementCode=='p2_temperature_sw'){
p2_temperature_sw = value;
p2_temperature_date = measuredt;
if(p2_temperature_sw_seriesdata.length>dataNumber){
p2_temperature_sw_seriesdata.shift();
}
p2_temperature_sw_seriesdata.push([p2_temperature_date,p2_temperature_sw]);
}
if(arr.elementCode=='p2_temperature_cg'){
p2_temperature_cg = value;
p2_temperature_date = measuredt;
if(p2_temperature_cg_seriesdata.length>dataNumber){
p2_temperature_cg_seriesdata.shift();
}
p2_temperature_cg_seriesdata.push([p2_temperature_date,p2_temperature_cg]);
}
if(arr.elementCode=='p3_temperature_sw'){
p3_temperature_sw = value;
p3_temperature_date = measuredt;
if(p3_temperature_sw_seriesdata.length>dataNumber){
p3_temperature_sw_seriesdata.shift();
}
p3_temperature_sw_seriesdata.push([p3_temperature_date,p3_temperature_sw]);
}
if(arr.elementCode=='p3_temperature_cg'){
p3_temperature_cg = value;
p3_temperature_date = measuredt;
if(p3_temperature_cg_seriesdata.length>dataNumber){
p3_temperature_cg_seriesdata.shift();
}
p3_temperature_cg_seriesdata.push([p3_temperature_date,p3_temperature_cg]);
}
if(arr.elementCode=='p4_temperature_sw'){
p4_temperature_sw = value;
p4_temperature_date = measuredt;
if(p4_temperature_sw_seriesdata.length>dataNumber){
p4_temperature_sw_seriesdata.shift();
}
p4_temperature_sw_seriesdata.push([p4_temperature_date,p4_temperature_sw]);
}
if(arr.elementCode=='p4_temperature_cg'){
p4_temperature_cg = value;
p4_temperature_date = measuredt;
if(p4_temperature_cg_seriesdata.length>dataNumber){
p4_temperature_cg_seriesdata.shift();
}
p4_temperature_cg_seriesdata.push([p4_temperature_date,p4_temperature_cg]);
}
}
}
}
if(p2_temperature_sw_seriesdata!=null && p2_temperature_cg_seriesdata.length>0){
echarts_line('p2_temperature',p2_temperature_sw_seriesdata,p2_temperature_cg_seriesdata);
}
if(p3_temperature_sw_seriesdata!=null && p3_temperature_cg_seriesdata.length>0){
echarts_line('p3_temperature',p3_temperature_sw_seriesdata,p3_temperature_cg_seriesdata);
}
if(p4_temperature_sw_seriesdata!=null && p4_temperature_cg_seriesdata.length>0){
echarts_line('p4_temperature',p4_temperature_sw_seriesdata,p4_temperature_cg_seriesdata);
}
}
dataType = 0;
}
});
//页面离开自动断开连接
$(window).bind("beforeunload", () => {
// console.log("客户端窗口关闭,断开连接");
client.disconnect();
})
}
</script>
</head>
<body style="overflow-x: auto;">
<div class="whole-body content-wrapper-bg content-wrapper-bg-darkblue">
<!-- BEGIN CONTAINER -->
<input type="hidden" name="jsp_id" id="jsp_id" value="expo_homepage">
<div class="whole-body content-wrapper-bg content-wrapper-bg-main text-center font-size-36 font-color-white">
<%--<div class="whole-element top-title"><iframe style="height:100%;width:100%;" frameborder="1" scrolling="no" id="top-url"></iframe></div>--%>
<div class="whole-element top-title cursor-pointer" onclick="openExpoHomepage()">上海温室花园环境控制系统</div>
<div class="whole-element top-weather">
<div class="top-weather-element border-right" style="width: 233.5px;">
<div class="text-right row-100" style="float: left;width: 120px;">
<div class="top-date font-size-18"></div>
<div class="top-time font-size-30"></div>
</div>
<div class="row-100" style="float: left;width: 111.4px;">
<img class="dayOrNight" src="<%=request.getContextPath()%>/IMG/expo/day.png">
</div>
</div>
<div class="top-weather-element border-right" style="width: 221px;">
<div class="col-xs-6 row-100 line-height-2 font-size-33" id="windDirection"></div>
<div class="col-xs-6 row-100 text-left ">
<div class="font-size-14">当前温度</div>
<div class="font-size-22"><span class="temperature font-size-35">0</span>℃</div>
</div>
</div>
<div class="top-weather-element border-right text-left" style="width: 172px;">
<div class="col-xs-12 font-size-18 row-50 line-height-2 padding-left-20">降雨量<span class="precip">0</span>mm/h</div>
<%--<div class="col-xs-12 font-size-18 row-50 line-height-2 padding-left-20">气压<span class="illumination">0</span>hpa</div>--%>
<div class="col-xs-12 font-size-18 row-50 line-height-2 padding-left-20">光照度<span class="illumination">0</span>lux</div>
</div>
<div class="top-weather-element border-right text-left" style="width: 140px;">
<div class="col-xs-12 font-size-18 row-50 line-height-2 padding-left-15">风速<span class="windSpeed">0</span>m/s</div>
<div class="col-xs-12 font-size-18 row-50 line-height-2 padding-left-15">湿度<span class="humidity">0</span>%</div>
</div>
<div class="top-weather-element padding-leftright-15">
<img src="<%=request.getContextPath()%>/IMG/expo/weather.png" id="transition">
</div>
</div>
<div class=" whole-element top-menu">温室总览</div>
<div class="whole-element top-menu-list">
<div class="top-menu-list-option cursor-pointer" onclick="locationhref('/process/dataVisualFrame/view.do?frameId=d7ba67ff2b124d679c325852811bef3c&unitId=021SHSB')">1号馆海市沙洲</div>
<div class="top-menu-list-option cursor-pointer" onclick="locationhref('/process/dataVisualFrame/view.do?frameId=d2535488d8934c83b6630279b9c2d547&unitId=021SHSB')">2号馆云上森林</div>
<div class="top-menu-list-option cursor-pointer" onclick="locationhref('/process/dataVisualFrame/view.do?frameId=52713970e59d42c1959bf2c610ce071a&unitId=021SHSB')">3号馆云雾峡谷</div>
</div>
<div class="whole-element whole-left font-size-28">
<div class="left-equ left-equ-czfj opacity-4">
<span class="left-equ-number left-equ-open font-color-green czfj_number_open">0</span>
<span class="left-equ-number left-equ-close font-color-red czfj_number_close">0</span>
<div class="left-equ-number left-equ-all font-size-14">共: <span class="czfj_number_all">0</span>组</div>
</div>
<div class="left-equ left-equ-xhfj opacity-4">
<span class="left-equ-number left-equ-open font-color-green xhfj_number_open">0</span>
<span class="left-equ-number left-equ-close font-color-red xhfj_number_close">0</span>
<div class="left-equ-number left-equ-all font-size-14">共: <span class="xhfj_number_all">0</span>组</div>
</div>
<div class="left-equ left-equ-qdkqc opacity-4">
<span class="left-equ-number left-equ-open font-color-green qdkqc_number_open">0</span>
<span class="left-equ-number left-equ-close font-color-red qdkqc_number_close">0</span>
<div class="left-equ-number left-equ-all font-size-14">共: <span class="qdkqc_number_all">0</span>组</div>
</div>
<div class="left-equ left-equ-mqddc opacity-4">
<span class="left-equ-number left-equ-open font-color-green mqddc_number_open">0</span>
<span class="left-equ-number left-equ-close font-color-red mqddc_number_close">0</span>
<div class="left-equ-number left-equ-all font-size-14">共: <span class="mqddc_number_all">0</span>组</div>
</div>
<div class="left-equ left-equ-mqby opacity-4">
<span class="left-equ-number left-equ-open font-color-green mqby_number_open">0</span>
<span class="left-equ-number left-equ-close font-color-red mqby_number_close">0</span>
<div class="left-equ-number left-equ-all font-size-14">共: <span class="mqby_number_all">0</span>组</div>
</div>
<div class="left-equ left-equ-gylw opacity-4">
<span class="left-equ-number left-equ-open font-color-green gylw_number_open">0</span>
<span class="left-equ-number left-equ-close font-color-red gylw_number_close">0</span>
<div class="left-equ-number left-equ-all font-size-14">共: <span class="gylw_number_all">0</span>组</div>
</div>
<div class="left-equ left-equ-zyl opacity-4">
<span class="left-equ-number left-equ-open font-color-green zyl_number_open">0</span>
<span class="left-equ-number left-equ-close font-color-red zyl_number_close">0</span>
<div class="left-equ-number left-equ-all font-size-14">共: <span class="zyl_number_all">0</span>组</div>
</div>
<div class="left-equ left-equ-srq opacity-4">
<span class="left-equ-number left-equ-open font-color-green srq_number_open">0</span>
<span class="left-equ-number left-equ-close font-color-red srq_number_close">0</span>
<div class="left-equ-number left-equ-all font-size-14">共: <span class="srq_number_all">0</span>组</div>
</div>
</div>
<div class=" whole-element p-data p2-data">
<div class="p-data-title"></div>
<div class="p-data-pie font-size-28 line-height-1">
<div class="whole-element p-data-pie-number p-data-pie-number-top p2-temperature">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p2-humidity">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p2-co2">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p2-windSpeed">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p2-illuminance">0</div>
</div>
<div class="p-data-line" id="p2_temperature"></div>
</div>
<div class=" whole-element p-data p3-data">
<div class="p-data-title"></div>
<div class="p-data-pie font-size-28 line-height-1">
<div class="whole-element p-data-pie-number p-data-pie-number-top p3-temperature">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p3-humidity">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p3-co2">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p3-windSpeed">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p3-illuminance">0</div>
</div>
<div class="p-data-line" id="p3_temperature"></div>
</div>
<div class=" whole-element p-data p4-data">
<div class="p-data-title"></div>
<div class="p-data-pie font-size-28 line-height-1">
<div class="whole-element p-data-pie-number p-data-pie-number-top p4-temperature">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p4-humidity">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p4-co2">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p4-windSpeed">0</div>
<div class="whole-element p-data-pie-number p-data-pie-number-top p4-illuminance">0</div>
</div>
<div class="p-data-line" id="p4_temperature"></div>
</div>
<div class=" whole-element p1-data">
<div style="width: 100%;height: 100%;position: relative">
<div class="whole-element p1-data-element now-people-number-element font-size-14"><span class="now-people-number font-size-30 font-color-lightBlue">0</span>人</div>
<div class="whole-element p1-data-element max-bear-capacity-element font-size-14"><span class="max-bear-capacity font-size-30 font-color-lightBlue">0</span>人</div>
<div class="whole-element p1-data-element p1-temperature font-size-40 line-height-1">0</div>
<div class="whole-element p1-data-element p1-humidity font-size-40 line-height-1">0</div>
</div>
</div>
<div class="whole-element cursor-pointer p-url p2-url" onclick="locationhref('/process/dataVisualFrame/view.do?frameId=d7ba67ff2b124d679c325852811bef3c&unitId=021SHSB&userId=emp01')"></div>
<div class="whole-element cursor-pointer p-url p3-url" onclick="locationhref('/process/dataVisualFrame/view.do?frameId=d2535488d8934c83b6630279b9c2d547&unitId=021SHSB&userId=emp01')"></div>
<div class="whole-element cursor-pointer p-url p4-url" onclick="locationhref('/process/dataVisualFrame/view.do?frameId=52713970e59d42c1959bf2c610ce071a&unitId=021SHSB&userId=emp01')"></div>
</div>
</div>
</body>
</html>