12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343 |
- <!DOCTYPE html>
- <html class="x-admin-sm">
- <head>
- <meta charset="UTF-8">
- <meta name="renderer" content="webkit">
- <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
- <meta name="viewport"
- content="width=device-width,user-scalable=yes, minimum-scale=0.4, initial-scale=0.8,target-densitydpi=low-dpi"/>
- <link rel="shortcut icon" href="https://osscold.baozhida.cn/favicon.ico">
- <link rel="bookmark" href="https://osscold.baozhida.cn/favicon.ico">
- <link rel="stylesheet" href="https://osscold.baozhida.cn/css/font.css">
- <link rel="stylesheet" href="https://osscold.baozhida.cn/css/xadmin.css">
- <script src="https://osscold.baozhida.cn/js/jquery.min.js"></script>
- <script src="https://osscold.baozhida.cn/js/jquery.cookie.min.js"></script>
- <script src="https://osscold.baozhida.cn/lib/layui/layui.js" charset="utf-8"></script>
- <script src="https://osscold.baozhida.cn/js/echarts.js" charset="utf-8"></script>
- <script type="text/javascript" src="https://osscold.baozhida.cn/js/xadmin.js"></script>
- </head>
- <body>
- <div class="x-nav">
- <span class="layui-breadcrumb">
- <a href="">首页</a>
- <a><cite>宝智达</cite></a>
- </span>
- <a class="layui-btn layui-btn-normal" style="line-height:1.6em;margin-top:3px;float:right"
- onclick="location.reload()" title="刷新">
- <i class="layui-icon layui-icon-refresh" style="line-height:30px"></i>
- </a>
- </div>
- <div class="layui-fluid">
- <div class="layui-row">
- <!-- // 传感器 选择-->
- <div class="layui-col-md4">
- <div class="layui-card">
- <div class="layui-card-body ">
- <form class="layui-form layui-col-space5" οnsubmit="return false;">
- <div class="layui-input-inline layui-show-xs-block">
- <input value="" type="text" id="D_T_sn" name="D_T_sn" placeholder="请输入 SN"
- autocomplete="off"
- class="layui-input"></div>
- <div class="layui-input-inline layui-show-xs-block">
- <input value="" type="text" id="D_Name" name="D_Name" placeholder="请输入 传感器名称"
- autocomplete="off"
- class="layui-input"></div>
- <div class="layui-input-inline layui-show-xs-block">
- <select id="Class_1" name="Class_1">
- <option value=0>所有分类</option>
- {{range $index, $elem := .Class_List}}
- <option value={{$elem.Id}}>{{$elem.T_name}}
- </option>
- {{end}}
- </select>
- </div>
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="get_DeviceSensor_list(0)">
- <i class="layui-icon"></i></div>
- </div>
- </form>
- <hr>
- </div>
- <div class="layui-card-body " style="margin-top: -20px">
- <div id="DeviceSensor_list" style="width: 98%; overflow: hidden;max-height: 616px;overflow-y: auto">
- <div style="color: #1E9FFF;text-align: center;font-size: 15px;margin-top: 150px">加载中...</div>
- <!-- <div class="layui-col"-->
- <!-- style="height: 52px;background-color: #fafafa;border-radius:5px;padding-top: 2px;">-->
- <!-- <img style="float: left;width: 50px;margin: 0px 10px" src="https://osscold.baozhida.cn/images/温湿度传感器-1.png"-->
- <!-- height="50"-->
- <!-- width="40"/>-->
- <!-- <div style="float: left;">-->
- <!-- <div style="margin-top: 4px;font-size: 14px">士大夫撒地方递四方速递</div>-->
- <!-- <div style="margin-top: -3px;font-size: 12px">SN:KF20210510143443 [1]</div>-->
- <!-- </div>-->
- <!-- <div class="layui-card-header"-->
- <!-- style="float: right;padding-left: 0px;padding-top: 6px;color: #1E9FFF">-->
- <!-- 》-->
- <!-- </div>-->
- <!-- </div>-->
- </div>
- </div>
- <div class="layui-card-body ">
- <div style="height: 70px">
- <div class="layui-card-body " style="text-align: center">
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="Checkboxs_All()">
- <i class="layui-icon">全选择</i>
- </div>
- </div>
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="Checkboxs_Allno()">
- <i class="layui-icon">全取消</i>
- </div>
- </div>
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="Checkboxs_Allto()">
- <i class="layui-icon">反选</i>
- </div>
- </div>
- <div style="color: #1E9FFF;text-align: center" id="DeviceSensor_list_Pages_x"></div>
- </div>
- </div>
- </div>
- </div>
- </div>
- <!-- // 传感器 选择-->
- <div class="layui-col-md8">
- <div class="layui-card">
- <div class="layui-card-body ">
- <form class="layui-form layui-col-space5" οnsubmit="return false;">
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="quick_1()">
- <i class="layui-icon">今天</i>
- </div>
- </div>
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="quick_2()">
- <i class="layui-icon">近3天</i>
- </div>
- </div>
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="quick_3()">
- <i class="layui-icon">近5天</i>
- </div>
- </div>
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="quick_4()">
- <i class="layui-icon">近7天</i>
- </div>
- </div>
- <div class="layui-input-inline layui-show-xs-block">
- 自定义时间:
- </div>
- <div class="layui-inline layui-show-xs-block">
- <input class="layui-input" autocomplete="off" placeholder="开始日" name="Time_start" id="Time_start" lay-key="1"></div>
- <div class="layui-inline layui-show-xs-block">
- <input class="layui-input" autocomplete="off" placeholder="截止日" name="Time_end" id="Time_end" lay-key="2"></div>
- <div class="layui-input-inline layui-show-xs-block">
- <div class="layui-btn layui-btn-normal"
- onclick="get_DeviceSensor_data(0)">
- <i class="layui-icon"></i>
- </div>
- </div>
- </form>
- <hr>
- </div>
- <div class="layui-card-body " >
- <div style="width: 99%;height:35px;">
- <h2 id="T_myChart_time" style="text-align: center"></h2>
- </div>
- <div id="T_myChart_1" style="width: 99%;height:335px;"></div>
- <div style="width: 99%;height:35px;">
- <h3 id="T_myChart_1_title" style="text-align: center;color: #0bace6;"></h3>
- </div>
- <div id="T_myChart_2" style="width: 99%;height:335px;"></div>
- <div style="width: 99%;height:35px;">
- <h3 id="T_myChart_2_title" style="text-align: center;color: #0bace6;"></h3>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </div>
- </body>
- <script>
- //获取GET
- function getPar(par) {
- //获取当前URL
- var local_url = document.location.href;
- //获取要取得的get参数位置
- var get = local_url.indexOf(par + "=")
- ;
- if (get == -1) {
- return false;
- }
- //截取字符串
- //截取字符串
- var get_par = local_url.slice(par.length + get + 1);
- //判断截取后的字符串是否还有其他get参数
- var nextPar = get_par.indexOf("&")
- ;
- if (nextPar != -1) {
- get_par = get_par.slice(0, nextPar);
- }
- return get_par;
- }
- layui.use(['laydate', 'form'],
- function () {
- var laydate = layui.laydate;
- //执行一个laydate实例
- laydate.render({
- elem: '#Time_start' //指定元素
- ,type: 'datetime'
- });
- //执行一个laydate实例
- laydate.render({
- elem: '#Time_end' //指定元素
- ,type: 'datetime'
- });
- });
- var T_name = ""
- var T_sn = ""
- var T_class_id = 0
- var Admin_rh = "{{$.Admin_r.Admin_rh}}"
- var T_id = 0
- var T_sn_T_id = ""
- var Time_start = ""
- var Time_end = ""
- var DeviceSensor_snid_list = ""
- var DeviceSensor_lite = []
- var DeviceSensor_data = []
- /// --------------- 传感器列表
- // 页面 加载完成后执行
- window.onload = function () {
- console.log("页面 加载完成后执行")
- quick_1()
- get_DeviceSensor_list(0)
- }
- function ChangeDiv(e) {
- var divs = document.getElementsByClassName("ChangeDiv");
- var len = divs.length;
- for(var i=0;i<len;i++){
- divs[i].style.border = "1px solid #ffffff";
- }
- e.parentNode.style.border = "1px solid #ed0000";
- get_DeviceSensor_data()
- }
- // 今天
- function quick_1() {
- var myDate = new Date();
- y = myDate.getFullYear(); //获取当前年份(2位)
- m = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
- d = myDate.getDate(); //获取当前日(1-31)
- console.log(y+"-"+m+"-"+d)
- Time_start = y+"-"+m+"-"+d + " 00:00:00"
- Time_end = y+"-"+m+"-"+d + " 23:59:59"
- $("#Time_start").val(Time_start)
- $("#Time_end").val(Time_end)
- get_DeviceSensor_data(0)
- }
- // 近一周
- function quick_2() {
- var myDate = new Date();
- y = myDate.getFullYear(); //获取当前年份(2位)
- m = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
- d = myDate.getDate(); //获取当前日(1-31)
- console.log(y+"-"+m+"-"+d)
- Time_end = y+"-"+m+"-"+d + " 23:59:59"
- $("#Time_end").val(Time_end)
- myDate=myDate.setDate(myDate.getDay() - 2);
- myDate=new Date(myDate);
- y = myDate.getFullYear(); //获取当前年份(2位)
- m = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
- d = myDate.getDate(); //获取当前日(1-31)
- Time_start = y+"-"+m+"-"+d + " 00:00:00"
- $("#Time_start").val(Time_start)
- get_DeviceSensor_data(0)
- }
- // 近一月
- function quick_3() {
- var myDate = new Date();
- y = myDate.getFullYear(); //获取当前年份(2位)
- m = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
- d = myDate.getDate(); //获取当前日(1-31)
- console.log(y+"-"+m+"-"+d)
- Time_end = y+"-"+m+"-"+d + " 23:59:59"
- $("#Time_end").val(Time_end)
- myDate=myDate.setDate(myDate.getDate() - 4);
- myDate=new Date(myDate);
- y = myDate.getFullYear(); //获取当前年份(2位)
- m = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
- d = myDate.getDate(); //获取当前日(1-31)
- Time_start = y+"-"+m+"-"+d + " 00:00:00"
- $("#Time_start").val(Time_start)
- get_DeviceSensor_data(0)
- }
- // 近一季度
- function quick_4() {
- var myDate = new Date();
- y = myDate.getFullYear(); //获取当前年份(2位)
- m = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
- d = myDate.getDate(); //获取当前日(1-31)
- console.log(y+"-"+m+"-"+d)
- Time_end = y+"-"+m+"-"+d + " 23:59:59"
- $("#Time_end").val(Time_end)
- myDate=myDate.setDate(myDate.getDate() - 6);
- myDate=new Date(myDate);
- y = myDate.getFullYear(); //获取当前年份(2位)
- m = myDate.getMonth()+1; //获取当前月份(0-11,0代表1月)
- d = myDate.getDate(); //获取当前日(1-31)
- Time_start = y+"-"+m+"-"+d + " 00:00:00"
- $("#Time_start").val(Time_start)
- get_DeviceSensor_data(0)
- }
- //获取div中所有的复选框 .value
- var checkboxs = document.getElementsByClassName("checkboxxx");
- function Checkboxs_All () {
- for(var i = 0;i < checkboxs.length; i++){
- checkboxs[i].checked = true
- }
- }
- function Checkboxs_Allno () {
- for(var i = 0;i < checkboxs.length; i++){
- checkboxs[i].checked = false
- }
- }
- function Checkboxs_Allto () {
- for(var i = 0;i < checkboxs.length; i++){
- if(checkboxs[i].checked){
- checkboxs[i].checked = false
- }else {
- checkboxs[i].checked = true
- }
- }
- }
- function Checkboxs_GetAll () {
- DeviceSensor_snid_list = ""
- for(var i = 0;i < checkboxs.length; i++){
- if(checkboxs[i].checked){
- DeviceSensor_snid_list = DeviceSensor_snid_list + checkboxs[i].value + "|"
- }
- }
- }
- function get_DeviceSensor_list(page) {
- T_sn = $("#D_T_sn").val();
- T_name = $("#D_Name").val();
- T_class_id = $("#Class_1").val();
- $.ajax({
- type: 'POST',
- url: 'Device_Sensor_List',//发送请求
- data: {
- User_tokey: $.cookie("User_tokey"),
- T_sn: T_sn,
- T_name: T_name,
- T_class_id: parseInt(T_class_id),
- page: page,
- page_z: 100,
- },
- success: function (result) {
- console.log(result)
- if (result.Code == 200) {
- if(page == 0)
- $('#DeviceSensor_list').html("")
- // $('#DeviceSensor_list_Pages').html("")
- // $('#DeviceSensor_list_Pages_x').html("")
- DeviceSensor_lite = result.Data.DeviceSensor_lite
- if (DeviceSensor_lite.length == 0) {
- $('#DeviceSensor_list').html("<div style=\"color: #1E9FFF;text-align: center;font-size: 15px;margin-top: 150px\">没有设备</div>")
- return
- }
- Add_DeviceSensor_list(result.Data.DeviceSensor_lite) // 列表
- // Add_DeviceSensor_list_Pages(result.Data.Pages) // 分页
- $('#DeviceSensor_list_Pages_x').html(" 传感器 总数:" + result.Data.Num);
- if(result.Data.Page_size > result.Data.Page ){
- get_DeviceSensor_list(result.Data.Page+1)
- }
- } else {
- }
- }
- });
- return false
- }
- function Add_DeviceSensor_list(DS_lite) {
- for (let i = 0; i < DS_lite.length; i++) {
- if(T_id == 0){
- T_id = DS_lite[i].T_id;
- T_sn_T_id = DS_lite[i].T_sn;
- T_name = DS_lite[i].T_name;
- // get_DeviceSensor_data(0)
- }
- $('#DeviceSensor_list').append("" +
- "<div class=\"layui-col ChangeDiv\" \n" +
- " style=\"border: 1px solid #ffffff;height: 52px;background-color: #fafafa;border-radius:5px;padding-top: 2px;margin-top: 6px;\">\n" +
- " <input type=\"checkbox\" name='checkboxxx' class='checkboxxx' onclick='get_DeviceSensor_data_M()' value='" + DS_lite[i].T_sn + "," + DS_lite[i].T_id + "' style='float: left;width: 18px;height: 18px;margin-top: 16px;margin-left: 10px;'/>" +
- " <img style=\"float: left;width: 50px;margin: 0px 10px\" src=\"https://osscold.baozhida.cn/images/温湿度传感器-1.png\"\n" +
- " height=\"50\"\n" +
- " width=\"40\"/>\n" +
- " <div style=\"float: left;\" onclick=\"ChangeDiv(this);T_id = " + DS_lite[i].T_id + ";T_sn_T_id = '" + DS_lite[i].T_sn + "';T_name = '" + DS_lite[i].T_name + "';\" >\n" +
- " <div style=\"margin-top: 4px;font-size: 14px;height: 24px;\">" + DS_lite[i].T_name + "</div>\n" +
- " <div style=\"margin-top: -3px;font-size: 12px\">SN:" + DS_lite[i].T_sn + " [" + DS_lite[i].T_id + "]</div>\n" +
- " </div>\n" +
- " <div class=\"layui-card-header\" onclick=\"ChangeDiv(this);T_id = " + DS_lite[i].T_id + ";T_sn_T_id = '" + DS_lite[i].T_sn + "';T_name = '" + DS_lite[i].T_name + "';\" \n" +
- " style=\"float: right;padding-left: 0px;padding-top: 6px;color: #1E9FFF\">\n" +
- " \n" +
- " </div>\n" +
- " </div>")
- }
- }
- function get_DeviceSensor_data(page) {
- if($("#Time_start").val().length > 0){
- Time_start = $("#Time_start").val();
- }else {
- Time_start = ""
- }
- if($("#Time_end").val().length > 0){
- Time_end = $("#Time_end").val();
- }else {
- Time_end = ""
- }
- if(T_sn_T_id.length == 0){
- return ;
- }
- $("#T_myChart_time").html(T_name+"["+T_id+"]:" + $("#Time_start").val() + '~' + $("#Time_end").val())
- $.ajax({
- type: 'POST',
- url: 'Device_Sensor_Data',//发送请求
- data: {
- User_tokey: $.cookie("User_tokey"),
- Time_start:Time_start,
- Time_end:Time_end,
- T_sn: T_sn_T_id,
- T_id: T_id,
- page: 0,
- page_z: 9000,
- },
- success: function (result) {
- console.log(result)
- if (result.Code == 200) {
- DeviceSensor_data = result.Data.DeviceSensor_data
- console.log(result.Data.Num)
- if(result.Data.Num == 0){
- // alert("当前没有数据,请尝试一下其他时间段");
- layer.msg('当前没有数据,请尝试一下其他时间段');
- return
- }
- $("#T_myChart_2").show()
- $("#T_myChart_2_title").show()
- if(Admin_rh == 0 && T_sn_T_id.indexOf("YD") != -1){
- $("#T_myChart_2").hide()
- $("#T_myChart_2_title").hide()
- }
- T_fhand(result.Data.DeviceSensor_data)
- } else {
- }
- }
- });
- return false
- }
- function get_DeviceSensor_data_M() {
- if($("#Time_start").val().length > 0){
- Time_start = $("#Time_start").val();
- }else {
- Time_start = ""
- }
- if($("#Time_end").val().length > 0){
- Time_end = $("#Time_end").val();
- }else {
- Time_end = ""
- }
- Checkboxs_GetAll()
- $("#T_myChart_time").html($("#Time_start").val() + '~' + $("#Time_end").val())
- console.log("DeviceSensor_snid_list:",DeviceSensor_snid_list)
- // KF202201241934253,50|
- if(DeviceSensor_snid_list.length < 3) return
- DeviceSensor_snid_list_split = DeviceSensor_snid_list.split("|")
- var loading = layer.load(0, {
- shade: false,
- time: 99*1000
- });
- f_myChart_todata_inte() // 初始化数据
- for(var i = 0;i < DeviceSensor_snid_list_split.length ;i++){
- if(DeviceSensor_snid_list_split[i].length < 3) continue
- snid_split = DeviceSensor_snid_list_split[i].split(",")
- console.log("snid_split:",snid_split)
- M_T_n_max = 0
- M_T_n_min = 100
- M_T_n_ave_num = 0
- M_T_n_ave_sum = 0
- M_T_n_overtime = 0
- M_T_n_overtime_a = 0
- M_H_n_max = 0
- M_H_n_min = 100
- M_H_n_ave_num = 0
- M_H_n_ave_sum = 0
- M_H_n_overtime = 0
- M_H_n_overtime_a = 0
- $.ajax({
- type: 'POST',
- url: 'Device_Sensor_Data',//发送请求
- data: {
- User_tokey: $.cookie("User_tokey"),
- Time_start:Time_start,
- Time_end:Time_end,
- T_sn: snid_split[0],
- T_id: snid_split[1],
- page: 0,
- page_z: 9000,
- },
- success: function (result) {
- console.log(result)
- if (result.Code == 200) {
- console.log(result.Data.Num)
- if(result.Data.Num == 0){
- // alert("当前没有数据,请尝试一下其他时间段");
- layer.msg('当前没有数据,请尝试一下其他时间段');
- return
- }
- // T_fhand(result.Data.DeviceSensor_data)
- f_Data_to_myChart(result.Data.DeviceSensor_data)
- layer.close(loading)
- } else {
- }
- }
- });
- }
- return false
- }
- var T_myChart = echarts.init(document.getElementById('T_myChart_1'));
- var H_myChart = echarts.init(document.getElementById('T_myChart_2'));
- </script>
- <!-- 多个 图表-->
- <script>
- // 最高温度、最低温度、平均温度、超标温度累积时长
- var T_myChart_List_M = []
- var H_myChart_List_M = []
- function f_myChart_todata_inte() {
- T_myChart_List_M = [] // 清空
- H_myChart_List_M = [] // 清空
- T_myChart.dispose()
- H_myChart.dispose()
- $("#T_myChart_2").show()
- $("#T_myChart_2_title").show()
- T_myChart = echarts.init(document.getElementById('T_myChart_1'));
- H_myChart = echarts.init(document.getElementById('T_myChart_2'));
- $("#T_myChart_1_title").html("")
- $("#T_myChart_2_title").html("")
- }
- var M_T_n_max = 0
- var M_T_n_min = 0
- var M_T_n_ave_num = 0
- var M_T_n_ave_sum = 0
- var M_T_n_overtime = 0
- var M_T_n_overtime_a = 0
- var M_H_n_max = 0
- var M_H_n_min = 0
- var M_H_n_ave_num = 0
- var M_H_n_ave_sum = 0
- var M_H_n_overtime = 0
- var M_H_n_overtime_a = 0
- function f_Data_to_myChart(data) {
- data_1 = []
- data_2 = []
- for (let i = 0; i < data.length; i++) {
- // 温度
- data_1.unshift([data[i].T_time,data[i].T_t])
- if(data[i].T_t > M_T_n_max){
- M_T_n_max = data[i].T_t
- }
- if(data[i].T_t < M_T_n_min){
- M_T_n_min = data[i].T_t
- }
- M_T_n_ave_num += 1
- M_T_n_ave_sum += data[i].T_t
- if(data[i].T_t <= data[i].T_Tlower || data[i].T_t >= data[i].T_Tupper){
- if(M_T_n_overtime_a == 0){
- console.log(new Date(data[i].T_time),data[i].T_time)
- M_T_n_overtime_a = new Date(data[i].T_time)
- }
- }else {
- if(M_T_n_overtime_a > 0){
- M_T_n_overtime += M_T_n_overtime_a - new Date(data[i].T_time)
- M_T_n_overtime_a = 0
- }
- }
- // 湿度
- data_2.unshift([data[i].T_time,data[i].T_rh])
- if(data[i].T_rh > M_H_n_max){
- M_H_n_max = data[i].T_rh
- }
- if(data[i].T_rh < M_H_n_min){
- M_H_n_min = data[i].T_rh
- }
- M_H_n_ave_num += 1
- M_H_n_ave_sum += data[i].T_rh
- if(data[i].T_rh <= data[i].T_RHlower || data[i].T_rh >= data[i].T_RHupper){
- if(M_H_n_overtime_a == 0){
- console.log(new Date(data[i].T_time),data[i].T_time)
- M_H_n_overtime_a = new Date(data[i].T_time)
- }
- }else {
- if(M_H_n_overtime_a > 0){
- M_H_n_overtime += M_H_n_overtime_a - new Date(data[i].T_time)
- M_H_n_overtime_a = 0
- }
- }
- }
- $("#T_myChart_1_title").html("最高温度:"+M_T_n_max.toFixed(2)+"℃   最低温度"+M_T_n_min.toFixed(2)+"℃   平均温度:"+(M_T_n_ave_sum/M_T_n_ave_num).toFixed(2)+"℃   超标温度累积时长:"+formatSeconds(M_T_n_overtime/10000)+"")
- $("#T_myChart_2_title").html("最高湿度:"+M_H_n_max.toFixed(2)+"%   最低湿度"+M_H_n_min.toFixed(2)+"%   平均湿度:"+(M_H_n_ave_sum/M_H_n_ave_num).toFixed(2)+"%   超标湿度累积时长:"+formatSeconds(M_H_n_overtime/10000)+"")
- T_myChart_List_M.push({
- name: data[0].T_name,
- type: 'line',
- // stack: 'Total',
- smooth: true,
- data: data_1,
- markLine: {
- data: [
- {
- silent:true, //鼠标悬停事件 true没有,false有
- lineStyle:{ //警戒线的样式 ,虚实 颜色
- type:"solid",
- color:"#FF4200",
- width: 3,
- },
- label:{
- position:'end',
- formatter:"下限("+data[0].T_Tlower+"℃)"
- },
- yAxis:data[0].T_Tlower
- },
- {
- silent:true, //鼠标悬停事件 true没有,false有
- lineStyle:{ //警戒线的样式 ,虚实 颜色
- type:"solid",
- color:"#FF4200",
- width: 3,
- },
- label:{
- position:'end',
- formatter:"上限("+data[0].T_Tupper+"℃)"
- },
- yAxis:data[0].T_Tupper
- }
- ]
- }
- })
- H_myChart_List_M.push({
- name: data[0].T_name,
- type: 'line',
- // stack: 'Total',
- smooth: true,
- data: data_2,
- markLine: {
- data: [
- {
- silent:true, //鼠标悬停事件 true没有,false有
- lineStyle:{ //警戒线的样式 ,虚实 颜色
- type:"solid",
- color:"#FF4200",
- width: 3,
- },
- label:{
- position:'end',
- formatter:"下限("+data[0].T_RHlower+"℃)"
- },
- yAxis:data[0].T_RHlower
- },
- {
- silent:true, //鼠标悬停事件 true没有,false有
- lineStyle:{ //警戒线的样式 ,虚实 颜色
- type:"solid",
- color:"#FF4200",
- width: 3,
- },
- label:{
- position:'end',
- formatter:"上限("+data[0].T_RHupper+"℃)"
- },
- yAxis:data[0].T_RHupper
- }
- ]
- }
- })
- var T_myChart_option_1 = {
- // title: {
- // top: '50px',
- // text: T_name+"["+T_id+"]:" + $("#Time_start").val() + '~' + $("#Time_end").val(),
- // textStyle:{
- // fontSize:14,
- // }
- // },
- tooltip: {
- trigger: 'axis'
- },
- toolbox: {
- show: true,
- feature: {
- dataZoom: {
- yAxisIndex: 'none'
- },
- dataView: { readOnly: false },
- magicType: { type: ['line', 'bar'] },
- restore: {},
- saveAsImage: {}
- }
- },
- grid: {
- top: '40px',
- left: '0px',
- right: '70px',
- bottom: '50px',
- containLabel: true
- },
- legend: {
- textStyle:{
- color:"#7c7c7c"
- }
- },
- xAxis: {
- type: 'time',
- boundaryGap: false,
- },
- yAxis: {
- type: 'value',
- axisLabel: {
- formatter: '{value} °C'
- },
- boundaryGap: [0, '100%'],
- // max:80,
- // min:-10,
- },
- dataZoom: [
- {
- type: 'inside',
- start: 0,
- end: 100
- },
- {
- start: 0,
- end: 100
- }
- ],
- markPoint: {
- // data: [ {
- // name: '最大值',
- // type: 'max'
- // },{
- // name: '最小值',
- // type: 'min'
- // }
- // ]
- },
- series: T_myChart_List_M
- };
- // 初始化 图表
- T_myChart.setOption(T_myChart_option_1);
- var T_myChart_option_2 = {
- // title: {
- // top: '50px',
- // text: T_name+"["+T_id+"]:" + $("#Time_start").val() + '~' + $("#Time_end").val(),
- // textStyle:{
- // fontSize:14,
- // }
- // },
- tooltip: {
- trigger: 'axis'
- },
- toolbox: {
- show: true,
- feature: {
- dataZoom: {
- yAxisIndex: 'none'
- },
- dataView: { readOnly: false },
- magicType: { type: ['line', 'bar'] },
- restore: {},
- saveAsImage: {}
- }
- },
- grid: {
- top: '40px',
- left: '0px',
- right: '70px',
- bottom: '50px',
- containLabel: true
- },
- legend: {
- textStyle:{
- color:"#7c7c7c"
- }
- },
- xAxis: {
- type: 'time',
- boundaryGap: false,
- },
- yAxis: {
- type: 'value',
- axisLabel: {
- formatter: '{value} %'
- },
- boundaryGap: [0, '100%'],
- // max:100,
- // min:0,
- },
- dataZoom: [
- {
- type: 'inside',
- start: 0,
- end: 100
- },
- {
- start: 0,
- end: 100
- }
- ],
- markPoint: {
- // data: [ {
- // name: '最大值',
- // type: 'max'
- // },{
- // name: '最小值',
- // type: 'min'
- // }
- // ]
- },
- series: H_myChart_List_M
- };
- // 初始化 图表
- H_myChart.setOption(T_myChart_option_2);
- }
-
-
- //
- // function f_Refresh_T_myChart_1() {
- // T_myChart_1.clear();
- // //
- // // T_myChart_option_1.title.text =
- // T_myChart_option_1.series = T_myChart_List_1
- // T_myChart_option_1.yAxis.max = T_myChart_max_1
- // T_myChart_option_1.yAxis.min = T_myChart_min_1
- // T_myChart_option_1.yAxis.axisLabel.formatter = '{value} ℃'
- // T_myChart_1.setOption(T_myChart_option_1);
- // }
- </script>
- <!-- 单个 图表-->
- <script>
- function T_fhand(data) {
- T_myChart.dispose()
- H_myChart.dispose()
- T_myChart = echarts.init(document.getElementById('T_myChart_1'));
- H_myChart = echarts.init(document.getElementById('T_myChart_2'));
- var T_time = []
- var T_data = []
- var T_waring = []
- var T_Tlower = 0
- var T_Tupper = 0
- var T_max = -999
- var T_min = 999
- var T_n_max = 0
- var T_n_min = 0
- var T_n_ave_num = 0
- var T_n_ave_sum = 0
- var T_n_overtime = 0
- var T_n_overtime_a = 0
- var H_time = []
- var H_data = []
- var H_waring = []
- var H_Tlower = 0
- var H_Tupper = 0
- var H_max = 0
- var H_min = 99
- var H_n_max = 0
- var H_n_min = 0
- var H_n_ave_num = 0
- var H_n_ave_sum = 0
- var H_n_overtime = 0
- var H_n_overtime_a = 0
- T_Tlower = data[0].T_Tlower
- T_Tupper = data[0].T_Tupper
- H_Tlower = data[0].T_RHlower
- H_Tupper = data[0].T_RHupper
- var dataZoomstart = 0 //缩放比例
- dataZoomstart = 100 - (30 / (data.length / 100))
- for (let i = 0; i < data.length; i++) {
- // 温度
- T_time.unshift(data[i].T_time)
- T_data.unshift(data[i].T_t)
- if(data[i].T_t > T_max){
- T_max = data[i].T_t
- T_n_max = data[i].T_t
- }
- if(data[i].T_t < T_min){
- T_min = data[i].T_t
- T_n_min = data[i].T_t
- }
- T_n_ave_num += 1
- T_n_ave_sum += data[i].T_t
- if(data[i].T_t <= data[i].T_Tlower || data[i].T_t >= data[i].T_Tupper){
- T_waring.unshift({ name: '周最低', value: data[i].T_t, xAxis: data.length-i-1, yAxis: data[i].T_t })
- if(T_n_overtime_a == 0){
- console.log(new Date(data[i].T_time),data[i].T_time)
- T_n_overtime_a = new Date(data[i].T_time)
- }
- }else {
- if(T_n_overtime_a > 0){
- T_n_overtime += T_n_overtime_a - new Date(data[i].T_time)
- T_n_overtime_a = 0
- }
- }
- // 湿度
- H_time.unshift(data[i].T_time)
- H_data.unshift(data[i].T_rh)
- if(data[i].T_rh > H_max){
- H_max = data[i].T_rh
- H_n_max = data[i].T_rh
- }
- if(data[i].T_rh < H_min){
- H_min = data[i].T_rh
- H_n_min = data[i].T_rh
- }
- if(data[i].T_rh <= data[i].T_RHlower || data[i].T_rh >= data[i].T_RHupper){
- H_waring.unshift({ name: '周最低', value: data[i].T_rh, xAxis: data.length-i-1, yAxis: data[i].T_rh })
- if(H_n_overtime_a == 0){
- console.log(new Date(data[i].T_time),data[i].T_time)
- H_n_overtime_a = new Date(data[i].T_time)
- }
- }else {
- if(H_n_overtime_a > 0){
- H_n_overtime += H_n_overtime_a - new Date(data[i].T_time)
- H_n_overtime_a = 0
- }
- }
- H_n_ave_num += 1
- H_n_ave_sum += data[i].T_rh
- }
- $("#T_myChart_1_title").html("最高温度:"+T_n_max.toFixed(2)+"℃   最低温度"+T_n_min.toFixed(2)+"℃   平均温度:"+(T_n_ave_sum/T_n_ave_num).toFixed(2)+"℃   超标温度累积时长:"+formatSeconds(T_n_overtime/10000)+"")
- $("#T_myChart_2_title").html("最高湿度:"+H_n_max.toFixed(2)+"%   最低湿度"+H_n_min.toFixed(2)+"%   平均湿度:"+(H_n_ave_sum/H_n_ave_num).toFixed(2)+"%   超标湿度累积时长:"+formatSeconds(H_n_overtime/10000)+"")
- console.log("T_max:",T_max,"T_min:",T_min)
- if(T_Tupper > T_max){
- T_max = T_Tupper
- }
- if(T_Tlower < T_min){
- T_min = T_Tlower
- }
- T_max += 1
- T_min -= 1
- console.log("H_max:",H_max,"H_min:",H_min)
- if(H_Tupper > H_max){
- H_max = H_Tupper
- }
- if(H_Tlower < H_min){
- H_min = H_Tlower
- }
- H_max += 1
- H_min -= 1
- T_option = {
- title: {
- text: T_name+"["+T_id+"]:" + $("#Time_start").val() + '~' + $("#Time_end").val(),
- textStyle:{
- fontSize:14,
- }
- },
- tooltip: {
- trigger: 'axis'
- },
- legend: {},
- toolbox: {
- show: true,
- feature: {
- dataZoom: {
- yAxisIndex: 'none'
- },
- dataView: { readOnly: false },
- magicType: { type: ['line', 'bar'] },
- restore: {},
- saveAsImage: {}
- }
- },
- grid: {
- top: '40px',
- left: '0px',
- right: '70px',
- bottom: '50px',
- containLabel: true
- },
- xAxis: {
- type: 'category',
- boundaryGap: false,
- data: T_time, //['1', '2', '3', '4', '5', '6', '7'],
- },
- yAxis: {
- type: 'value',
- axisLabel: {
- formatter: '{value} °C'
- },
- max:T_max,
- min:T_min,
- },
- dataZoom: [
- {
- type: 'inside',
- start: 0,
- end: 100
- },
- {
- start: 0,
- end: 100
- }
- ],
- series: [
- {
- // name: '温度',
- type: 'line',
- data: T_data, //[1, -2, -1, 5, 3, 2, 0],
- markPoint: {
- data: T_waring,
- // [
- // { name: '周最低', value: -2, xAxis: 1, yAxis: -1.5 }
- // ,{ name: '周最低', value: -1, xAxis: 2, yAxis: -1 }
- // ]
- },
- markLine: {
- data: [
- {
- silent:true, //鼠标悬停事件 true没有,false有
- lineStyle:{ //警戒线的样式 ,虚实 颜色
- type:"solid",
- color:"#FF4200",
- width: 3,
- },
- label:{
- position:'end',
- formatter:"下限("+T_Tlower+"℃)"
- },
- yAxis:T_Tlower
- },
- {
- silent:true, //鼠标悬停事件 true没有,false有
- lineStyle:{ //警戒线的样式 ,虚实 颜色
- type:"solid",
- color:"#FF4200",
- width: 3,
- },
- label:{
- position:'end',
- formatter:"上限("+T_Tupper+"℃)"
- },
- yAxis:T_Tupper
- }
- ]
- }
- },
- ]
- };
- T_myChart.setOption(T_option);
- H_option = {
- title: {
- text: T_name+"["+T_id+"]:" + $("#Time_start").val() + '~' + $("#Time_end").val(),
- textStyle:{
- fontSize:14,
- }
- },
- tooltip: {
- trigger: 'axis'
- },
- legend: {},
- toolbox: {
- show: true,
- feature: {
- dataZoom: {
- yAxisIndex: 'none'
- },
- dataView: { readOnly: false },
- magicType: { type: ['line', 'bar'] },
- restore: {},
- saveAsImage: {}
- }
- },
- grid: {
- top: '40px',
- left: '0px',
- right: '70px',
- bottom: '50px',
- containLabel: true
- },
- xAxis: {
- type: 'category',
- boundaryGap: false,
- data: H_time, //['1', '2', '3', '4', '5', '6', '7'],
- },
- yAxis: {
- type: 'value',
- axisLabel: {
- formatter: '{value} %'
- },
- max:H_max,
- min:H_min,
- },
- dataZoom: [
- {
- type: 'inside',
- start: 0,
- end: 100
- },
- {
- start: 0,
- end: 100
- }
- ],
- series: [
- {
- // name: '湿度',
- type: 'line',
- data: H_data, //[1, -2, -1, 5, 3, 2, 0],
- markPoint: {
- data: H_waring,
- // [
- // { name: '周最低', value: -2, xAxis: 1, yAxis: -1.5 }
- // ,{ name: '周最低', value: -1, xAxis: 2, yAxis: -1 }
- // ]
- },
- markLine: {
- data: [
- {
- silent:true, //鼠标悬停事件 true没有,false有
- lineStyle:{ //警戒线的样式 ,虚实 颜色
- type:"solid",
- color:"#FF4200",
- width: 3,
- },
- label:{
- position:'end',
- formatter:"下限("+H_Tlower+"%)"
- },
- yAxis:H_Tlower
- },
- {
- silent:true, //鼠标悬停事件 true没有,false有
- lineStyle:{ //警戒线的样式 ,虚实 颜色
- type:"solid",
- color:"#FF4200",
- width: 3,
- },
- label:{
- position:'end',
- formatter:"上限("+H_Tupper+"%)",
- },
- yAxis:H_Tupper
- }
- ]
- }
- }
- ]
- };
- H_myChart.setOption(H_option);
- }
- function formatSeconds(value) {
- var theTime = parseInt(value);// 秒
- var theTime1 = 0;// 分
- var theTime2 = 0;// 小时
- // alert(theTime);
- if(theTime > 60) {
- theTime1 = parseInt(theTime/60);
- theTime = parseInt(theTime%60);
- // alert(theTime1+"-"+theTime);
- if(theTime1 > 60) {
- theTime2 = parseInt(theTime1/60);
- theTime1 = parseInt(theTime1%60);
- }
- }
- var result = ""+parseInt(theTime)+"秒";
- if(theTime1 > 0) {
- result = ""+parseInt(theTime1)+"分"+result;
- }
- if(theTime2 > 0) {
- result = ""+parseInt(theTime2)+"小时"+result;
- }
- return result;
- }
- </script>
- </html>
|