初始化项目
This commit is contained in:
486
pqs9000/src/main/webapp/jspJS/area/areaovernormal.js
Normal file
486
pqs9000/src/main/webapp/jspJS/area/areaovernormal.js
Normal file
@@ -0,0 +1,486 @@
|
||||
var $startTime=$("#startTime");
|
||||
var $endTime=$("#endTime");
|
||||
var $statistic=$("#statistic");
|
||||
var tiggleValue;
|
||||
var buttonname;
|
||||
var companyname;
|
||||
var dataTable=null;
|
||||
$("#interval").val("月份");
|
||||
|
||||
$(function () {
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var statistic = $statistic.eq(0).val();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data:{
|
||||
start: startTime,
|
||||
end: endTime
|
||||
},
|
||||
async:false,
|
||||
url: "/pqs9000/device/getMsgInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
buttonname = data.body.name;
|
||||
tiggleValue = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
companyname = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
//初始化按钮开关
|
||||
$(".checkbox").bootstrapSwitch({
|
||||
onText: buttonname, // 设置ON文本
|
||||
offText: companyname, // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state === true) {
|
||||
tiggleValue = buttonname;
|
||||
refresh(tiggleValue);
|
||||
} else {
|
||||
tiggleValue = companyname;
|
||||
refresh(tiggleValue);
|
||||
}
|
||||
}
|
||||
});
|
||||
initTable(null);
|
||||
refresh(tiggleValue);
|
||||
})
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#selectData").click(function() {
|
||||
refresh(tiggleValue);
|
||||
});
|
||||
|
||||
|
||||
//获取表格数据
|
||||
function refresh(tiggleValue) {
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var statistic = $statistic.eq(0).val();
|
||||
let statFlag = $('#allLineCheck').is(":checked")
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/responsibility/overLimitData",
|
||||
dataType:'json',
|
||||
data : {
|
||||
startTime : startTime,
|
||||
endTime : endTime,
|
||||
type: tiggleValue,
|
||||
statistic: statistic,
|
||||
statFlag:statFlag
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success:function (data) {
|
||||
var sortData = bubbleSort(data.body);
|
||||
initTable(sortData);
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function initTable(data){
|
||||
var size = 0
|
||||
if (data != null){
|
||||
size = data.length;
|
||||
}
|
||||
var height=$(window).height()-170;
|
||||
var statistic = $statistic.eq(0).val();
|
||||
dataTable=$("#overLimitTable").DataTable();
|
||||
dataTable.clear().draw();
|
||||
if (statistic === "0"){
|
||||
dataTable=$('#overLimitTable').DataTable({
|
||||
order:[],
|
||||
columnDefs : [
|
||||
{
|
||||
orderable : false,
|
||||
targets : [0,1]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
// 序号
|
||||
{width:"2%",data: null, render : function(data, type, full, meta){
|
||||
if (size === 1){
|
||||
return meta.row + 1 + meta.settings._iDisplayStart;
|
||||
}else {
|
||||
if (meta.row + 1 + meta.settings._iDisplayStart === 1){
|
||||
return "";
|
||||
} else {
|
||||
return meta.row + meta.settings._iDisplayStart;
|
||||
}
|
||||
}
|
||||
}},
|
||||
{width:"2%",data:"name",render : function(data, type, full, meta){
|
||||
var value=data;
|
||||
if(data.length>10){
|
||||
value=data.substring(0,9)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"onlineMonitorNumber"},
|
||||
{width:"3%",data:"overLimitMonitorNumber"},
|
||||
{width:"3%",data:"overBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"frequencyMonitorNumber"},
|
||||
{width:"2.5%",data:"frequencyBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"frequencyAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"frequencyOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"voltageMonitorNumber"},
|
||||
{width:"2.5%",data:"voltageBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"voltageAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"voltageOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicVoltageMonitorNumber",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicVoltageBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicVoltageAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"harmonicVoltageOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicCurrentMonitorNumber"},
|
||||
{width:"2.5%",data:"harmonicCurrentBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicCurrentAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"harmonicCurrentOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"threePhaseVoltageMonitorNumber"},
|
||||
{width:"2.5%",data:"threePhaseVoltageBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"threePhaseVoltageAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"threePhaseVoltageOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"flickerMonitorNumber"},
|
||||
{width:"2.5%",data:"flickerBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"flickerAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"flickerOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"negativeMonitorNumber"},
|
||||
{width:"2.5%",data:"negativeBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"negativeAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"negativeOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"interharmonicMonitorNumber"},
|
||||
{width:"2.5%",data:"interharmonicBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"interharmonicAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"interharmonicOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
],
|
||||
bAutoWidth:false,
|
||||
serverSide : false,
|
||||
destroy : true,
|
||||
data : data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
sScrollY: height,
|
||||
scrollX: true,
|
||||
lengthMenu : [18],
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json'
|
||||
},
|
||||
fnDrawCallback: function(oTable) {
|
||||
$("#overLimitTable_info").addClass("fl");
|
||||
$("#overLimitTable_paginate").addClass("fr");
|
||||
$("#overLimitTable_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#overLimitTable").dataTable();
|
||||
$('#dataTable-btn').click(function(e) {
|
||||
if($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
}else {
|
||||
dataTable=$('#overLimitTable').DataTable({
|
||||
order:[],
|
||||
columnDefs : [
|
||||
{
|
||||
orderable : false,
|
||||
targets : [0,1]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
// 序号
|
||||
{width:"1.5%",data: null, render : function(data, type, full, meta){
|
||||
return meta.row + 1 + meta.settings._iDisplayStart;
|
||||
}},
|
||||
{width:"2.5%",data:"name",render : function(data, type, full, meta){
|
||||
var value=data;
|
||||
if(data.length>10){
|
||||
value=data.substring(0,9)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"onlineMonitorNumber"},
|
||||
{width:"3%",data:"overLimitMonitorNumber"},
|
||||
{width:"3%",data:"overBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"frequencyMonitorNumber"},
|
||||
{width:"2.5%",data:"frequencyBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"frequencyAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"frequencyOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"voltageMonitorNumber"},
|
||||
{width:"2.5%",data:"voltageBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"voltageAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"voltageOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicVoltageMonitorNumber",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicVoltageBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicVoltageAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"harmonicVoltageOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicCurrentMonitorNumber"},
|
||||
{width:"2.5%",data:"harmonicCurrentBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"harmonicCurrentAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"harmonicCurrentOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"threePhaseVoltageMonitorNumber"},
|
||||
{width:"2.5%",data:"threePhaseVoltageBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"threePhaseVoltageAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"threePhaseVoltageOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"flickerMonitorNumber"},
|
||||
{width:"2.5%",data:"flickerBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"flickerAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"flickerOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"negativeMonitorNumber"},
|
||||
{width:"2.5%",data:"negativeBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"negativeAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"negativeOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"interharmonicMonitorNumber"},
|
||||
{width:"2.5%",data:"interharmonicBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"2.5%",data:"interharmonicAvg",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width:"3%",data:"interharmonicOverDayBiLi",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
],
|
||||
bAutoWidth:false,
|
||||
serverSide : false,
|
||||
destroy : true,
|
||||
data : data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
sScrollY: height,
|
||||
scrollX: true,
|
||||
lengthMenu : [18],
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json'
|
||||
},
|
||||
fnDrawCallback: function(oTable) {
|
||||
$("#overLimitTable_info").addClass("fl");
|
||||
$("#overLimitTable_paginate").addClass("fr");
|
||||
$("#overLimitTable_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#overLimitTable").dataTable();
|
||||
$('#dataTable-btn').click(function(e) {
|
||||
if($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
//点击导出功能
|
||||
$('#exportTable').click(function () {
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var statistic = $statistic.eq(0).val();
|
||||
$("<form method='post' action='/pqs9000/responsibility/exportAreaExcel?statistic="+statistic+"&startTime="+startTime+"&endTime="+endTime+"'>"+
|
||||
"<input type='hidden'/>"+
|
||||
encodeURIComponent("excelname")+"'/></form>").appendTo('body').submit().remove();
|
||||
});
|
||||
|
||||
//制保留2位小数,如:2,会在2后面补上00.即2.00
|
||||
function toDecimal2(x) {
|
||||
var f = parseFloat(x);
|
||||
if (isNaN(f)) {
|
||||
return false;
|
||||
}
|
||||
var f = Math.round(x*100)/100;
|
||||
var s = f.toString();
|
||||
var rs = s.indexOf('.');
|
||||
if (rs < 0) {
|
||||
rs = s.length;
|
||||
s += '.';
|
||||
}
|
||||
while (s.length <= rs + 2) {
|
||||
s += '0';
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
//排序
|
||||
function bubbleSort(data) {
|
||||
for (var i=0;i<data.length-1;i++){
|
||||
for (var j=0;j<data.length-1-i;j++){
|
||||
if (data[j].onlineMonitorNumber<data[j+1].onlineMonitorNumber){
|
||||
var temp = data[j+1];
|
||||
data[j+1] = data[j];
|
||||
data[j] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
return data
|
||||
}
|
||||
704
pqs9000/src/main/webapp/jspJS/area/dataIntegrality.js
Normal file
704
pqs9000/src/main/webapp/jspJS/area/dataIntegrality.js
Normal file
@@ -0,0 +1,704 @@
|
||||
var picHeight;
|
||||
var tabs;
|
||||
var $area = $("#area");
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
$("#interval").val("月份");
|
||||
var tiggleValue;
|
||||
var allData;
|
||||
var type=0;
|
||||
var buttonname;
|
||||
var companyname;
|
||||
|
||||
// 新增tab页
|
||||
function addTab(url, label) {
|
||||
tabs.add({url: url, label: label});
|
||||
}
|
||||
|
||||
$("#datatype").on("change",function() {
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
if($("option:selected",this).val() == 0){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: 'json',
|
||||
async:false,
|
||||
success: function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
}
|
||||
})
|
||||
$("#area").attr("disabled",true);
|
||||
$("#scale").attr("disabled",false);
|
||||
$("#manc").attr("disabled",false);
|
||||
$("#loadtype").attr("disabled",false);
|
||||
type = 0;
|
||||
var area = $area.eq(0).attr("index");
|
||||
var scale = $("#scale").val();
|
||||
var manc = $("#manc").val();
|
||||
var loadtype = $("#loadtype").val();
|
||||
refresh(startTime, endTime, area,scale,manc,loadtype)
|
||||
}else if($("option:selected",this).val() == 1){
|
||||
loadselect("电压等级","scale");
|
||||
$("#area").attr("disabled",false);
|
||||
$("#scale").attr("disabled",true);
|
||||
$("#manc").attr("disabled",false);
|
||||
$("#loadtype").attr("disabled",false);
|
||||
$("#area").css("background-color","#fff");
|
||||
type = 1;
|
||||
var area = $area.eq(0).attr("index");
|
||||
var scale = $("#scale").val();
|
||||
var manc = $("#manc").val();
|
||||
var loadtype = $("#loadtype").val();
|
||||
refresh(startTime, endTime, area,scale,manc,loadtype);
|
||||
}else if($("option:selected",this).val() == 2){
|
||||
loadselect("制造厂商","manc");
|
||||
$("#area").attr("disabled",false);
|
||||
$("#scale").attr("disabled",false);
|
||||
$("#manc").attr("disabled",true);
|
||||
$("#loadtype").attr("disabled",false);
|
||||
$("#area").css("background-color","#fff");
|
||||
type = 2;
|
||||
var area = $area.eq(0).attr("index");
|
||||
var scale = $("#scale").val();
|
||||
var manc = $("#manc").val();
|
||||
var loadtype = $("#loadtype").val();
|
||||
refresh(startTime, endTime, area,scale,manc,loadtype);
|
||||
}else if($("option:selected",this).val() == 3){
|
||||
loadselect("干扰源类型","loadtype");
|
||||
$("#area").attr("disabled",false);
|
||||
$("#scale").attr("disabled",false);
|
||||
$("#manc").attr("disabled",false);
|
||||
$("#loadtype").attr("disabled",true);
|
||||
$("#area").css("background-color","#fff");
|
||||
type = 3;
|
||||
var area = $area.eq(0).attr("index");
|
||||
var scale = $("#scale").val();
|
||||
var manc = $("#manc").val();
|
||||
var loadtype = $("#loadtype").val();
|
||||
refresh(startTime, endTime, area,scale,manc,loadtype);
|
||||
}
|
||||
})
|
||||
|
||||
$(function () {
|
||||
var start = $startTime.eq(0).val();
|
||||
var end = $endTime.eq(0).val();
|
||||
|
||||
loadselect("电压等级","scale");
|
||||
loadselect("制造厂商","manc");
|
||||
loadselect("干扰源类型","loadtype");
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data:{
|
||||
start: start,
|
||||
end: end
|
||||
},
|
||||
async:false,
|
||||
url: "/pqs9000/device/getMsgInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
buttonname = data.body.name;
|
||||
tiggleValue = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
companyname = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
$(".checkbox").bootstrapSwitch({
|
||||
onText: buttonname, // 设置ON文本
|
||||
offText: companyname, // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state == true) {
|
||||
tiggleValue = buttonname;
|
||||
} else {
|
||||
tiggleValue = companyname;
|
||||
}
|
||||
//重新画图
|
||||
reDrawAllPic();
|
||||
}
|
||||
});
|
||||
|
||||
$('#rightContent').width(document.body.clientWidth - 290).height(document.body.offsetHeight - 115);
|
||||
tabs = $('#tabs').cleverTabs();
|
||||
picHeight = ($(window).height() - 78);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
|
||||
$("#area").attr("disabled",true);
|
||||
$("#scale").attr("disabled",false);
|
||||
$("#manc").attr("disabled",false);
|
||||
$("#loadtype").attr("disabled",false);
|
||||
//初始化页面内容
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(startTime, endTime, area);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//点击查询按钮
|
||||
$("#query").click(function () {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var scale = $("#scale").val();
|
||||
var manc = $("#manc").val();
|
||||
var loadtype = $("#loadtype").val();
|
||||
refresh(startTime, endTime, area,scale,manc,loadtype);
|
||||
});
|
||||
|
||||
//请求后台刷新页面数据
|
||||
function refresh(startTime, endTime, area,scale,manc,loadtype) {
|
||||
var i;
|
||||
$.ajax({
|
||||
url: '/pqs9000/area/dataIntegrality',
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
area: area,
|
||||
scale:scale,
|
||||
manc:manc,
|
||||
loadtype:loadtype
|
||||
},
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500 | data.body === null) {
|
||||
allData = null;
|
||||
if(type == 0){
|
||||
drawAreaPic(null);
|
||||
}else if(type == 1){
|
||||
drawVoltagePic(null);
|
||||
}else if(type == 2){
|
||||
drawCompanyPic(null);
|
||||
}else if(type == 3){
|
||||
drawLoadTypePic(null);
|
||||
}
|
||||
} else {
|
||||
allData = data.body;
|
||||
if(type == 0){
|
||||
drawAreaPic(data.body.area);
|
||||
}else if(type == 1){
|
||||
drawVoltagePic(data.body.vol);
|
||||
}else if(type == 2){
|
||||
drawCompanyPic(data.body.interval);
|
||||
}else if(type == 3){
|
||||
drawLoadTypePic(data.body.loadtype);
|
||||
}
|
||||
}
|
||||
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//开关触发图片更新
|
||||
function reDrawAllPic() {
|
||||
if (allData === null) {
|
||||
drawAreaPic(null);
|
||||
} else {
|
||||
if($("#datatype").val() == "0"){
|
||||
drawAreaPic(allData.area);
|
||||
}else if($("#datatype").val() == "1"){
|
||||
drawVoltagePic(allData.vol)
|
||||
}else if($("#datatype").val() == "2"){
|
||||
drawCompanyPic(allData.interval)
|
||||
}else if($("#datatype").val() == "3"){
|
||||
drawLoadTypePic(allData.loadtype)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//绘画区域数据
|
||||
function drawAreaPic(area) {
|
||||
var $area = $("#areaChart");
|
||||
$area.css("height", picHeight);
|
||||
var width = $area.width();
|
||||
if (width <= 120) {
|
||||
$area.css("width", $(window).width() - 30);
|
||||
}
|
||||
var areaOption = echarts.init($("#areaChart")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
var route;
|
||||
var lineFeedBar;
|
||||
if (null != area) {
|
||||
if(area.length>barUpperLimit12){
|
||||
route=barRouteIncline;
|
||||
lineFeedBar=noLineFeed;
|
||||
}else{
|
||||
route=barRouteZero;
|
||||
lineFeedBar=lineFeed;
|
||||
}
|
||||
for (var i = 0; i < area.length; i++) {
|
||||
var integralityRate;
|
||||
if (tiggleValue == buttonname) {
|
||||
areas[i] = area[i].name + lineFeedBar+"(" + area[i].amounts + ")";
|
||||
integralityRate = Number(area[i].dataIntegrity);
|
||||
} else {
|
||||
areas[i] = area[i].name + lineFeedBar+"(" + area[i].gwamounts + ")";
|
||||
integralityRate = Number(area[i].gwdataIntegrity);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if (integralityRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
} else {
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
singleData.areaIndex = area[i].deptsIndex;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '区域',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '7%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '地区\n(监测点数)\n',
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
show: true,
|
||||
rotate:route,
|
||||
fontSize:10
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '完整性',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
areaOption.setOption(option);
|
||||
areaOption.on('click', function (params) {
|
||||
if(type == 0){
|
||||
var city = params.data.areaIndex;
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var interval = $("#interval").val();
|
||||
if (getRole("/pqs9000/area/integralitytable")) {
|
||||
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + city + '&interval=' + interval, '数据完整性列表')
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//绘制电压等级
|
||||
function drawVoltagePic(vol) {
|
||||
var $voltage = $("#areaChart");
|
||||
$voltage.css("height", picHeight);
|
||||
var width = $voltage.width();
|
||||
if (width <= 120) {
|
||||
$voltage.css("width", ($(window).width() - 30) * 0.5);
|
||||
}
|
||||
var volOption = echarts.init($("#areaChart")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
if (null != vol) {
|
||||
for (var i = 0; i < vol.length; i++) {
|
||||
var integralityRate;
|
||||
if (tiggleValue === buttonname) {
|
||||
areas[i] = vol[i].name + "\n(" + vol[i].amounts + ")";
|
||||
integralityRate = Number(vol[i].dataIntegrity);
|
||||
} else {
|
||||
areas[i] = vol[i].name + "\n(" + vol[i].gwamounts + ")";
|
||||
integralityRate = Number(vol[i].gwdataIntegrity);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if (integralityRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
} else {
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '电压等级',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '13%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '电压等级\n(监测点数)\n',
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '完整性',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
volOption.setOption(option);
|
||||
volOption.on('click', function (params) {
|
||||
if(type == 1){
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var interval = $("#interval").val();
|
||||
if (getRole("/pqs9000/area/integralitytable")) {
|
||||
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + $area.eq(0).attr("index") + '&interval=' + interval + '&type=' + statisticalType, '数据完整性列表')
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//绘制设备厂家
|
||||
function drawCompanyPic(company) {
|
||||
var $company = $("#areaChart");
|
||||
$company.css("height", picHeight);
|
||||
var width = $company.width();
|
||||
if (width <= 120) {
|
||||
$company.css("width", ($(window).width() - 30) * 0.5);
|
||||
}
|
||||
var comOption = echarts.init($("#areaChart")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
if (null != company) {
|
||||
for (var i = 0; i < company.length; i++) {
|
||||
var integralityRate;
|
||||
if (tiggleValue === buttonname) {
|
||||
areas[i] = company[i].name + "\n(" + company[i].amounts + ")";
|
||||
integralityRate = Number(company[i].dataIntegrity);
|
||||
} else {
|
||||
areas[i] = company[i].name + "\n(" + company[i].gwamounts + ")";
|
||||
integralityRate = Number(company[i].gwdataIntegrity);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if (integralityRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
} else {
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '终端厂家',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '13%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '终端厂家\n(监测点数)\n',
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '完整性',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
comOption.setOption(option);
|
||||
comOption.on('click', function (params) {
|
||||
if(type == 2){
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var interval = $("#interval").val();
|
||||
if (getRole("/pqs9000/area/integralitytable")) {
|
||||
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + $area.eq(0).attr("index") + '&interval=' + interval + '&type=' + statisticalType, '数据完整性列表')
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//绘制干扰源类型
|
||||
function drawLoadTypePic(vol) {
|
||||
var $voltage = $("#areaChart");
|
||||
$voltage.css("height", picHeight);
|
||||
var width = $voltage.width();
|
||||
if (width <= 120) {
|
||||
$voltage.css("width", ($(window).width() - 30) * 0.5);
|
||||
}
|
||||
var volOption = echarts.init($("#areaChart")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
if (null != vol) {
|
||||
for (var i = 0; i < vol.length; i++) {
|
||||
var integralityRate;
|
||||
if (tiggleValue === buttonname) {
|
||||
areas[i] = vol[i].name + "\n(" + vol[i].amounts + ")";
|
||||
integralityRate = Number(vol[i].dataIntegrity);
|
||||
} else {
|
||||
areas[i] = vol[i].name + "\n(" + vol[i].gwamounts + ")";
|
||||
integralityRate = Number(vol[i].gwdataIntegrity);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if (integralityRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
} else {
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '干扰源类型',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '13%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '干扰源类型\n(监测点数)\n',
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '完整性',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
volOption.setOption(option);
|
||||
volOption.on('click', function (params) {
|
||||
if(type == 3){
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var interval = $("#interval").val();
|
||||
if (getRole("/pqs9000/area/integralitytable")) {
|
||||
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + $area.eq(0).attr("index") + '&interval=' + interval + '&type=' + statisticalType, '数据完整性列表')
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//根据数据完整性获取颜色
|
||||
function getColor(data) {
|
||||
if (data >= 90) {
|
||||
return green;
|
||||
} else if (data === 3.1415) {
|
||||
return noMonitor;
|
||||
} else if (data === 3.14159) {
|
||||
return noData;
|
||||
} else if (data < 60) {
|
||||
return red;
|
||||
} else {
|
||||
return yellow;
|
||||
}
|
||||
}
|
||||
|
||||
function loadselect(dictypeName,div){
|
||||
var part='#'+div;
|
||||
$(part).find("option").remove();
|
||||
$.ajax({
|
||||
method : "post",
|
||||
url : "/pqs9000/device/getselect",
|
||||
data : {
|
||||
dictypeName:dictypeName
|
||||
},
|
||||
async:false,
|
||||
success : function(data) {
|
||||
if(data == null){
|
||||
var message = dictypeName + '信息加载失败';
|
||||
layer.msg(message,{icon:1,time:1000});
|
||||
}else{
|
||||
var option0 = $("<option selected value='"
|
||||
+ null + "'>"
|
||||
+ "全部" + "</option>");
|
||||
$(part).append(option0);
|
||||
$.each(data, function(i, item) {
|
||||
var option = $("<option value='"
|
||||
+ item.dicIndex + "'>"
|
||||
+ item.dicName + "</option>");
|
||||
$(part).append(option);
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
716
pqs9000/src/main/webapp/jspJS/area/deviceStatus.js
Normal file
716
pqs9000/src/main/webapp/jspJS/area/deviceStatus.js
Normal file
@@ -0,0 +1,716 @@
|
||||
var picHeight;
|
||||
var tabs;
|
||||
var $area = $("#area");
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
var areaResult = null;
|
||||
var companyResult = null;
|
||||
var tiggleValue = "系统";
|
||||
var areLength;//区域的个数
|
||||
var companyLength;//厂家个数
|
||||
$("#interval").val("月份");
|
||||
// 新增tab页
|
||||
function addTab(url, label) {
|
||||
tabs.add({url: url, label: label});
|
||||
}
|
||||
|
||||
$(function () {
|
||||
$(".checkbox").bootstrapSwitch({
|
||||
onText: "冀北", // 设置ON文本
|
||||
offText: "国网", // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state === true) {
|
||||
tiggleValue = "冀北";
|
||||
} else {
|
||||
tiggleValue = "国网";
|
||||
}
|
||||
//重新画图
|
||||
reDrawAllPic();
|
||||
}
|
||||
});
|
||||
picHeight = $(window).height() - 90;
|
||||
tabs = $('#tabs').cleverTabs();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(startTime, endTime, area);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
$("#query").click(function () {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(startTime, endTime, area);
|
||||
});
|
||||
|
||||
function refresh(startTime, endTime,area) {
|
||||
var i;
|
||||
$.ajax({
|
||||
url: '/pqs9000/area/deviceStatus',
|
||||
type: 'post',
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
area: area
|
||||
},
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500 | data.body === null) {
|
||||
companyResult = null;
|
||||
areaResult = null;
|
||||
} else {
|
||||
areLength = data.body.area === null ? 0 : data.body.area.length;
|
||||
companyLength = data.body.interval === null ? 0 : data.body.interval.length;
|
||||
companyResult = data.body.interval;
|
||||
areaResult = data.body.area;
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//按区域进行统计
|
||||
function drawAreaPic(area, intervals) {
|
||||
//给div指定宽高
|
||||
$("#areaDepts").css("height", picHeight);
|
||||
var normal = [];
|
||||
var breaks = [];
|
||||
var shutdown = [];
|
||||
var areas = [];
|
||||
var rate=[];
|
||||
if (null != area) {
|
||||
for (var i = 0; i < area.length; i++) {
|
||||
var monitors;
|
||||
var onlineRate;
|
||||
if (tiggleValue === "系统") {
|
||||
monitors=area[i].amounts;
|
||||
areas[i] = area[i].name + "\n(" + area[i].amounts + ")";
|
||||
onlineRate = Number(area[i].online);
|
||||
normal[i] = area[i].status.normal;
|
||||
breaks[i] = area[i].status.breaks;
|
||||
shutdown[i] = area[i].status.shutdown;
|
||||
} else {
|
||||
monitors=area[i].gwamounts;
|
||||
areas[i] = area[i].name + "\n(" + area[i].gwamounts + ")";
|
||||
onlineRate = Number(area[i].gwonline);
|
||||
if(null!==area[i].gdStatus){
|
||||
normal[i] = area[i].gdStatus.normal;
|
||||
breaks[i] = area[i].gdStatus.breaks;
|
||||
shutdown[i] = area[i].gdStatus.shutdown;
|
||||
}else{
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
singleData.value = 3.1415;
|
||||
item.color = noMonitor;
|
||||
singleData.itemStyle = item;
|
||||
normal[i] = singleData;
|
||||
breaks[i] = 0;
|
||||
shutdown[i] = 0;
|
||||
}
|
||||
}
|
||||
if (Number(monitors) === 0) {
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
singleData.value = 3.1415;
|
||||
item.color = noMonitor;
|
||||
singleData.itemStyle = item;
|
||||
normal[i] = singleData;
|
||||
rate[i]=singleData;
|
||||
breaks[i] = 0;
|
||||
shutdown[i] = 0;
|
||||
} else {
|
||||
var singleData = {};
|
||||
var normalData = {};
|
||||
var itemStyle = {};
|
||||
normalData.color = getColor(onlineRate);
|
||||
if (onlineRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
normalData.actual = onlineRate;
|
||||
} else {
|
||||
singleData.value = onlineRate;
|
||||
}
|
||||
itemStyle.normal = normalData;
|
||||
singleData.itemStyle = itemStyle;
|
||||
rate[i] = singleData;
|
||||
}
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '区域',
|
||||
x: 'center'
|
||||
},
|
||||
color: [green, yellow, grey],
|
||||
legend: {
|
||||
x: 'left',
|
||||
data: ['投运', '热备用', '停运'],
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
var color = params[0].color;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>投运 : /';
|
||||
tips += '<br/>热备用 : /';
|
||||
tips += '<br/>停运 : /';
|
||||
tips+='<br/>在线率 : /';
|
||||
} else {
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
var tempValue="";
|
||||
if(params[i].seriesName==="在线率"¶ms[i].value==3.14159){
|
||||
tempValue="暂无数据";
|
||||
}else if(params[i].seriesName==="在线率"¶ms[i].value==3.1415){
|
||||
if (params[i].data.itemStyle.actual !== undefined) {
|
||||
tempValue = params[i].data.itemStyle.actual;
|
||||
} else {
|
||||
tempValue="/";
|
||||
}
|
||||
}else{
|
||||
tempValue= params[i].value;
|
||||
}
|
||||
tips += '<br/>' + params[i].seriesName + ' : ' +tempValue;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '11%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '地区\n(终端个数)\n',
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: intervals
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
max: 100
|
||||
}],
|
||||
series: [{
|
||||
name: '投运',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: normal
|
||||
}, {
|
||||
name: '热备用',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: breaks
|
||||
}, {
|
||||
name: '停运',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: shutdown
|
||||
},{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
barGap: 0,
|
||||
barMaxWidth: barMax,
|
||||
data: rate
|
||||
}]
|
||||
};
|
||||
var district = echarts.init(document.getElementById('areaDepts'));
|
||||
district.setOption(option);
|
||||
district.on('click', function (params) {
|
||||
if (getRole("/pqs9000/business/runtime") == 1) {
|
||||
window.top.addTab('runtime', '终端运行情况')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//填充区域表格
|
||||
function initAreaTable(data) {
|
||||
var height = picHeight - 50;
|
||||
if (data == null) {
|
||||
data = [];
|
||||
}
|
||||
$("#areaTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
order: [2, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{data: 'amounts', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.amounts;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.gwamounts;
|
||||
}
|
||||
}},
|
||||
{
|
||||
data: 'status.normalData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.normalData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.normalData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'status.breaksData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.breaksData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.breaksData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'status.shutdownData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.shutdownData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.shutdownData;
|
||||
}
|
||||
}
|
||||
}, {data:'online', render:function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
data = full.online;
|
||||
} else {
|
||||
data = full.gwonline;
|
||||
}
|
||||
if (Number(data) === 3.1415) {
|
||||
return "/";
|
||||
} else if (Number(data) === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}},
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//按终端厂家进行统计
|
||||
function drawCompanyPic(companys, intervals) {
|
||||
$("#company").css("height", picHeight);
|
||||
var run = [];
|
||||
var breaks = [];
|
||||
var shutdown = [];
|
||||
var rate=[];
|
||||
var areas = [];
|
||||
if (null != companys) {
|
||||
for(var i=0;i<companys.length;i++){
|
||||
var monitors;
|
||||
var onlineRate;
|
||||
if (tiggleValue === "系统") {
|
||||
monitors=companys[i].amounts;
|
||||
areas[i] = companys[i].name + "\n(" + companys[i].amounts + ")";
|
||||
onlineRate = Number(companys[i].online);
|
||||
run[i]=companys[i].status.normal;
|
||||
breaks[i]=companys[i].status.breaks;
|
||||
shutdown[i]=companys[i].status.shutdown;
|
||||
} else {
|
||||
monitors=companys[i].gwamounts;
|
||||
areas[i] = companys[i].name + "\n(" + companys[i].gwamounts + ")";
|
||||
onlineRate = Number(companys[i].gwonline);
|
||||
if(null!==companys[i].gdStatus){
|
||||
run[i] = companys[i].gdStatus.normal;
|
||||
breaks[i] = companys[i].gdStatus.breaks;
|
||||
shutdown[i] = companys[i].gdStatus.shutdown;
|
||||
}else{
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
singleData.value = 3.1415;
|
||||
item.color = noMonitor;
|
||||
singleData.itemStyle = item;
|
||||
run[i] = singleData;
|
||||
breaks[i] = 0;
|
||||
shutdown[i] = 0;
|
||||
}
|
||||
}
|
||||
if(Number(monitors)===0){
|
||||
var singleData={};
|
||||
var normal={};
|
||||
var itemStyle={};
|
||||
singleData.value=3.1415;
|
||||
normal.color=noMonitor;
|
||||
itemStyle.normal=normal;
|
||||
singleData.itemStyle=itemStyle;
|
||||
run[i]=singleData;
|
||||
rate[i]=singleData;
|
||||
breaks[i]=0;
|
||||
shutdown[i]=0;
|
||||
}else{
|
||||
var singleData={};
|
||||
var normal={};
|
||||
var itemStyle={};
|
||||
normal.color = getColor(onlineRate);
|
||||
if(onlineRate<3.1414){
|
||||
singleData.value = 3.1415;
|
||||
normal.actual = onlineRate;
|
||||
}else{
|
||||
singleData.value = onlineRate;
|
||||
}
|
||||
itemStyle.normal=normal;
|
||||
singleData.itemStyle=itemStyle;
|
||||
rate[i]=singleData;
|
||||
}
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '终端厂家',
|
||||
left: '46%'
|
||||
},
|
||||
color: [green, yellow, grey],
|
||||
legend: {
|
||||
x: 'left',
|
||||
data: ['投运', '热备用', '停运'],
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var tips="";
|
||||
tips+=params[0].name;
|
||||
var value=params[0].value;
|
||||
if(value===3.1415){
|
||||
tips+='<br/>投运 : /';
|
||||
tips+='<br/>热备用 : /';
|
||||
tips+='<br/>停运 : /';
|
||||
tips+='<br/>在线率 : /';
|
||||
}else{
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
var tempValue="";
|
||||
if(params[i].seriesName==="在线率"¶ms[i].value==3.14159){
|
||||
tempValue="暂无数据";
|
||||
}else if(params[i].seriesName==="在线率"¶ms[i].value==3.1415){
|
||||
if (params[i].data.itemStyle.actual !== undefined) {
|
||||
tempValue = params[i].data.itemStyle.actual;
|
||||
} else {
|
||||
tempValue="/";
|
||||
}
|
||||
}else{
|
||||
tempValue= params[i].value;
|
||||
}
|
||||
tips += '<br/>' + params[i].seriesName + ' : ' +tempValue;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '11%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '终端厂家\n(终端个数)\n',
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: intervals
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '投运',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: run
|
||||
}, {
|
||||
name: '热备用',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: breaks
|
||||
}, {
|
||||
name: '停运',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: shutdown
|
||||
},{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
barGap: 0,
|
||||
barMaxWidth: barMax,
|
||||
data: rate
|
||||
}]
|
||||
};
|
||||
var factory = echarts.init(document.getElementById('company'));
|
||||
factory.setOption(option);
|
||||
factory.on('click', function () {
|
||||
if (getRole("/pqs9000/business/runtime") == 1) {
|
||||
window.top.addTab('runtime', '终端运行情况')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//填充终端厂家表格
|
||||
function initCompanyTable(data) {
|
||||
var height = picHeight - 50;
|
||||
if (data == null) {
|
||||
data = [];
|
||||
}
|
||||
$("#companyTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
order: [2, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{data: 'amounts', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.amounts;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.gwamounts;
|
||||
}
|
||||
}},
|
||||
{
|
||||
data: 'status.normalData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.normalData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.normalData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'status.breaksData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.breaksData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.breaksData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'status.shutdownData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.shutdownData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.shutdownData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{data:'online', render:function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
data = full.online;
|
||||
} else {
|
||||
data = full.gwonline;
|
||||
}
|
||||
if (Number(data) === 3.1415) {
|
||||
return "/";
|
||||
} else if (Number(data) === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}},
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
// var width = $("#companyT").width();
|
||||
// if (width > 100) {
|
||||
// if (parseInt(areLength) > parseInt(barspaclength)) {
|
||||
drawAreaPic(areaResult, 1);
|
||||
// } else {
|
||||
// drawAreaPic(areaResult, 0);
|
||||
// }
|
||||
// if (parseInt(companyLength) > parseInt(barspaclength)) {
|
||||
// drawCompanyPic(companyResult, 1);
|
||||
// } else {
|
||||
// drawCompanyPic(companyResult, 0);
|
||||
// }
|
||||
initAreaTable(areaResult);
|
||||
// initCompanyTable(companyResult);
|
||||
window.clearInterval(it)
|
||||
// }
|
||||
}
|
||||
|
||||
//根据在线率获取颜色
|
||||
function getColor(data) {
|
||||
if (data >= 90) {
|
||||
return green;
|
||||
} else if (data === 3.1415) {
|
||||
return noMonitor;
|
||||
} else if (data === 3.14159) {
|
||||
return noData;
|
||||
} else if (data < 60) {
|
||||
return red;
|
||||
} else {
|
||||
return yellow;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//开关触发图片更新
|
||||
function reDrawAllPic() {
|
||||
if (areaResult === null) {
|
||||
drawAreaPic(null);
|
||||
initAreaTable(null);
|
||||
} else {
|
||||
if (parseInt(areLength) > parseInt(barspaclength)) {
|
||||
drawAreaPic(areaResult, 1);
|
||||
} else {
|
||||
drawAreaPic(areaResult, 0);
|
||||
}
|
||||
initAreaTable(areaResult);
|
||||
}
|
||||
if (companyResult === null) {
|
||||
drawCompanyPic(null);
|
||||
initCompanyTable(null);
|
||||
} else {
|
||||
if (parseInt(companyLength) > parseInt(barspaclength)) {
|
||||
drawCompanyPic(companyResult, 1);
|
||||
} else {
|
||||
drawCompanyPic(companyResult, 0);
|
||||
}
|
||||
initCompanyTable(companyResult);
|
||||
}
|
||||
}
|
||||
316
pqs9000/src/main/webapp/jspJS/area/ledger.js
Normal file
316
pqs9000/src/main/webapp/jspJS/area/ledger.js
Normal file
@@ -0,0 +1,316 @@
|
||||
$(function () {
|
||||
getMonitorType();
|
||||
|
||||
getData(1);
|
||||
initValue("area");
|
||||
initValue("voltage");
|
||||
initValue("factory");
|
||||
initValue("type");
|
||||
initValue("appear");
|
||||
initValue("nature");
|
||||
setCSS();
|
||||
|
||||
$('#area').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("area").options[clickedIndex].value;
|
||||
|
||||
if ((value === '-1' && previousValue.length > 0 && previousValue[0] != '-1') || (value != '-1' && previousValue[0] === '-1')) { //清空并重新选中
|
||||
$('#area').selectpicker('deselectAll');
|
||||
$('#area').selectpicker('val', value);
|
||||
$('#area').selectpicker('refresh');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#factory').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("factory").options[clickedIndex].value;
|
||||
|
||||
if ((value === '-1' && previousValue.length > 0 && previousValue[0] != '-1') || (value != '-1' && previousValue[0] === '-1')) { //清空并重新选中
|
||||
$('#factory').selectpicker('deselectAll');
|
||||
$('#factory').selectpicker('val', value);
|
||||
$('#factory').selectpicker('refresh');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#voltage').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("voltage").options[clickedIndex].value;
|
||||
|
||||
if ((value === '-1' && previousValue.length > 0 && previousValue[0] != '-1') || (value != '-1' && previousValue[0] === '-1')) { //清空并重新选中
|
||||
$('#voltage').selectpicker('deselectAll');
|
||||
$('#voltage').selectpicker('val', value);
|
||||
$('#voltage').selectpicker('refresh');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#type').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("type").options[clickedIndex].value;
|
||||
|
||||
if ((value === '-1' && previousValue.length > 0 && previousValue[0] != '-1') || (value != '-1' && previousValue[0] === '-1')) { //清空并重新选中
|
||||
$('#type').selectpicker('deselectAll');
|
||||
$('#type').selectpicker('val', value);
|
||||
$('#type').selectpicker('refresh');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#query').click(function () {
|
||||
getData(0);
|
||||
});
|
||||
|
||||
$("#export").click(function () {
|
||||
window.location.href = "/pqs9000/area/exportExcel";
|
||||
});
|
||||
});
|
||||
|
||||
function setCSS() {
|
||||
//$('.bootstrap-select').find('button').eq(0).addClass('form-control');dropdown-toggle
|
||||
$('.dropdown-toggle').addClass('form-control');
|
||||
}
|
||||
|
||||
function getOptions(id) {
|
||||
var data = $('#' + id).selectpicker('val');
|
||||
var array = '';
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
array += data[i] + ',';
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
function getData(b) {
|
||||
if (b === 0) {
|
||||
var area = getOptions('area');
|
||||
var voltage = getOptions('voltage');
|
||||
var factory = getOptions('factory');
|
||||
var type = getOptions('type');
|
||||
var appear = $('#appear').selectpicker('val');
|
||||
var nature = $('#nature').selectpicker('val');
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/area/getledger",
|
||||
dataType: 'json',
|
||||
data: {
|
||||
area: area,
|
||||
voltage: voltage,
|
||||
factory: factory,
|
||||
type: type,
|
||||
appear: appear,
|
||||
nature: nature
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500) {
|
||||
initTable([]);
|
||||
}
|
||||
|
||||
if (b === 1) {
|
||||
initOption(data.body);
|
||||
}
|
||||
translateData(data.body);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function optionObj(index, name) {
|
||||
this.index = index;
|
||||
this.name = name;
|
||||
}
|
||||
|
||||
function initOption(data) {
|
||||
//区域
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
$('#area').append("<option value='" + data[i].areaIndex + "'>" + data[i].areaName + "</option>");
|
||||
}
|
||||
|
||||
//电压等级、终端厂家、干扰源类型终
|
||||
var voltage = [];
|
||||
var factory = [];
|
||||
var type = [];
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
for (var j = 0; j < data[i].list.length; j++) {
|
||||
if (data[i].list[j].name === '电压等级') {
|
||||
for (var k = 0; k < data[i].list[j].list.length; k++) {
|
||||
if (voltage.length === 0) {
|
||||
$('#voltage').append("<option value='" + data[i].list[j].list[k].dicIndex + "'>" + data[i].list[j].list[k].dicName + "</option>");
|
||||
voltage.push(new optionObj(data[i].list[j].list[k].dicIndex, data[i].list[j].list[k].dicName));
|
||||
}
|
||||
|
||||
for (var l = 0; l < voltage.length; l++) {
|
||||
if (voltage[l].index != data[i].list[j].list[k].dicIndex) {
|
||||
if (l == voltage.length - 1) {
|
||||
$('#voltage').append("<option value='" + data[i].list[j].list[k].dicIndex + "'>" + data[i].list[j].list[k].dicName + "</option>");
|
||||
voltage.push(new optionObj(data[i].list[j].list[k].dicIndex, data[i].list[j].list[k].dicName));
|
||||
}
|
||||
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (data[i].list[j].name === '终端厂家') {
|
||||
for (var k = 0; k < data[i].list[j].list.length; k++) {
|
||||
if (factory.length === 0) {
|
||||
$('#factory').append("<option value='" + data[i].list[j].list[k].dicIndex + "'>" + data[i].list[j].list[k].dicName + "</option>");
|
||||
factory.push(new optionObj(data[i].list[j].list[k].dicIndex, data[i].list[j].list[k].dicName));
|
||||
}
|
||||
|
||||
for (var l = 0; l < factory.length; l++) {
|
||||
if (factory[l].index != data[i].list[j].list[k].dicIndex) {
|
||||
if (l == factory.length - 1) {
|
||||
$('#factory').append("<option value='" + data[i].list[j].list[k].dicIndex + "'>" + data[i].list[j].list[k].dicName + "</option>");
|
||||
factory.push(new optionObj(data[i].list[j].list[k].dicIndex, data[i].list[j].list[k].dicName));
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (data[i].list[j].name === '干扰源类型') {
|
||||
for (var k = 0; k < data[i].list[j].list.length; k++) {
|
||||
if (type.length === 0) {
|
||||
$('#type').append("<option value='" + data[i].list[j].list[k].dicIndex + "'>" + data[i].list[j].list[k].dicName + "</option>");
|
||||
type.push(new optionObj(data[i].list[j].list[k].dicIndex, data[i].list[j].list[k].dicName));
|
||||
}
|
||||
|
||||
for (var l = 0; l < type.length; l++) {
|
||||
if (type[l].index != data[i].list[j].list[k].dicIndex) {
|
||||
if (l == type.length - 1) {
|
||||
$('#type').append("<option value='" + data[i].list[j].list[k].dicIndex + "'>" + data[i].list[j].list[k].dicName + "</option>");
|
||||
type.push(new optionObj(data[i].list[j].list[k].dicIndex, data[i].list[j].list[k].dicName));
|
||||
}
|
||||
} else {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('#area').selectpicker('refresh');
|
||||
$('#voltage').selectpicker('refresh');
|
||||
$('#factory').selectpicker('refresh');
|
||||
$('#type').selectpicker('refresh');
|
||||
}
|
||||
|
||||
function initValue(id) {
|
||||
$("#" + id).selectpicker('val', '-1');
|
||||
}
|
||||
|
||||
function translateData(data) {
|
||||
var tableData = '';
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
for (var j = 0; j < data[i].list.length; j++) {
|
||||
for (var k = 0; k < data[i].list[j].list.length; k++) {
|
||||
tableData += '["","' + data[i].areaName + '", "' + data[i].list[j].name + '","'
|
||||
+ data[i].list[j].list[k].dicName + '","' + data[i].list[j].list[k].gdCount + '","' + data[i].list[j].list[k].subCount + '","'
|
||||
+ data[i].list[j].list[k].lineCount + '","';
|
||||
|
||||
if (k === 0) {
|
||||
var n = 0;
|
||||
|
||||
if (j === 0) {
|
||||
for (var l = 0; l < data[i].list.length; l++) {
|
||||
for (var m = 0; m < data[i].list[l].list.length; m++) {
|
||||
n++;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tableData += n + '","' + data[i].list[j].list.length + '"],';
|
||||
} else {
|
||||
tableData += '0","0"],'; //前面表示所有行,后面表示自己的行
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tableData = tableData.substring(0, tableData.lastIndexOf(','));
|
||||
tableData = eval('[' + tableData + ']');
|
||||
|
||||
initTable(tableData);
|
||||
}
|
||||
|
||||
function initTable(data) {
|
||||
$('#tongji').dataTable({
|
||||
"columns": [
|
||||
{"title": "序号"},
|
||||
{"title": "区域"},
|
||||
{"title": "类型"},
|
||||
{"title": "分类型"},
|
||||
{"title": "变电站个数"},
|
||||
{"title": "终端个数"},
|
||||
{"title": "监测点个数"}
|
||||
],
|
||||
paging: false,
|
||||
scrollY: ($(window).height() * 0.83),
|
||||
lengthChange: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
searching: false,
|
||||
info: false,
|
||||
ordering: false,
|
||||
destroy: true,
|
||||
data: data,
|
||||
fnDrawCallback: function () {
|
||||
this.api().column(0).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
},
|
||||
columnDefs: [{
|
||||
targets: 1,
|
||||
createdCell: function (td, cellData, rowData, row, col) {
|
||||
var rowspan = rowData[7];
|
||||
|
||||
if (rowspan > 1) {
|
||||
$(td).attr('rowspan', rowspan)
|
||||
}
|
||||
if (rowspan == 0) {
|
||||
$(td).remove();
|
||||
}
|
||||
}
|
||||
}, {
|
||||
targets: 2,
|
||||
createdCell: function (td, cellData, rowData, row, col) {
|
||||
var rowspan = rowData[8];
|
||||
|
||||
if (rowspan > 1) {
|
||||
$(td).attr('rowspan', rowspan)
|
||||
}
|
||||
if (rowspan == 0) {
|
||||
$(td).remove();
|
||||
}
|
||||
}
|
||||
}]
|
||||
});
|
||||
}
|
||||
|
||||
let areaName;
|
||||
function getMonitorType(){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
data: {},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
areaName = data.body.name;
|
||||
var name = data.body.name + "上报";
|
||||
var name2 = "非" + data.body.name + "上报";
|
||||
loadColor = data.body.value;
|
||||
var option = $("<option value='0'>" + name + "</option>");
|
||||
var option2 = $("<option value='1'>" + name2 + "</option>");
|
||||
$('#appear').append(option);
|
||||
$('#appear').append(option2);
|
||||
}
|
||||
})
|
||||
}
|
||||
599
pqs9000/src/main/webapp/jspJS/area/moinitorMap.js
Normal file
599
pqs9000/src/main/webapp/jspJS/area/moinitorMap.js
Normal file
@@ -0,0 +1,599 @@
|
||||
var map = new BMap.Map("container")
|
||||
var dataArr;
|
||||
var markers = [];//需要聚合的监测点
|
||||
var monitors = []
|
||||
|
||||
//添加地图类型控件
|
||||
map.addControl(new BMap.MapTypeControl({
|
||||
mapTypes: [
|
||||
BMAP_NORMAL_MAP,
|
||||
BMAP_HYBRID_MAP,
|
||||
|
||||
]
|
||||
}));
|
||||
var point = new BMap.Point(120.753092, 31.631542); // 创建点坐标
|
||||
map.centerAndZoom(point, 15); // 初始化地图,设置中心点坐标和地图级别
|
||||
map.setCurrentCity("常熟"); // 设置地图显示的城市 此项是必须设置的
|
||||
map.enableScrollWheelZoom(true); //开启鼠标滚轮缩放
|
||||
//单击获取点击的经纬度
|
||||
/*map.addEventListener("click", function (e) {
|
||||
alert(e.point.lng + "," + e.point.lat);
|
||||
|
||||
|
||||
})*/
|
||||
|
||||
|
||||
function rightBox() {
|
||||
$('#leftT').animate({'left': '-240'}, 2000);
|
||||
$("#rightIcon").hide()
|
||||
$("#leftIcon").show()
|
||||
}
|
||||
|
||||
function leftBox() {
|
||||
$('#leftT').animate({'left': '0'}, 2000);
|
||||
$("#rightIcon").show()
|
||||
$("#leftIcon").hide()
|
||||
}
|
||||
|
||||
|
||||
var color;
|
||||
$(function () {
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
color = data.body.value;
|
||||
}
|
||||
})
|
||||
getMonitorMap()
|
||||
|
||||
$('#leftT').on('click', '#monitorInfo', function () {
|
||||
|
||||
layer.open({
|
||||
id: 'monitorMap',
|
||||
type: 2,
|
||||
title: '监测点详情',
|
||||
maxmin: false,
|
||||
resize: false,
|
||||
shadeClose: true, //点击遮罩关闭层
|
||||
area: ['100%', '100%'],
|
||||
content: '/pqs9000/business/lineledger',
|
||||
scrollbar: false
|
||||
});
|
||||
})
|
||||
|
||||
$('#leftT').on('click', '#eventInfo', function () {
|
||||
|
||||
layer.open({
|
||||
id: 'monitorMap',
|
||||
type: 2,
|
||||
title: '暂态事件详情',
|
||||
maxmin: false,
|
||||
resize: false,
|
||||
shadeClose: true, //点击遮罩关闭层
|
||||
area: ['100%', '100%'],
|
||||
content: '/pqs9000/area/vdlist',
|
||||
scrollbar: false
|
||||
});
|
||||
})
|
||||
|
||||
|
||||
})
|
||||
|
||||
|
||||
let loading;
|
||||
|
||||
function getMonitorMap() {
|
||||
let date = new Date(); // 获取当前日期时间
|
||||
let myyear = date.getFullYear();
|
||||
let mymonth = date.getMonth() + 1;
|
||||
let myweekday = date.getDate();
|
||||
mymonth < 10 ? mymonth = "0" + mymonth : mymonth;
|
||||
myweekday < 10 ? myweekday = "0" + myweekday : myweekday;
|
||||
let startTime = myyear + "-" + mymonth + "-01"
|
||||
let endTime = myyear + "-" + mymonth + "-" + myweekday
|
||||
|
||||
$.ajax({
|
||||
type: "get",
|
||||
url: "/pqs9000/monitorScope/getAreaLineMap",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
beforeSend: function () {
|
||||
loading = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
dataArr = data.body;
|
||||
|
||||
let key = []
|
||||
let lngArr = []
|
||||
let ltgArr = []
|
||||
for(let i=0;i<dataArr.length;i++){
|
||||
lngArr.push(dataArr[i].lng)
|
||||
ltgArr.push(dataArr[i].lat)
|
||||
if(key.includes(dataArr[i].subName)){
|
||||
dataArr[i].lng = dataArr[i].lng+0.001
|
||||
}else {
|
||||
key.push(dataArr[i].subName)
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
let lngMin = Math.min(...lngArr)-0.009
|
||||
let lngMax = Math.max(...lngArr)+0.009
|
||||
|
||||
let ltgMin = Math.min(...ltgArr)-0.004
|
||||
let ltgMax = Math.max(...ltgArr)+0.004
|
||||
|
||||
console.log(lngMin,lngMax)
|
||||
console.log(ltgMin,ltgMax)
|
||||
|
||||
let aaaa = []
|
||||
var point1 = new BMap.Point(lngMin, ltgMin);
|
||||
var point2 = new BMap.Point(lngMin, ltgMax);
|
||||
var point3 = new BMap.Point(lngMax, ltgMax);
|
||||
var point4 = new BMap.Point(lngMax, ltgMin);
|
||||
var point5 = new BMap.Point(lngMin, ltgMin);
|
||||
aaaa = [point1,point2,point3,point4,point5]
|
||||
|
||||
|
||||
|
||||
var polyline = new BMap.Polyline(aaaa, {strokeColor: color, strokeWeight: 3, strokeOpacity: 1});
|
||||
polyline.setStrokeStyle("dashed");
|
||||
map.addOverlay(polyline)*/
|
||||
|
||||
//自定义区域范围
|
||||
|
||||
|
||||
var point1 = new BMap.Point(118.744404,33.68198);
|
||||
var point1h = new BMap.Point( 118.746775,33.674469);
|
||||
|
||||
var point2 = new BMap.Point(118.751518,33.665635);
|
||||
var point2h = new BMap.Point(118.75928,33.660858);
|
||||
var point3 = new BMap.Point(118.763376,33.656771);
|
||||
|
||||
var point4 = new BMap.Point(118.76873,33.658875);
|
||||
var point5 = new BMap.Point(118.775359,33.661182);
|
||||
|
||||
var point5h = new BMap.Point(118.776617,33.661693);
|
||||
|
||||
|
||||
var point6 = new BMap.Point(118.78154,33.665449);
|
||||
var point6h = new BMap.Point(118.782761,33.667252);
|
||||
|
||||
var point7 = new BMap.Point(118.783642,33.669812);
|
||||
var point8 = new BMap.Point(118.783606,33.669511);
|
||||
|
||||
|
||||
//var point8h = new BMap.Point(118.782914,33.690001);
|
||||
//var point8h = new BMap.Point(118.786399,33.692187);
|
||||
|
||||
var point9 = new BMap.Point(118.786399,33.692187);
|
||||
|
||||
var point9h = new BMap.Point(118.768514,33.692134);
|
||||
|
||||
|
||||
var point10 = new BMap.Point(118.764813,33.688799);
|
||||
var point11 = new BMap.Point(118.759531,33.688078);
|
||||
var point12 = new BMap.Point(118.744404,33.68198);
|
||||
|
||||
let customArea = [point1,point1h,point2,point2h,point3,point4,point5,point5h,point6,point6h,point7,point8,point9,point9h,point10,point11,point12]
|
||||
var polyline = new BMap.Polyline(customArea, {strokeColor: color, strokeWeight: 5, strokeOpacity:1});
|
||||
polyline.setStrokeStyle("dashed");
|
||||
map.addOverlay(polyline)
|
||||
|
||||
|
||||
let temArr = dataArr.filter(item => item.hangLine != null)
|
||||
let max = Math.max(...temArr.map(line => line.eventCount));
|
||||
console.log("==========")
|
||||
|
||||
let arr = []
|
||||
if(max === 0){
|
||||
//没有最大暂降数,展示最多挂接线路
|
||||
let group = arrayGroupBy(dataArr,'hangLine')
|
||||
let tem = group.reduce((prev,next)=>{return prev.length > next.length ? prev:next})
|
||||
tem.forEach(it => {
|
||||
var point1 = new BMap.Point(it.lng, it.lat);
|
||||
arr.push(point1)
|
||||
})
|
||||
|
||||
}else {
|
||||
let maxLine = dataArr.find(line => line.eventCount === max);
|
||||
|
||||
let newTemArr = dataArr.filter(item => item.hangLine === maxLine.hangLine)
|
||||
|
||||
newTemArr.forEach(it => {
|
||||
var point1 = new BMap.Point(it.lng, it.lat);
|
||||
arr.push(point1)
|
||||
})
|
||||
|
||||
|
||||
}
|
||||
|
||||
arr.sort((a, b) => a.lng - b.lng)
|
||||
|
||||
|
||||
var polyline = new BMap.Polyline(arr, {strokeColor: color, strokeWeight: 3, strokeOpacity: 1});
|
||||
polyline.setStrokeStyle("dashed");
|
||||
map.addOverlay(polyline)
|
||||
|
||||
|
||||
drawElement(dataArr, map)
|
||||
|
||||
|
||||
var view = map.getViewport(eval(monitors));
|
||||
var mapZoom = view.zoom;
|
||||
var centerPoint = view.center;
|
||||
map.centerAndZoom(centerPoint, mapZoom);
|
||||
|
||||
|
||||
initSelect()
|
||||
|
||||
|
||||
// var strictBounds=new Bmap.Bounds(new BMap.Point(116.3645,39.9673),new BMap.Point(116.3646,39.9685));//sw西南,ne东北
|
||||
var strictBounds = map.getBounds();
|
||||
|
||||
map.addEventListener("dragend", function () {
|
||||
if (strictBounds.containsPoint(map.getCenter())) return;
|
||||
var view = map.getViewport(eval(monitors));
|
||||
var mapZoom = view.zoom;
|
||||
|
||||
let tem = mapZoom;
|
||||
var now = map.getZoom();
|
||||
|
||||
if (now >= mapZoom) {
|
||||
tem = now
|
||||
}
|
||||
var centerPoint = view.center;
|
||||
map.centerAndZoom(centerPoint, tem);
|
||||
})
|
||||
|
||||
map.addEventListener("zoomstart", function () {
|
||||
|
||||
if (strictBounds.containsPoint(map.getCenter())) return;
|
||||
var view = map.getViewport(eval(monitors));
|
||||
|
||||
|
||||
var mapZoom = view.zoom;
|
||||
|
||||
|
||||
let tem = mapZoom;
|
||||
|
||||
var now = map.getZoom();
|
||||
|
||||
if (now >= mapZoom) {
|
||||
tem = now
|
||||
}
|
||||
var centerPoint = view.center;
|
||||
map.centerAndZoom(centerPoint, tem);
|
||||
})
|
||||
|
||||
|
||||
} else {
|
||||
layer.msg(data.message, {icon: 2, time: 2000});
|
||||
}
|
||||
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(loading);
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
|
||||
getAreaLineEventCount(startTime, endTime)
|
||||
}
|
||||
|
||||
|
||||
function getAreaLineEventCount(startTime, endTime) {
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
url: '/pqs9000/monitorScope/getAreaLineEventCount',
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 200) {
|
||||
$("#leftContent").empty()
|
||||
let da = data.body;
|
||||
|
||||
let html =
|
||||
'<label style=\"color:' + color + ';font-size: 13px;font-weight: bold;\">统计时间: ' + startTime + '至' + endTime + '</label><br>' +
|
||||
'<label style=\"color:' + color + ';font-size: 13px;font-weight: bold; \">监测点统计:</label><button id="monitorInfo" class="btn btn-primary" style="float: right;margin-right: 20px">监测点详情</button><br>' +
|
||||
'<label style=color:' + color + '> 总数: ' + da.monitorAllCount + ' (个)</label><br>' +
|
||||
'<label style=color:' + color + '> 在线: ' + da.onlineMonitorCount + ' (个)</label><br>' +
|
||||
'<label style=color:' + color + '> 离线: ' + (da.monitorAllCount - da.onlineMonitorCount) + ' (个)</label><br>' +
|
||||
'<label style=\"color:' + color + ';font-size: 13px;font-weight: bold;\">暂降事件:</label><button id="eventInfo" style="float: right;margin-right: 20px" class="btn btn-primary">暂态事件详情</button><br>' +
|
||||
'<label style=color:' + color + '> 暂态事件个数: ' + da.eventCount + ' (个)</label><br>'+
|
||||
'<label style=\"color:' + color + ';font-size: 13px;font-weight: bold;\">一次接线图:</label><button class="btn btn-primary" style="float: right;margin-right: 20px" id="oneImag" onclick="openmonitorImg()">一次接线图</button><br>'
|
||||
|
||||
$("#leftContent").html(html)
|
||||
|
||||
} else {
|
||||
layer.msg(data.message, {icon: 2, time: 2000});
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//初始化下拉框数据
|
||||
function initSelect() {
|
||||
$('.selectpicker').selectpicker('val', '');
|
||||
$('.selectpicker').selectpicker('refresh');
|
||||
|
||||
let html = "<option value='0'>---请选择监测点---</option>";
|
||||
for (var i = 0; i < dataArr.length; i++) {
|
||||
html += "<option value='" + dataArr[i].lineId + "'data-name='" + dataArr[i].lineName + "'>" + dataArr[i].subName + " #" + dataArr[i].lineName + "</option>";
|
||||
}
|
||||
$("#select_article").html(html);
|
||||
$('.selectpicker').selectpicker('refresh');//加载select框选择器
|
||||
|
||||
|
||||
$("#select_article").change(function () {
|
||||
searchPoint()
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function getPoint(lineMap, map) {
|
||||
var point = new BMap.Point(lineMap.lng, lineMap.lat);
|
||||
if (lineMap.lng > 0 && lineMap.lat > 0) {
|
||||
monitors.push(point)
|
||||
}
|
||||
|
||||
//监测点点位信息;终端状态;终端状态颜色
|
||||
var marker, strState = '停运', fontState = '#808080';
|
||||
//通讯状态,通讯状态颜色
|
||||
var strStatus = '中断', fontStatus = '#FF0000';
|
||||
/********************************
|
||||
终端状态: 2停运 灰色 128,128,128 #808080
|
||||
1热备用 金色 255,215,0 #FFD700
|
||||
0投运(正常的则判断通讯状态)
|
||||
通讯状态: 0正常 绿色 0,128,0 #08CF5A
|
||||
1中断 红色 255,0,0 #FF0000
|
||||
**********************************/
|
||||
switch (lineMap.runFlag) {
|
||||
case 0:
|
||||
strState = '投运';
|
||||
fontState = '#08CF5A';
|
||||
//终端通讯状态(0:中断;1:正常)
|
||||
switch (lineMap.comFlag) {
|
||||
case 0:
|
||||
strStatus = '中断';
|
||||
fontStatus = '#FF0000';
|
||||
if (lineMap.eventCount > 0)
|
||||
marker = new BMap.Marker(point, wingreenMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, redMarkerOptions);
|
||||
break;
|
||||
case 1:
|
||||
strStatus = '正常';
|
||||
fontStatus = '#08CF5A';
|
||||
if (lineMap.eventCount > 0)
|
||||
marker = new BMap.Marker(point, wingreenMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, greenMarkerOptions);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
strState = '热备用';
|
||||
fontState = '#FFD700';
|
||||
if (lineMap.eventCount > 0)
|
||||
marker = new BMap.Marker(point, yellowMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, yellowMarkerOptions);
|
||||
break;
|
||||
case 2:
|
||||
strState = '停运';
|
||||
fontState = '#808080';
|
||||
if (lineMap.eventCount > 0)
|
||||
marker = new BMap.Marker(point, grayMarkerOptions);
|
||||
else
|
||||
marker = new BMap.Marker(point, grayMarkerOptions);
|
||||
break;
|
||||
}
|
||||
//设置marker其他属性
|
||||
marker.lineId = lineMap.lineId;//存储监测点的id
|
||||
marker.lineName = lineMap.lineName;//存储监测点的名称
|
||||
marker.runFlag = lineMap.runFlag;//存储监测点的状态
|
||||
marker.eventCount = lineMap.eventCount;//存储未处理事件
|
||||
|
||||
marker.lineMap = lineMap;//所存储的监测点信息
|
||||
|
||||
|
||||
let hang = lineMap.hangLine == null ? "/" : lineMap.hangLine
|
||||
var strTitle = '监测点名称: ' + lineMap.subName + "_" + lineMap.lineName;
|
||||
strTitle += '\n' + '挂接线路: ' + hang;
|
||||
if (lineMap.eventCount > 0) {
|
||||
strTitle += '\n' + '暂降事件发生次数:' + lineMap.eventCount + '(次)';
|
||||
}
|
||||
|
||||
|
||||
marker.setTitle(strTitle);//设置标注的标题,当鼠标移至标注上时显示此标题
|
||||
/************************************
|
||||
设置弹出框相关内容
|
||||
************************************/
|
||||
|
||||
//监测点界面
|
||||
//组装TIP
|
||||
var showInfo = '<div class="mystyle" style="margin:0;line-height:19px;padding:2px;font-size:12px;font-family:"微软雅黑";font-weight:bold;">' +
|
||||
'<label> 所属企业 </label> ' + lineMap.subName + '<br/>' +
|
||||
'<label> 母线 </label> ' + lineMap.busBarName + '<br/>' +
|
||||
'<label> 挂接线路 </label> ' + hang + '<br/>' +
|
||||
'<label> IP地址 </label> ' + lineMap.ip + '<br/>' +
|
||||
'<label> PT变比 </label> ' + lineMap.pt1 / 1000 + '/' + lineMap.pt2 / 1000 + '<br/>' +
|
||||
'<label> CT变比 </label> ' + lineMap.ct1 + '/' + lineMap.ct2 + '<br/>' +
|
||||
'<label> 生产厂家 </label> ' + lineMap.manufacturer + '<br/>' +
|
||||
'<label> 终端状态 </label> <font color="' + fontState + '">' + strState + '</font><br/>' +
|
||||
'<label> 通讯状态 </label> <font color="' + fontStatus + '">' + strStatus + '</font><br/>' +
|
||||
'<label style="float: right;"><button onclick="toMonitorPage()" class="btn btn-primary">监测点详细信息</button></label> <br/>' +
|
||||
|
||||
'<div class="form-inline fr" style="margin:5px 0px 1px 2px;">' +
|
||||
'</div>';
|
||||
|
||||
var searchInfoWindow = new BMapLib.SearchInfoWindow(map, showInfo, {
|
||||
title: '监测点名称:' + lineMap.lineName, //标题
|
||||
width: 250, //宽度
|
||||
height: 260, //高度
|
||||
searchTypes: [],
|
||||
enableSendToPhone: false
|
||||
});
|
||||
|
||||
marker.searchInfoWindow = searchInfoWindow;
|
||||
marker.addEventListener("click", function () {
|
||||
searchInfoWindow.open(point);
|
||||
var allOverlay = map.getOverlays();
|
||||
let index = 0
|
||||
for (var i = 0; i < allOverlay.length; i++) {
|
||||
|
||||
if (allOverlay[i].toString().indexOf("Polyline") > 0) {//删除折线
|
||||
if(index>0){
|
||||
map.removeOverlay(allOverlay[i]);
|
||||
}
|
||||
index++;
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
if (lineMap.hangLine !== null) {
|
||||
let temArr = dataArr.filter(item => item.hangLine === lineMap.hangLine)
|
||||
let arr = []
|
||||
temArr.forEach(it => {
|
||||
var point1 = new BMap.Point(it.lng, it.lat);
|
||||
arr.push(point1)
|
||||
})
|
||||
|
||||
arr.sort((a, b) => a.lng - b.lng)
|
||||
|
||||
var polyline = new BMap.Polyline(arr, {strokeColor: color, strokeWeight: 3, strokeOpacity: 1});
|
||||
polyline.setStrokeStyle("dashed");
|
||||
map.addOverlay(polyline)
|
||||
}
|
||||
});
|
||||
return marker;
|
||||
}
|
||||
|
||||
|
||||
function searchPoint() {
|
||||
var searchPoint = document.getElementById('select_article');
|
||||
if (searchPoint.value != "") {
|
||||
var marker;
|
||||
for (var i = 0; i < markers.length; i++) {
|
||||
marker = markers[i];
|
||||
|
||||
//先匹配是否有全名称的
|
||||
if (marker.lineId == searchPoint.value) {
|
||||
map.centerAndZoom(marker.getPosition(), 15);
|
||||
marker.searchInfoWindow.open(marker.getPosition());
|
||||
break;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
parent.layer.msg("请输入监测点名称!", {icon: 5, time: 2000});
|
||||
}
|
||||
}
|
||||
|
||||
//跳转到监测点页面
|
||||
function toMonitorPage(lineId) {
|
||||
|
||||
parent.addTab('monitor','在线监测点')
|
||||
|
||||
}
|
||||
|
||||
//查看监测点一次接线图
|
||||
function openmonitorImg() {
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '一次接线图',
|
||||
maxmin: false,
|
||||
resize: false,
|
||||
shadeClose: true, //点击遮罩关闭层
|
||||
area: ['90%', '90%'],
|
||||
content: '<div style="padding: 10px;width: 100%;height: 100%;"><img style="width: 100%;height: 100%"; src="/cdf/oneConnect.png"></div>',
|
||||
scrollbar: false
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function drawElement(dataarr, map) {
|
||||
let colors = []; // 存储已生成的颜色
|
||||
//解析Map
|
||||
for (key in dataarr) {
|
||||
//解析监测点信息
|
||||
let lineDetail = dataarr[key];
|
||||
let pointmarker = getPoint(lineDetail, map);
|
||||
map.addOverlay(pointmarker);
|
||||
markers.push(pointmarker);//把监测点信息放到集合中去
|
||||
}
|
||||
|
||||
/* pLineArr.forEach(item=>{
|
||||
let arr= [];
|
||||
item.forEach(it=>{
|
||||
var point1 = new BMap.Point(it.lng, it.lat);
|
||||
arr.push(point1)
|
||||
})
|
||||
|
||||
let color;
|
||||
do {
|
||||
// 生成随机颜色
|
||||
let r = Math.floor(Math.random() * 256);
|
||||
let g = Math.floor(Math.random() * 256);
|
||||
let b = Math.floor(Math.random() * 256);
|
||||
color = 'rgb(' + r + ',' + g + ',' + b + ')';
|
||||
} while (colors.includes(color) || isLightColor(color)); // 如果颜色已经存在,就重新生成
|
||||
|
||||
colors.push(color); // 将新颜色添加到数组中
|
||||
var polyline = new BMap.Polyline(arr, {strokeColor: color, strokeWeight: 3, strokeOpacity: 1});
|
||||
polyline.setStrokeStyle("dashed");
|
||||
map.addOverlay(polyline)
|
||||
})*/
|
||||
}
|
||||
|
||||
|
||||
const groupBy = (array, f) => {
|
||||
let groups = {};
|
||||
array.forEach(function (o) {
|
||||
var group = JSON.stringify(f(o));
|
||||
groups[group] = groups[group] || [];
|
||||
groups[group].push(o);
|
||||
});
|
||||
return Object.keys(groups).map(function (group) {
|
||||
return groups[group];
|
||||
});
|
||||
};
|
||||
|
||||
const arrayGroupBy = (list, groupId) => {
|
||||
let sorted = groupBy(list, function (item) {
|
||||
return [item[groupId]];
|
||||
});
|
||||
return sorted;
|
||||
};
|
||||
|
||||
|
||||
//创建图标
|
||||
var redIcon = new BMap.Icon("../images/img/pred.png", new BMap.Size(20, 20));
|
||||
var greenIcon = new BMap.Icon("../images/img/pgreen.png", new BMap.Size(30, 30));
|
||||
var yellowIcon = new BMap.Icon("../images/img/pyellow.png", new BMap.Size(20, 20));
|
||||
var grayIcon = new BMap.Icon("../images/img/pgray.png", new BMap.Size(20, 20));
|
||||
var stationIcon = new BMap.Icon("../images/img/station.png", new BMap.Size(25, 25));
|
||||
var wingrayIcon = new BMap.Icon("../images/img/wingray.gif", new BMap.Size(40, 40));
|
||||
var wingreenIcon = new BMap.Icon("../images/img/wingreen.gif", new BMap.Size(30, 30));
|
||||
var winredIcon = new BMap.Icon("../images/img/winred.gif", new BMap.Size(30, 30));
|
||||
|
||||
|
||||
var redMarkerOptions = {icon: redIcon, enableDragging: false}
|
||||
var greenMarkerOptions = {icon: greenIcon, enableDragging: false}
|
||||
var yellowMarkerOptions = {icon: yellowIcon, enableDragging: false}
|
||||
var grayMarkerOptions = {icon: grayIcon, enableDragging: false}
|
||||
|
||||
var wingreenMarkerOptions = {icon: wingreenIcon, enableDragging: false}
|
||||
var winredMarkerOptions = {icon: winredIcon, enableDragging: false}
|
||||
|
||||
501
pqs9000/src/main/webapp/jspJS/area/onlineRate.js
Normal file
501
pqs9000/src/main/webapp/jspJS/area/onlineRate.js
Normal file
@@ -0,0 +1,501 @@
|
||||
var picHeight;
|
||||
var tabs;
|
||||
var $area = $("#area");
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
var areaResult = null;
|
||||
var companyResult = null;
|
||||
var tiggleValue = "系统";
|
||||
var areLength;//区域的个数
|
||||
var companyLength;//厂家个数
|
||||
$("#interval").val("月份");
|
||||
|
||||
// 新增tab页
|
||||
function addTab(url, label) {
|
||||
tabs.add({url: url, label: label});
|
||||
}
|
||||
|
||||
//开关初始化
|
||||
$(function () {
|
||||
$(".checkbox").bootstrapSwitch({
|
||||
onText: "冀北", // 设置ON文本
|
||||
offText: "国网", // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state === true) {
|
||||
tiggleValue = "冀北";
|
||||
} else {
|
||||
tiggleValue = "国网";
|
||||
}
|
||||
//重新画图
|
||||
reDrawAllPic();
|
||||
}
|
||||
});
|
||||
picHeight = ($(window).height() - 38) * 0.5;
|
||||
tabs = $('#tabs').cleverTabs();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(startTime, endTime, area);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//点击按钮查询
|
||||
$("#query").click(function () {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(startTime, endTime, area);
|
||||
});
|
||||
|
||||
//请求后台刷新数据
|
||||
function refresh(startTime, endTime, area) {
|
||||
var i;
|
||||
$.ajax({
|
||||
url: '/pqs9000/area/onlineRate',
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
area: area
|
||||
},
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500 | data.body === null) {
|
||||
companyResult = null;
|
||||
areaResult = null;
|
||||
} else {
|
||||
areLength = data.body.area === null ? 0 : data.body.area.length;
|
||||
companyLength = data.body.interval === null ? 0 : data.body.interval.length;
|
||||
companyResult = data.body.interval;
|
||||
areaResult = data.body.area;
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//描绘区域图
|
||||
function drawAreaPic(area, intervals) {
|
||||
var xTip;
|
||||
if (tiggleValue === "系统") {
|
||||
xTip = '地区\n(终端数)\n';
|
||||
} else {
|
||||
xTip = '地区\n(监测点数)\n';
|
||||
}
|
||||
$("#areaDepts").css("height", picHeight);
|
||||
var areaOption = echarts.init($("#areaDepts")[0]);
|
||||
var rate = [];
|
||||
var areas = [];
|
||||
if (null != area) {
|
||||
for (var i = 0; i < area.length; i++) {
|
||||
var onlineRate;
|
||||
if (tiggleValue === "系统") {
|
||||
areas[i] = area[i].name + "\n(" + area[i].amounts + ")";
|
||||
onlineRate = Number(area[i].online);
|
||||
} else {
|
||||
areas[i] = area[i].name + "\n(" + area[i].gwamounts + ")";
|
||||
onlineRate = Number(area[i].gwonline);
|
||||
}
|
||||
var singleData = {};
|
||||
singleData.areaIndex = area[i].deptsIndex;
|
||||
var item = {};
|
||||
item.color = getColor(onlineRate);
|
||||
if (onlineRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = onlineRate;
|
||||
} else {
|
||||
singleData.value = onlineRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
rate[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '区域',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '10%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: xTip,
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: intervals
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: rate
|
||||
}]
|
||||
};
|
||||
areaOption.setOption(option);
|
||||
areaOption.on('click', function (params) {
|
||||
var city = params.data.areaIndex;
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var interval = $("#interval").val();
|
||||
if (getRole("/pqs9000/area/onlineratetable") == 1) {
|
||||
window.top.addTab('/pqs9000/area/onlineratetable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + city + '&interval=' + interval, '在线率列表')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//填充区域表格
|
||||
function initAreaTable(data) {
|
||||
var height = picHeight - 50;
|
||||
if (data == null) {
|
||||
data = [];
|
||||
}
|
||||
$("#areaTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
columnDefs: [
|
||||
{"width": "33%", "targets": 0},
|
||||
{"width": "33%", "targets": 1},
|
||||
{"width": "33%", "targets": 2}
|
||||
],
|
||||
order: [2, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{
|
||||
data: 'amounts', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
return full.amounts;
|
||||
} else {
|
||||
return full.gwamounts;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'online', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
data = full.online;
|
||||
} else {
|
||||
data = full.gwonline;
|
||||
}
|
||||
if (Number(data) === 3.1415) {
|
||||
return "/";
|
||||
} else if (Number(data) === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
//描绘终端厂家图
|
||||
function drawCompanyPic(company, intervals) {
|
||||
var xTip;
|
||||
if (tiggleValue === "系统") {
|
||||
xTip = '终端厂家\n(终端数)\n';
|
||||
} else {
|
||||
xTip = '终端厂家\n(监测点数)\n';
|
||||
}
|
||||
$("#company").css("height", picHeight);
|
||||
var comOption = echarts.init($("#company")[0]);
|
||||
var rate = [];
|
||||
var areas = [];
|
||||
if (null != company) {
|
||||
for (var i = 0; i < company.length; i++) {
|
||||
var onlineRate;
|
||||
if (tiggleValue === "系统") {
|
||||
areas[i] = company[i].name + "\n(" + company[i].amounts + ")";
|
||||
onlineRate = Number(company[i].online);
|
||||
} else {
|
||||
areas[i] = company[i].name + "\n(" + company[i].gwamounts + ")";
|
||||
onlineRate = Number(company[i].gwonline);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(onlineRate);
|
||||
if (onlineRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = onlineRate;
|
||||
} else {
|
||||
singleData.value = onlineRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
rate[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '终端厂家',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '10%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: xTip,
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: intervals
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: rate
|
||||
}]
|
||||
};
|
||||
comOption.setOption(option);
|
||||
comOption.on('click', function (params) {
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
if (getRole("/pqs9000/area/onlineratetable") == 1) {
|
||||
window.top.addTab('/pqs9000/area/onlineratetable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + $area.eq(0).attr("index") + '&interval=月份', '在线率列表')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//填充终端厂家表格
|
||||
function initCompanyTable(data) {
|
||||
var height = picHeight - 50;
|
||||
if (data == null) {
|
||||
data = [];
|
||||
}
|
||||
$("#companyTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
columnDefs: [
|
||||
{"width": "33%", "targets": 0},
|
||||
{"width": "33%", "targets": 1},
|
||||
{"width": "33%", "targets": 2}
|
||||
],
|
||||
order: [2, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{
|
||||
data: 'amounts', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
return full.amounts;
|
||||
} else {
|
||||
return full.gwamounts;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'online', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
data = full.online;
|
||||
} else {
|
||||
data = full.gwonline;
|
||||
}
|
||||
if (Number(data) === 3.1415) {
|
||||
return "/";
|
||||
} else if (Number(data) === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#areaT").width();
|
||||
if (width > 100) {
|
||||
if (parseInt(areLength) > parseInt(barspaclength)) {
|
||||
drawAreaPic(areaResult, 1);
|
||||
} else {
|
||||
drawAreaPic(areaResult, 0);
|
||||
}
|
||||
if (parseInt(companyLength) > parseInt(barspaclength)) {
|
||||
drawCompanyPic(companyResult, 1);
|
||||
} else {
|
||||
drawCompanyPic(companyResult, 0);
|
||||
}
|
||||
initAreaTable(areaResult);
|
||||
initCompanyTable(companyResult);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--end
|
||||
|
||||
|
||||
//开关触发图片更新
|
||||
function reDrawAllPic() {
|
||||
if (tiggleValue === "系统") {
|
||||
$("#typeTitle").html("终端数");
|
||||
$("#typeTitle1").html("终端数");
|
||||
} else {
|
||||
$("#typeTitle").html("监测点数");
|
||||
$("#typeTitle1").html("监测点数");
|
||||
}
|
||||
|
||||
if (areaResult === null) {
|
||||
drawAreaPic(null);
|
||||
initAreaTable(null);
|
||||
} else {
|
||||
if (parseInt(areLength) > parseInt(barspaclength)) {
|
||||
drawAreaPic(areaResult, 1);
|
||||
} else {
|
||||
drawAreaPic(areaResult, 0);
|
||||
}
|
||||
initAreaTable(areaResult);
|
||||
}
|
||||
if (companyResult === null) {
|
||||
drawCompanyPic(null);
|
||||
initCompanyTable(null);
|
||||
} else {
|
||||
if (parseInt(companyLength) > parseInt(barspaclength)) {
|
||||
drawCompanyPic(companyResult, 1);
|
||||
} else {
|
||||
drawCompanyPic(companyResult, 0);
|
||||
}
|
||||
initCompanyTable(companyResult);
|
||||
}
|
||||
}
|
||||
|
||||
//根据在线率获取颜色
|
||||
function getColor(data) {
|
||||
if (data >= 90) {
|
||||
return green;
|
||||
} else if (data === 3.1415) {
|
||||
return noMonitor;
|
||||
} else if (data === 3.14159) {
|
||||
return noData;
|
||||
} else if (data < 60) {
|
||||
return red;
|
||||
} else {
|
||||
return yellow;
|
||||
}
|
||||
}
|
||||
421
pqs9000/src/main/webapp/jspJS/area/overLimitMonitor.js
Normal file
421
pqs9000/src/main/webapp/jspJS/area/overLimitMonitor.js
Normal file
@@ -0,0 +1,421 @@
|
||||
var $area=$("#area");
|
||||
var $startTime=$("#startTime");
|
||||
var $endTime=$("#endTime");
|
||||
var $vollevel = $("#vollevel")
|
||||
$("#interval").val("月份");
|
||||
|
||||
var buttonname;
|
||||
var companyname;
|
||||
var tigName;
|
||||
var volData;
|
||||
var dataTable=null;
|
||||
var startTime,endTime,area,vollevel;
|
||||
|
||||
$(function () {
|
||||
startTime = $startTime.eq(0).val();
|
||||
endTime = $endTime.eq(0).val();
|
||||
area = $area.eq(0).val();
|
||||
vollevel = $vollevel.eq(0).val();
|
||||
loadselect("电压等级","vollevel");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data:{
|
||||
start: startTime,
|
||||
end: endTime
|
||||
},
|
||||
async:false,
|
||||
url: "/pqs9000/device/getMsgInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
buttonname = data.body.name;
|
||||
tigName = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
companyname = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
//初始化按钮开关
|
||||
$(".checkbox").bootstrapSwitch({
|
||||
onText: buttonname, // 设置ON文本
|
||||
offText: companyname, // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state === true) {
|
||||
tigName = buttonname;
|
||||
refresh(vollevel,area, startTime, endTime,tigName);
|
||||
} else {
|
||||
tigName = companyname;
|
||||
refresh(vollevel,area, startTime, endTime,tigName);
|
||||
}
|
||||
}
|
||||
});
|
||||
//初始化区域
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
console.log(data[0])
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
area = $area.eq(0).attr("index");
|
||||
vollevel = $vollevel.eq(0).val();
|
||||
startTime = $startTime.eq(0).val();
|
||||
endTime = $endTime.eq(0).val();
|
||||
refresh(vollevel,area, startTime, endTime,tigName);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#query").click(function() {
|
||||
area = $area.eq(0).attr("index");
|
||||
vollevel = $vollevel.eq(0).val();
|
||||
startTime = $startTime.eq(0).val();
|
||||
endTime = $endTime.eq(0).val();
|
||||
refresh(vollevel,area,startTime,endTime,tigName);
|
||||
});
|
||||
|
||||
//获取表格数据
|
||||
function refresh(vollevel,area,startTime,endTime,tigName){
|
||||
let statFlag = $('#allLineCheck').is(":checked")
|
||||
var i ;
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "/pqs9000/responsibility/overLimitMonitorData",
|
||||
dataType : "json",
|
||||
data : {
|
||||
startTime : startTime,
|
||||
endTime : endTime,
|
||||
area:area,
|
||||
vollevel:vollevel,
|
||||
tigName:tigName,
|
||||
statFlag:statFlag
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message,{icon:2,time:2000})
|
||||
volData=null;
|
||||
} else {
|
||||
//var sortData = bubbleSort(data);
|
||||
initTable(data.body);
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//实例化表格
|
||||
function initTable(data){
|
||||
var height=$(window).height()-160;
|
||||
dataTable=$("#vdlist").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable=$('#vdlist').DataTable({
|
||||
order:[],
|
||||
columnDefs : [
|
||||
{
|
||||
orderable : false,
|
||||
targets : [0,1]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{width:"1%",data: null, render : function(data, type, full, meta){
|
||||
return meta.row + 1 + meta.settings._iDisplayStart;
|
||||
}},
|
||||
{width: "1%",data:"provinceCompany"},
|
||||
{width: "1%",data:"cityCompany"},
|
||||
{width: "2.5%",data:"monitorName",render : function(data, type, full, meta){
|
||||
var value=data;
|
||||
if(data.length>15){
|
||||
value=data.substring(0,14)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width: "2%",data:"monitorType"},
|
||||
{width: "2%",data:"powerSubstationName",render:function (data) {
|
||||
return data == null? '/':data;
|
||||
}},
|
||||
{width: "2%",data:"objName",render:function (data) {
|
||||
return data == null? '/':data;
|
||||
}},
|
||||
{width: "2%",data:"monitorVoltageLevel"},
|
||||
{width: "2.5%",data:"plantName",render : function(data, type, full, meta){
|
||||
var value=data;
|
||||
if(data.length>15){
|
||||
value=data.substring(0,14)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width: "2%",data:"plantVolageLevel"},
|
||||
{width: "1%",data: "dlcMp"},
|
||||
{width: "1%",data: "devcMp"},
|
||||
{width: "1%",data: "xycMp"},
|
||||
{width: "1%",data: "overLimitDay"},
|
||||
// 电压偏差
|
||||
{width: "2%",data:"overVoltageDeviationDay"},
|
||||
{width: "2%",data:"maxVoltageDeviationData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitVoltageDeviationData"},
|
||||
{width: "2%",data:"diffVoltageDeviationData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//谐波电流
|
||||
{width: "2%",data:"overHarmonicCurrentDay"},
|
||||
{width: "2%",data:"maxHarmonicCurrentData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitHarmonicCurrentData"},
|
||||
{width: "2%",data:"diffHarmonicCurrentData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//谐波电压
|
||||
{width: "2%",data:"overLimitHarmVDay"},
|
||||
{width: "2%",data:"maxLimitHarmVData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitHarmVData"},
|
||||
{width: "2%",data:"diffHarmVData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//电压总谐波畸变率
|
||||
{width: "2%",data:"overVoltageDistortionDay"},
|
||||
{width: "2%",data:"maxVoltageDistortionData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitVoltageDistortionData"},
|
||||
{width: "2%",data:"diffVoltageDistortionData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//谐波电压含有率
|
||||
{width: "2%",data:"overHarmonicVoltageDay"},
|
||||
{width: "2%",data:"maxHarmonicVoltageData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitHarmonicVoltageData"},
|
||||
{width: "2%",data:"diffHarmonicVoltageData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//三相电压不平衡度
|
||||
{width: "2%",data:"overThreeVoltageUnbalanceDay"},
|
||||
{width: "2%",data:"maxThreeVoltageUnbalanceData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitThreeVoltageUnbalanceData"},
|
||||
{width: "2%",data:"diffThreeVoltageUnbalanceData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//频率偏差
|
||||
{width: "2%",data:"overFrequencyDeviationDay"},
|
||||
{width: "2%",data:"maxFrequencyDeviationData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitFrequencyDeviationData"},
|
||||
{width: "2%",data:"diffFrequencyDeviationData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//间谐波电压含有率
|
||||
{width: "2%",data:"overInterharmonicsDay"},
|
||||
{width: "2%",data:"maxInterharmonicsData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitInterharmonicsData"},
|
||||
{width: "2%",data:"diffInterharmonicsData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//负序电流
|
||||
{width: "2%",data:"overNegativeDay"},
|
||||
{width: "2%",data:"maxNegativeDay",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitNegativeData"},
|
||||
{width: "2%",data:"diffNegativeData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//闪变
|
||||
{width: "2%",data:"overFlickerDay"},
|
||||
{width: "2%",data:"maxFlickerData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
{width: "2%",data:"limitFlickerData"},
|
||||
{width: "2%",data:"diffFlickerData",render : function(data, type, full, meta){
|
||||
return data.toFixed(3);
|
||||
}},
|
||||
//其他次谐波
|
||||
{width: "1%",data:"overVoltageThreeTimes"},
|
||||
{width: "1%",data:"overVoltageFiveTimes"},
|
||||
{width: "1%",data:"overVoltageSevenTimes"},
|
||||
{width: "1%",data:"overVoltageElevenTimes"},
|
||||
{width: "1%",data:"overVoltageThirteenTimes"},
|
||||
{width: "1%",data:"overVoltageTwentyThirdTimes"},
|
||||
{width: "1%",data:"overVoltageTwentyFiveTimes"},
|
||||
{width: "1%",data:"overVoltageOtherTimes"},
|
||||
{width: "1%",data:"overCurrentThreeTimes"},
|
||||
{width: "1%",data:"overCurrentFiveTimes"},
|
||||
{width: "1%",data:"overCurrentSevenTimes"},
|
||||
{width: "1%",data:"overCurrentElevenTimes"},
|
||||
{width: "1%",data:"overCurrentThirteenTimes"},
|
||||
{width: "1%",data:"overCurrentTwentyThirdTimes"},
|
||||
{width: "1%",data:"overCurrentTwentyFiveTimes"},
|
||||
{width: "1%",data:"overCurrentOtherTimes"},
|
||||
{width: "2%",data:"monitorNumber"}
|
||||
],
|
||||
bAutoWidth:false,
|
||||
serverSide : false,
|
||||
destroy : true,
|
||||
data : data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rt',
|
||||
sScrollY: height,
|
||||
scrollX: true,
|
||||
//关闭分页功能
|
||||
bPaginate: false,
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json'
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function loadselect(dictypeName,div){
|
||||
var part='#'+div;
|
||||
$(part).find("option").remove();
|
||||
$.ajax({
|
||||
method : "post",
|
||||
url : "/pqs9000/device/getselect",
|
||||
data : {
|
||||
dictypeName:dictypeName
|
||||
},
|
||||
async:false,
|
||||
success : function(data) {
|
||||
if(data == null){
|
||||
var message = dictypeName + '信息加载失败';
|
||||
layer.msg(message,{icon:1,time:1000});
|
||||
}else{
|
||||
var option0 = $("<option selected value='"
|
||||
+ null + "'>"
|
||||
+ "全部" + "</option>");
|
||||
$(part).append(option0);
|
||||
$.each(data, function(i, item) {
|
||||
var option = $("<option value='"
|
||||
+ item.dicIndex + "'>"
|
||||
+ item.dicName + "</option>");
|
||||
$(part).append(option);
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it=null;
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it= setInterval('refreshQuery()',100);
|
||||
|
||||
}
|
||||
/* 刷新查询 */
|
||||
function refreshQuery(){
|
||||
var width=$("#vdlist").width();
|
||||
if(width>100){
|
||||
initTable(resultData);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
//特殊处理,表头紧缩问题--end
|
||||
|
||||
//制保留2位小数,如:2,会在2后面补上00.即2.00
|
||||
function toDecimal2(x) {
|
||||
var f = parseFloat(x);
|
||||
if (isNaN(f)) {
|
||||
return false;
|
||||
}
|
||||
var f = Math.round(x*100)/100;
|
||||
var s = f.toString();
|
||||
var rs = s.indexOf('.');
|
||||
if (rs < 0) {
|
||||
rs = s.length;
|
||||
s += '.';
|
||||
}
|
||||
while (s.length <= rs + 2) {
|
||||
s += '0';
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
//点击导出功能
|
||||
$('#exportMonitorTable').click(function () {
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
$("<form method='post' action='/pqs9000/responsibility/exportMonitorExcel?startTime="+startTime+"&endTime="+endTime+"'>"+
|
||||
"<input type='hidden'/>"+ encodeURIComponent("excelname")+"'/></form>").appendTo('body').submit().remove();
|
||||
});
|
||||
|
||||
//排序
|
||||
function bubbleSort(data) {
|
||||
for (var i=0;i<data.length-1;i++){
|
||||
for (var j=0;j<data.length-1-i;j++){
|
||||
if (data[j].overLimitDay<data[j+1].overLimitDay){
|
||||
var temp = data[j+1];
|
||||
data[j+1] = data[j];
|
||||
data[j] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
return data
|
||||
}
|
||||
|
||||
$('#interval').change(function() {
|
||||
var selectedValue = $(this).val();
|
||||
if (selectedValue === '天'){
|
||||
$('#calculate').css("display","block");
|
||||
} else {
|
||||
$('#calculate').css("display","none");
|
||||
}
|
||||
});
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#calculate").click(function() {
|
||||
var i ;
|
||||
startTime = $startTime.eq(0).val();
|
||||
endTime = $endTime.eq(0).val();
|
||||
layer.msg("后台进行计算,请稍后查看数据",{icon:1,time:2000});
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "/pqs9000/responsibility/manualCalculation",
|
||||
dataType : "json",
|
||||
data : {
|
||||
startTime : startTime,
|
||||
endTime : endTime
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
150
pqs9000/src/main/webapp/jspJS/area/powerCommon.js
Normal file
150
pqs9000/src/main/webapp/jspJS/area/powerCommon.js
Normal file
@@ -0,0 +1,150 @@
|
||||
|
||||
//根据等级获取对应的颜色
|
||||
function getColorByLevel(level) {
|
||||
if(level==="特质"){
|
||||
return "#2E8B56";
|
||||
}else if(level==="优质"){
|
||||
return "#5E9346";
|
||||
}else if(level==="优良"){
|
||||
return "#919B38";
|
||||
}else if(level==="良好"){
|
||||
return "#C1A128";
|
||||
}else if(level==="轻度污染"){
|
||||
return "#D39320";
|
||||
}else if(level==="中度污染"){
|
||||
return "#C37024";
|
||||
}else if(level==="重度污染"){
|
||||
return "#B54C26";
|
||||
}else if(level==="极度污染"){
|
||||
return "#A52A2A";
|
||||
}else if(level.indexOf("暂无数据")>0){
|
||||
return "#808080";
|
||||
}else if(level.indexOf("/")>0){
|
||||
return "#CCC";
|
||||
}
|
||||
}
|
||||
|
||||
//综合评分
|
||||
function getColorByLevelAllData(level) {
|
||||
if(level==="优质"){
|
||||
return "#2E8B56";
|
||||
}else if(level==="良好"){
|
||||
return "#919B38";
|
||||
}else if(level==="合格"){
|
||||
return "#D39320";
|
||||
}else if(level==="较差"){
|
||||
return "#B54C26";
|
||||
}else if(level==="极差"){
|
||||
return "#A52A2A";
|
||||
}else if(level.indexOf("暂无数据")>0){
|
||||
return "#808080";
|
||||
}else if(level.indexOf("/")>0){
|
||||
return "#CCC";
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//点击ul切换页面表格数据
|
||||
$("#qualifiedTab a").on('click',function () {
|
||||
var html=$(this).html();
|
||||
parent.$("#target").text(html);
|
||||
//执行查询操作并画图
|
||||
var urlPart=$(this).prop("id");
|
||||
if(urlPart==="vuDev"){
|
||||
if (powerQualityData===null){
|
||||
initMap(null,html,17.5,2.5,'(%)',lineFeed,barRouteZero)
|
||||
}else{
|
||||
var powerLength=powerQualityData.vuDevs==null?0:powerQualityData.vuDevs.length;
|
||||
if(parseInt(powerLength)>parseInt(barUpperLimit6)) {
|
||||
initMap(powerQualityData.vuDevs, html, 17.5, 2.5, '(%)',noLineFeed,barRouteIncline)
|
||||
}else {
|
||||
initMap(powerQualityData.vuDevs, html, 17.5, 2.5, '(%)',lineFeed,barRouteZero)
|
||||
}
|
||||
}
|
||||
}else if (urlPart==="frequencyDeviation"){
|
||||
if (powerQualityData===null){
|
||||
initMap(null,html,0.35,0.05,'(Hz)',lineFeed,barRouteZero)
|
||||
}else{
|
||||
var powerLength=powerQualityData.freqDev==null?0:powerQualityData.freqDev.length;
|
||||
if(parseInt(powerLength)>parseInt(barUpperLimit6)) {
|
||||
initMap(powerQualityData.freqDev, html, 0.35, 0.05, '(Hz)',noLineFeed,barRouteIncline)
|
||||
}else {
|
||||
initMap(powerQualityData.freqDev, html, 0.35, 0.05, '(Hz)',lineFeed,barRouteZero)
|
||||
}
|
||||
}
|
||||
}else if (urlPart==="vthd"){
|
||||
if (powerQualityData===null){
|
||||
initMap(null,html,3.5,0.5,'(%)',lineFeed,barRouteZero)
|
||||
}else{
|
||||
var powerLength=powerQualityData.vThdCp95==null?0:powerQualityData.vThdCp95.length;
|
||||
if(parseInt(powerLength)>parseInt(barUpperLimit6)) {
|
||||
initMap(powerQualityData.vThdCp95, html, 3.5, 0.5, '(%)',noLineFeed,barRouteIncline)
|
||||
}else {
|
||||
initMap(powerQualityData.vThdCp95, html, 3.5, 0.5, '(%)',lineFeed,barRouteZero)
|
||||
}
|
||||
}
|
||||
}else if (urlPart==="vplt"){
|
||||
if (powerQualityData===null){
|
||||
initMap(null,html,1.05,0.15,'',lineFeed,barRouteZero)
|
||||
}else{
|
||||
var powerLength=powerQualityData.dataPlt==null?0:powerQualityData.dataPlt.length;
|
||||
if(parseInt(powerLength)>parseInt(barUpperLimit6)) {
|
||||
initMap(powerQualityData.dataPlt, html, 1.2, 0.15, '',noLineFeed,barRouteIncline)
|
||||
}else {
|
||||
initMap(powerQualityData.dataPlt, html, 1.2, 0.15, '',lineFeed,barRouteZero)
|
||||
}
|
||||
}
|
||||
}else if (urlPart==="vUnbalance"){
|
||||
if (powerQualityData===null){
|
||||
initMap(null,html,3.5,0.5,'(%)',lineFeed,barRouteZero)
|
||||
}else{
|
||||
var powerLength=powerQualityData.vunbalanceCp95==null?0:powerQualityData.vunbalanceCp95.length;
|
||||
if(parseInt(powerLength)>parseInt(barUpperLimit6)) {
|
||||
initMap(powerQualityData.vunbalanceCp95, html, 3.5, 0.5, '(%)',noLineFeed,barRouteIncline)
|
||||
}else {
|
||||
initMap(powerQualityData.vunbalanceCp95, html, 3.5, 0.5, '(%)',lineFeed,barRouteZero)
|
||||
}
|
||||
}
|
||||
}else if(urlPart==="allData"){
|
||||
if (powerQualityData===null){
|
||||
initMap(null,'综合评估',5,1,'',lineFeed,barRouteZero)
|
||||
}else{
|
||||
var powerLength=powerQualityData.synData==null?0:powerQualityData.synData.length;
|
||||
if(parseInt(powerLength)>parseInt(barUpperLimit6)) {
|
||||
initMap(powerQualityData.synData, '综合评估', 5, 1, '',noLineFeed,barRouteIncline)
|
||||
}else {
|
||||
initMap(powerQualityData.synData, '综合评估', 5, 1, '',lineFeed,barRouteZero)
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
//绘制地图的数据
|
||||
function drawMap(d,name) {
|
||||
if (name ==="电压偏差"){
|
||||
renderMapEvent(d,0,2.5,5,7.5,10,12.5,15,17.5);
|
||||
}else if (name ==="频率偏差"){
|
||||
renderMapEvent(d,0,0.05,0.1,0.15,0.2,0.25,0.30,0.35);
|
||||
}else if (name ==="谐波含量"){
|
||||
renderMapEvent(d,0,0.5,1,1.5,2,2.5,3,3.5);
|
||||
}else if (name ==="电压闪变"){
|
||||
renderMapEvent(d,0,0.15,0.3,0.45,0.6,0.75,0.90,1.05);
|
||||
}else if (name ==="三相电压不平衡度"){
|
||||
renderMapEvent(d,0,0.5,1,1.5,2,2.5,3,3.5);
|
||||
}else if(name==="综合评估"){
|
||||
renderMapEventAll(d,0,2,3,4,4.5,5);
|
||||
}
|
||||
}
|
||||
|
||||
//获取柱状图的最大值
|
||||
function getMaxValue(max,quentityData,temp) {
|
||||
for(var i=0;i<quentityData.length;i++){
|
||||
if(quentityData[i].data!==3.1415&quentityData[i].data!==3.14159){
|
||||
if (quentityData[i].data>=max){
|
||||
max = quentityData[i].data+temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
return max.toFixed(2);
|
||||
}
|
||||
|
||||
593
pqs9000/src/main/webapp/jspJS/area/powerQuality.js
Normal file
593
pqs9000/src/main/webapp/jspJS/area/powerQuality.js
Normal file
@@ -0,0 +1,593 @@
|
||||
var picHeight, powerQualityData;
|
||||
var $area = $("#area");
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
var powerName = "综合";
|
||||
$("#interval").val("月份");
|
||||
var powerLength = 0;//长度
|
||||
|
||||
//去后台请求当前用户的部门(区域)信息
|
||||
$(function () {
|
||||
picHeight=($(window).height()-88);
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//查询电能质量数据
|
||||
function refresh(area, startTime, endTime) {
|
||||
$("li").removeClass("active");
|
||||
$("ul li:first-child").addClass("active")
|
||||
var i;
|
||||
$.ajax({
|
||||
url: '/pqs9000/area/powerQualityVol',
|
||||
type: 'post',
|
||||
data: {
|
||||
area: area,
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
if (data.body === null) {
|
||||
powerQualityData = null;
|
||||
} else {
|
||||
powerLength = data.body===null?0:data.body.length;
|
||||
powerQualityData = data.body;
|
||||
}
|
||||
startQuery()
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function initMap(quentityData, name, max, temp, unit,lineFeed,route) {
|
||||
var $map = $("#map");
|
||||
$map.css("height", picHeight);
|
||||
var $bar = $("#bar");
|
||||
$bar.css("height", picHeight * 0.5);
|
||||
powerName = name;
|
||||
$("#norm").html(name + unit)
|
||||
//地图容器
|
||||
mapEvent = echarts.init(document.getElementById('map'));
|
||||
//绘制地图前,获取当前应该绘制的图形父节点 当前节点
|
||||
var area = $area.eq(0).attr("index");
|
||||
var pNode,node;
|
||||
$.ajax({
|
||||
url:'/pqs9000/area/getMapInfo',
|
||||
type:'post',
|
||||
data:{
|
||||
area:area
|
||||
},
|
||||
async:false,
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
pNode=data.body.name;
|
||||
node=data.body.subName;
|
||||
}
|
||||
})
|
||||
|
||||
if (quentityData == null) {
|
||||
//获取地图数据
|
||||
var geoJson = getFullMapData(pNode,node);
|
||||
d = [];
|
||||
//注册地图
|
||||
echarts.registerMap('电能质量', geoJson);
|
||||
//绘制地图
|
||||
drawMap(d, name);
|
||||
} else {
|
||||
if (quentityData.length > 1) {
|
||||
var geoJson = getFullMapData(pNode,node);
|
||||
var d = [];
|
||||
for (var i = 0; i < quentityData.length; i++) {
|
||||
//根据level获取等级颜色
|
||||
var color;
|
||||
if (name === "综合评估") {
|
||||
color = getColorByLevelAllData(quentityData[i].level);
|
||||
} else {
|
||||
color = getColorByLevel(quentityData[i].level);
|
||||
}
|
||||
var dataTemp;
|
||||
if (quentityData[i].data === 3.1415) {
|
||||
dataTemp = "/";
|
||||
} else if (quentityData[i].data === 3.14159) {
|
||||
dataTemp = "(暂无数据)";
|
||||
} else {
|
||||
dataTemp = quentityData[i].data
|
||||
}
|
||||
d.push({
|
||||
name: quentityData[i].name,
|
||||
value: dataTemp,
|
||||
emphasis: {itemStyle: {areaColor: color, borderColor: "white", borderWidth: "1"}}
|
||||
})
|
||||
}
|
||||
//注册地图
|
||||
echarts.registerMap('电能质量', geoJson);
|
||||
drawMap(d, name);
|
||||
} else {
|
||||
var d = [];
|
||||
var color;
|
||||
var dataTemp;
|
||||
if (name === "综合评估") {
|
||||
color = getColorByLevelAllData(quentityData[0].level);
|
||||
} else {
|
||||
color = getColorByLevel(quentityData[0].level);
|
||||
}
|
||||
if (quentityData[0].data === 3.1415) {
|
||||
dataTemp = "/";
|
||||
} else if (quentityData[0].data === 3.14159) {
|
||||
dataTemp = "(暂无数据)";
|
||||
} else {
|
||||
dataTemp = quentityData[0].data
|
||||
}
|
||||
var data = getFullMapData(pNode,node);
|
||||
if (data !== null) {
|
||||
d.push({
|
||||
name: quentityData[0].name,
|
||||
value: dataTemp,
|
||||
emphasis: {itemStyle: {areaColor: color, borderColor: "white", borderWidth: "1"}}
|
||||
});
|
||||
//获取地图数据
|
||||
//注册地图
|
||||
echarts.registerMap('电能质量', data);
|
||||
drawMap(d, name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//绘制柱状图
|
||||
var barOption = echarts.init($("#bar")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
var interval;
|
||||
if (null != quentityData) {
|
||||
//判断内部数据有没有大于max的,重新赋值max
|
||||
max = getMaxValue(max, quentityData, temp);
|
||||
//具体情况具体分析,分析出间隔区间interval
|
||||
var intTemp = max / 5;
|
||||
if (intTemp > 1) {
|
||||
interval = intTemp.toFixed(0);
|
||||
if (interval < intTemp) {
|
||||
interval = Number(interval) + 1;
|
||||
}
|
||||
max = interval * 5;
|
||||
max = max.toFixed(0);
|
||||
} else if (intTemp > 0.1) {
|
||||
interval = intTemp.toFixed(1);
|
||||
if (interval < intTemp) {
|
||||
interval = Number(interval) + 0.1;
|
||||
}
|
||||
max = interval * 5;
|
||||
max = max.toFixed(1);
|
||||
} else {
|
||||
interval = intTemp.toFixed(2);
|
||||
if (interval < intTemp) {
|
||||
interval = Number(interval) + 0.01;
|
||||
}
|
||||
max = interval * 5;
|
||||
max = max.toFixed(2);
|
||||
}
|
||||
for (var i = 0; i < quentityData.length; i++) {
|
||||
areas[i] = quentityData[i].name + lineFeed+"(" + quentityData[i].monitor + ")";
|
||||
var dataTemp = 0;
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
if (quentityData[i].data === 3.1415) {
|
||||
dataTemp = max * 0.03;
|
||||
singleData.value = dataTemp;
|
||||
item.color = noMonitor;
|
||||
singleData.itemStyle = item;
|
||||
} else if (quentityData[i].data === 3.14159) {
|
||||
dataTemp = max * 0.03;
|
||||
singleData.value = dataTemp;
|
||||
item.color = noData;
|
||||
singleData.itemStyle = item;
|
||||
} else if (quentityData[i].data < max * 0.03) {
|
||||
dataTemp = max * 0.03;
|
||||
singleData.value = dataTemp;
|
||||
item.color = "#2E8B57";
|
||||
item.actual = quentityData[i].data;
|
||||
singleData.itemStyle = item;
|
||||
} else {
|
||||
singleData.value = quentityData[i].data;
|
||||
var level = quentityData[i].level;
|
||||
if (name === "综合评估") {
|
||||
item.color = getColorByLevelAllData(level);
|
||||
} else {
|
||||
item.color = getColorByLevel(level);
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
}
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
top:'12%',
|
||||
left: '4%',
|
||||
right: '10%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
name: '地区\n(监测点数)',
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
show: true,
|
||||
rotate:route,
|
||||
fontSize:10
|
||||
},
|
||||
boundaryGap:true
|
||||
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
min: '0',
|
||||
nameLocation:'center',
|
||||
nameTextStyle:{
|
||||
padding:[3, 7, 19, 1]
|
||||
},
|
||||
name: unit,
|
||||
max: max,
|
||||
}],
|
||||
series: [{
|
||||
name: name,
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
barOption.setOption(option);
|
||||
//填充表格
|
||||
var height = picHeight * 0.5 - 40;
|
||||
if (quentityData == null) {
|
||||
quentityData = [];
|
||||
}
|
||||
$("#areaTable").DataTable({
|
||||
data: quentityData,
|
||||
autoWidth: false,
|
||||
order: [],
|
||||
columnDefs: [
|
||||
{"width": "33%", "targets": 0},
|
||||
{"width": "33%", "targets": 1},
|
||||
{"width": "33%", "targets": 2}
|
||||
],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
pageLength: 100,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{
|
||||
data: 'data', render: function (data, type, full, meta) {
|
||||
if (data === 3.1415) {
|
||||
return "/";
|
||||
} else if (data === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
},
|
||||
{data: 'level'}
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
function renderMapEvent(data, f1, f2, f3, f4, f5, f6, f7, f8) {
|
||||
//初始化绘制全国地图配置
|
||||
var optionEvent = {
|
||||
backgroundColor: canvasBG,
|
||||
title: {
|
||||
text: powerName + '评估',
|
||||
left: 'center'
|
||||
},
|
||||
animationDuration: 1000,
|
||||
animationEasing: 'cubicOut',
|
||||
animationDurationUpdate: 1000,
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: function (params) {
|
||||
var tips = "";
|
||||
if (isNaN(params.value)) {
|
||||
if (params.data === undefined || params.data.value === undefined) {
|
||||
tips += '<font style=\'color:' + white + '\'>暂无数据</font><br/>';
|
||||
} else if (params.data.value === "/" | params.data.value === "(暂无数据)") {
|
||||
tips += '<font style=\'color:' + white + '\'>' + params.name + '</font></br>';
|
||||
tips += powerName + '<font style=\'color:' + white + '\'>:' + params.data.value + '</font><br/>';
|
||||
}
|
||||
} else {
|
||||
tips += '<font style=\'color:' + white + '\'>' + params.name + '</font></br>';
|
||||
tips += powerName + '<font style=\'color:' + white + '\'>:' + params.value + '</font><br/>';
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
}
|
||||
};
|
||||
optionEvent.visualMap = {
|
||||
type: 'piecewise',
|
||||
pieces: [
|
||||
{gt: f8, label: '极度污染'},
|
||||
{gt: f7, lte: f8, label: '重度污染'},
|
||||
{gt: f6, lte: f7, label: '中度污染'},
|
||||
{gt: f5, lte: f6, label: '轻度污染'},
|
||||
{gt: f4, lte: f5, label: '良好'},
|
||||
{gt: f3, lte: f4, label: '优良'},
|
||||
{gt: f2, lte: f3, label: '优质'},
|
||||
{gte: f1, lte: f2, label: '特质'}
|
||||
],
|
||||
color: [red, yellow, green],
|
||||
inverse: true
|
||||
};
|
||||
optionEvent.series = [
|
||||
{
|
||||
// name: map,
|
||||
type: 'map',
|
||||
mapType: '电能质量',
|
||||
roam: true,
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'black',
|
||||
fontSize: 10
|
||||
}
|
||||
},
|
||||
emphasis: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'black',
|
||||
fontSize: 10
|
||||
}
|
||||
}
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
areaColor: '#CCCCCC',
|
||||
borderColor: 'dodgerblue'
|
||||
},
|
||||
emphasis: {
|
||||
areaColor: '#B6B5B5'
|
||||
}
|
||||
},
|
||||
data: data
|
||||
}
|
||||
];
|
||||
mapEvent.dispatchAction({
|
||||
type: 'restore'
|
||||
});
|
||||
//渲染地图
|
||||
mapEvent.setOption(optionEvent);
|
||||
}
|
||||
|
||||
function renderMapEventAll(data, f1, f2, f3, f4, f5, f6) {
|
||||
//初始化绘制全国地图配置
|
||||
var optionEvent = {
|
||||
backgroundColor: canvasBG,
|
||||
title: {
|
||||
text: powerName,
|
||||
left: 'center'
|
||||
},
|
||||
animationDuration: 1000,
|
||||
animationEasing: 'cubicOut',
|
||||
animationDurationUpdate: 1000,
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter: function (params) {
|
||||
var tips = "";
|
||||
if (isNaN(params.value)) {
|
||||
if (params.data === undefined || params.data.value === undefined) {
|
||||
tips += '<font style=\'color:' + white + '\'>暂无数据</font><br/>';
|
||||
} else if (params.data.value === "/" | params.data.value === "(暂无数据)") {
|
||||
tips += '<font style=\'color:' + white + '\'>' + params.name + '</font></br>';
|
||||
tips += powerName + '<font style=\'color:' + white + '\'>:' + params.data.value + '</font><br/>';
|
||||
}
|
||||
} else {
|
||||
tips += '<font style=\'color:' + white + '\'>' + params.name + '</font></br>';
|
||||
tips += powerName + '<font style=\'color:' + white + '\'>:' + params.value + '</font><br/>';
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
}
|
||||
};
|
||||
optionEvent.visualMap = {
|
||||
type: 'piecewise',
|
||||
pieces: [
|
||||
{gte: f5, lte: f6, label: '优质'},
|
||||
{gte: f4, lt: f5, label: '良好'},
|
||||
{gte: f3, lt: f4, label: '合格'},
|
||||
{gte: f2, lt: f3, label: '较差'},
|
||||
{gte: f1, lt: f2, label: '极差'}
|
||||
],
|
||||
color: [green, yellow, red],
|
||||
inverse: false
|
||||
};
|
||||
optionEvent.series = [
|
||||
{
|
||||
// name: map,
|
||||
type: 'map',
|
||||
mapType: '电能质量',
|
||||
roam: true,
|
||||
label: {
|
||||
normal: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'black',
|
||||
fontSize: 10
|
||||
}
|
||||
},
|
||||
emphasis: {
|
||||
show: true,
|
||||
textStyle: {
|
||||
color: 'black',
|
||||
fontSize: 10
|
||||
}
|
||||
}
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
areaColor: '#CCCCCC',
|
||||
borderColor: 'dodgerblue'
|
||||
},
|
||||
emphasis: {
|
||||
areaColor: '#B6B5B5'
|
||||
}
|
||||
},
|
||||
data: data
|
||||
}
|
||||
];
|
||||
mapEvent.dispatchAction({
|
||||
type: 'restore'
|
||||
})
|
||||
//渲染地图
|
||||
mapEvent.setOption(optionEvent);
|
||||
}
|
||||
|
||||
$("#query").click(function () {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
});
|
||||
|
||||
function divdangerMouseOver() {
|
||||
var tab = $("#qualifiedTab .active a").text()
|
||||
if (tab === "综合评估") {
|
||||
initTipTableAll([["等级", "1", "2", "3", "4", "5"], ["综合评估", "[1,2]", "(2,3]", "(3,4]", "(4,4.5]", "(4.5,5]"]]);
|
||||
$("#tipsAll").css("display", "block");
|
||||
} else {
|
||||
if (tab === "电压偏差") {
|
||||
initTipTable([["等级", "1", "2", "3", "4", "5", "6", "7", "8"], ["电压偏差(≤10%)", "[0,2.5]", "(2.5,5]", "(5,7.5]", "(7.5,10]", "(10,12.5]", "(12.5,15]", "(15,17.5]", "(17.5,+∞)"]]);
|
||||
} else if (tab === "电压闪变") {
|
||||
initTipTable([["等级", "1", "2", "3", "4", "5", "6", "7", "8"], ["电压闪变(≤0.6)", "[0,0.15]", "(0.15,0.3]", "(0.3,0.45]", "(0.45,0.60]", "(0.6,0.75]", "(0.75,0.90]", "(0.90,1.05]", "(1.05,+∞)"]]);
|
||||
} else if (tab === "谐波含量") {
|
||||
initTipTable([["等级", "1", "2", "3", "4", "5", "6", "7", "8"], ["谐波含量(≤2.00%)", "[0,0.5]", "(0.5,1]", "(1,1.5]", "(1.5,2]", "(2,2.5]", "(2.5,3]", "(3,3.5]", "(3.5,+∞)"]]);
|
||||
} else if (tab === "频率偏差") {
|
||||
initTipTable([["等级", "1", "2", "3", "4", "5", "6", "7", "8"], ["频率偏差(≤±0.2Hz)", "[0,0.05]", "(0.05,0.10]", "(0.10,0.15]", "(0.15,0.20]", "(0.20,0.25]", "(0.25,0.30]", "(0.30,0.35]", "(0.35,+∞)"]]);
|
||||
} else if (tab === "三相电压不平衡度") {
|
||||
initTipTable([["等级", "1", "2", "3", "4", "5", "6", "7", "8"], ["三相电压不平衡度(≤2.0%)", "[0,0.5]", "(0.5,1]", "(1,1.5]", "(1.5,2]", "(2,2.5]", "(2.5,3]", "(3,3.5]", "(3.5,+∞)"]]);
|
||||
}
|
||||
$("#tips").css("display", "block");
|
||||
}
|
||||
}
|
||||
|
||||
function divdangerMouseOut() {
|
||||
$("#tips").css("display", "none");
|
||||
$("#tipsAll").css("display", "none");
|
||||
}
|
||||
|
||||
function initTipTable(data) {
|
||||
$("#tipTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
ordering: false,
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function initTipTableAll(data) {
|
||||
$("#tipTableAll").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
ordering: false,
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#table").width();
|
||||
if (width > 100) {
|
||||
if (powerQualityData === null) {
|
||||
initMap(null, '综合评估', 5, 1, '',lineFeed,barRouteZero)
|
||||
} else {
|
||||
var powerLength=powerQualityData.synData==null?0:powerQualityData.synData.length;
|
||||
if(parseInt(powerLength)>parseInt(barUpperLimit6)){
|
||||
initMap(powerQualityData.synData,'综合评估',5,1,'',noLineFeed,barRouteIncline)
|
||||
}else {
|
||||
initMap(powerQualityData.synData,'综合评估',5,1,'',lineFeed,barRouteZero)
|
||||
}
|
||||
}
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--end
|
||||
1165
pqs9000/src/main/webapp/jspJS/area/steady.js
Normal file
1165
pqs9000/src/main/webapp/jspJS/area/steady.js
Normal file
File diff suppressed because it is too large
Load Diff
52
pqs9000/src/main/webapp/jspJS/area/steadyCommon.js
Normal file
52
pqs9000/src/main/webapp/jspJS/area/steadyCommon.js
Normal file
@@ -0,0 +1,52 @@
|
||||
//根据合格率获取颜色
|
||||
function getColor(data) {
|
||||
if (data>=90){
|
||||
return green;
|
||||
}else if (data===3.1415){
|
||||
return noMonitor;
|
||||
}else if (data===3.14159){
|
||||
return noData;
|
||||
}else if (data<60){
|
||||
return red;
|
||||
}else{
|
||||
return yellow;
|
||||
}
|
||||
}
|
||||
|
||||
//切换div的显示与隐藏
|
||||
function changeClass(single) {
|
||||
if(single===1){
|
||||
$(".allArea").removeClass("block");
|
||||
$(".allArea").addClass("none");
|
||||
$(".single").addClass("block");
|
||||
$(".single").removeClass("none");
|
||||
$(".singleArea").removeClass("block");
|
||||
$(".singleArea").addClass("none");
|
||||
}else{
|
||||
$(".allArea").addClass("block");
|
||||
$(".allArea").removeClass("none");
|
||||
$(".single").removeClass("block");
|
||||
$(".single").addClass("none");
|
||||
$(".singleArea").removeClass("block");
|
||||
$(".singleArea").addClass("none");
|
||||
}
|
||||
}
|
||||
|
||||
//切换全部图形的显示与隐藏
|
||||
function changeAllClass(single) {
|
||||
if(single===1){
|
||||
$(".allArea").removeClass("block");
|
||||
$(".allArea").addClass("none");
|
||||
$(".single").removeClass("block");
|
||||
$(".single").addClass("none");
|
||||
$(".singleArea").removeClass("none");
|
||||
$(".singleArea").addClass("block");
|
||||
}else{
|
||||
$(".allArea").addClass("block");
|
||||
$(".allArea").removeClass("none");
|
||||
$(".single").removeClass("block");
|
||||
$(".single").addClass("none");
|
||||
$(".singleArea").removeClass("block");
|
||||
$(".singleArea").addClass("none");
|
||||
}
|
||||
}
|
||||
241
pqs9000/src/main/webapp/jspJS/area/steadystat.js
Normal file
241
pqs9000/src/main/webapp/jspJS/area/steadystat.js
Normal file
@@ -0,0 +1,241 @@
|
||||
$(function () {
|
||||
getMonitorType();
|
||||
|
||||
$('#bx').css('height', $(window).height() - 44);
|
||||
deleteOption();
|
||||
getDataByTime();
|
||||
|
||||
$("#query").click(function () {
|
||||
getDataByTime();
|
||||
});
|
||||
});
|
||||
|
||||
$("#helper").click(function () {
|
||||
toHelper("#jcdyxts");
|
||||
});
|
||||
|
||||
function initPic(hours, days, data, name, xname, yname) {
|
||||
var myChart = echarts.init(document.getElementById('bx'));
|
||||
myChart.clear();
|
||||
|
||||
data = data.map(function (item) {
|
||||
if (item[2] == null) {
|
||||
return [item[1], item[0], item[2] || '-', item[3], item[4], item[2] || '-'];
|
||||
} else {
|
||||
return [item[1], item[0], item[2] || '0', item[3], item[4], item[2] || '0'];
|
||||
}
|
||||
|
||||
});
|
||||
|
||||
var option = {
|
||||
tooltip: {
|
||||
position: 'top',
|
||||
formatter: function (param) {
|
||||
return days[param.data[1]] + ':' + param.data[2] + '%';
|
||||
}
|
||||
},
|
||||
title: {
|
||||
text: '稳态指标超标点占比',
|
||||
subtext: '统计类型:' + name,
|
||||
x: 'center'
|
||||
},
|
||||
animation: false,
|
||||
grid: {
|
||||
left: '6%',
|
||||
right: '4%',
|
||||
bottom: '15%'
|
||||
},
|
||||
xAxis: {
|
||||
type: 'category',
|
||||
data: hours,
|
||||
splitArea: {
|
||||
show: true
|
||||
},
|
||||
name: xname
|
||||
},
|
||||
yAxis: {
|
||||
type: 'category',
|
||||
data: days,
|
||||
splitArea: {
|
||||
show: true
|
||||
},
|
||||
name: yname,
|
||||
axisLabel: {
|
||||
formatter: function (value) {
|
||||
if (name != '电压等级') {
|
||||
value = value.toString();
|
||||
var maxlength = 5;
|
||||
|
||||
if (value.length > maxlength) {
|
||||
return value.substring(0, maxlength - 1) + '...';
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
}, triggerEvent: true
|
||||
},
|
||||
visualMap: {
|
||||
min: 0,
|
||||
max: 100,
|
||||
calculable: true,
|
||||
orient: 'horizontal',
|
||||
left: 'center',
|
||||
text: ['', '稳态指标超标点占比(%)'],
|
||||
inRange: {
|
||||
color: ['green', 'yellow', 'red']
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
type: 'heatmap',
|
||||
data: data,
|
||||
label: {
|
||||
show: true
|
||||
},
|
||||
emphasis: {
|
||||
itemStyle: {
|
||||
shadowBlur: 100,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}]
|
||||
};
|
||||
|
||||
myChart.setOption(option);
|
||||
myChart.off('click');
|
||||
|
||||
myChart.on('mouseover', function (params) {
|
||||
if (params.componentType == 'yAxis') {
|
||||
var tt = $('#tip');
|
||||
tt.html(params.value);
|
||||
tt.css("left", params.event.event.clientX + document.documentElement.scrollLeft + 10 + "px");
|
||||
tt.css("top", params.event.event.clientY + document.documentElement.scrollTop + 10 + "px");
|
||||
tt.css("display", "block");
|
||||
}
|
||||
});
|
||||
|
||||
myChart.on('mouseout', function (params) {
|
||||
$('#tip').hide();
|
||||
});
|
||||
|
||||
myChart.on('click', function (params) {
|
||||
if (params.componentType != 'yAxis') {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '越限详情',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['100%', '100%'],
|
||||
content: 'steadystatTable',
|
||||
scrollbar: false,
|
||||
success: function (layero, index) {
|
||||
var time;
|
||||
var type;
|
||||
var array = gloableStart.split("-");
|
||||
if (gloableDate == '(天数)') {
|
||||
time = array[0] + "-" + array[1] + "-" + (params.data[4] < 10 ? "0" + params.data[4] : params.data[4]);
|
||||
type = 0;
|
||||
} else {
|
||||
time = array[0] + "-" + (params.data[4] < 10 ? "0" + params.data[4] : params.data[4]) + "-" + array[2];
|
||||
type = 1;
|
||||
}
|
||||
|
||||
$(layero).find("iframe")[0].contentWindow.getSteadystatTable(params.data[3], time, type, gloableType);
|
||||
}
|
||||
});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
var gloableStart;
|
||||
var gloableType;
|
||||
var gloableDate;
|
||||
|
||||
function getDataByTime() {
|
||||
var start = $("#startTime").val();
|
||||
gloableStart = start;
|
||||
var end = $("#endTime").val();
|
||||
var type = $("#total option:selected").val();
|
||||
gloableType = type;
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/area/getDataByTime",
|
||||
data: {
|
||||
name: areaName,
|
||||
start: start,
|
||||
end: end,
|
||||
type: type
|
||||
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
if (data.code === 200) {
|
||||
console.log(data.body)
|
||||
initData(data.body);
|
||||
} else {
|
||||
initPic([], [], [], '', '', '');
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function initData(d) {
|
||||
var hours = [];
|
||||
var days = [];
|
||||
var data = [];
|
||||
|
||||
|
||||
for (var i = 0; i < d.length; i++) {
|
||||
days.push(d[i].name);
|
||||
|
||||
for (var k = 0; k < d[i].list.length; k++) {
|
||||
if (i == 0) {
|
||||
hours.push($("#interval option:selected").text() == '月份' ? d[i].list[k].day : d[i].list[k].month);
|
||||
}
|
||||
|
||||
var arr1 = [];
|
||||
arr1.push(i);
|
||||
arr1.push(k);
|
||||
arr1.push(d[i].list[k].target);
|
||||
arr1.push(d[i].index);
|
||||
arr1.push($("#interval option:selected").text() == '月份' ? d[i].list[k].day : d[i].list[k].month);
|
||||
data.push(arr1);
|
||||
}
|
||||
}
|
||||
|
||||
var name = $("#total option:selected").text();
|
||||
var xname = ($("#interval option:selected").text() == '月份' ? '(天数)' : '(月份)');
|
||||
gloableDate = xname;
|
||||
var yname = "(" + $("#total option:selected").text() + ")";
|
||||
|
||||
initPic(hours, days, data, name, xname, yname);
|
||||
}
|
||||
|
||||
$("#interval").val("月份");
|
||||
|
||||
function deleteOption() {
|
||||
$("#interval option[value='周']").remove();
|
||||
$("#interval option[value='自定义']").remove();
|
||||
}
|
||||
|
||||
let areaName;
|
||||
function getMonitorType(){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
data: {},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
areaName = data.body.name;
|
||||
var name = data.body.name + "上报";
|
||||
loadColor = data.body.value;
|
||||
var option = $("<option value='3'>"
|
||||
+ name + "</option>");
|
||||
$('#total').append(option);
|
||||
}
|
||||
})
|
||||
}
|
||||
76
pqs9000/src/main/webapp/jspJS/area/steadystattable.js
Normal file
76
pqs9000/src/main/webapp/jspJS/area/steadystattable.js
Normal file
@@ -0,0 +1,76 @@
|
||||
function getSteadystatTable(guid, time, timetype, type) { // timetype:0-day 1-month
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/area/getdetailed",
|
||||
data: {
|
||||
guid: guid,
|
||||
time: time,
|
||||
type: type,
|
||||
timetype: timetype
|
||||
|
||||
},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
initTable(data.body);
|
||||
} else {
|
||||
initTable([]);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function initTable(data) {
|
||||
var tableData = "";
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i].totalCount > 0) {
|
||||
tableData += '["' + data[i].gdName + '","'
|
||||
+ data[i].bdName + '","' + data[i].pointName + '","' + data[i].time + '","' + data[i].listResult.substring(0, data[i].listResult.lastIndexOf(',')) + '"],';
|
||||
}
|
||||
}
|
||||
|
||||
tableData = tableData.substring(0, tableData.lastIndexOf(','));
|
||||
tableData = eval('[' + tableData + ']');
|
||||
|
||||
var $height = $("body").height() * 0.85;
|
||||
|
||||
var oTable = $("#tableId")
|
||||
.dataTable({
|
||||
scrollX: true,
|
||||
data: tableData,
|
||||
autoWidth: true,
|
||||
lengthChange: false,
|
||||
paging: false,
|
||||
bDestroy: true,
|
||||
info: false,
|
||||
ordering: true,
|
||||
sDom: '"top"i',
|
||||
scrollY: $height,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
createdRow: function (row, data, dataIndex) {
|
||||
$(row).children('td').eq(4).attr('style', 'text-align: left;')
|
||||
},
|
||||
});
|
||||
|
||||
new $.fn.dataTable.Buttons(oTable.api(), {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',
|
||||
title: '稳态越限详细列表'
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
modifyCss(oTable.api());
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "10px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
}
|
||||
|
||||
127
pqs9000/src/main/webapp/jspJS/area/vdListQuery.js
Normal file
127
pqs9000/src/main/webapp/jspJS/area/vdListQuery.js
Normal file
@@ -0,0 +1,127 @@
|
||||
$(function () {
|
||||
initSelect()
|
||||
|
||||
$('#submit').click(function (){
|
||||
|
||||
|
||||
let obj = {}
|
||||
obj.minfuzhi = $("#minfuzhi").val()
|
||||
obj.maxfuzhi = $("#maxfuzhi").val()
|
||||
obj.mintime = $("#mintime").val()
|
||||
obj.maxtime = $("#maxtime").val()
|
||||
obj.minseverity = $("#minseverity").val()
|
||||
obj.maxseverity = $("#maxseverity").val()
|
||||
/* obj.eventType = $("select[name='eventType']").val()
|
||||
obj.eventReason = $("select[name='eventReason']").val()*/
|
||||
obj.triggerType = $("select[name='triggerType']").val()
|
||||
obj.fileflag = $("#fileflag").val()
|
||||
|
||||
|
||||
var test = /^\d+(\.{0,1}\d+){0,1}$/ //非负数
|
||||
let test2 = /^(\-|\+)?\d+(\.\d+)?$/ //所有数字
|
||||
|
||||
if(obj.minfuzhi!='' && obj.minfuzhi!=null){
|
||||
if(!obj.minfuzhi.match(test)){
|
||||
layer.tips('请输入合法的值', '#minfuzhi', {
|
||||
tips: [1, 'red'] //还可配置颜色
|
||||
});
|
||||
return
|
||||
}else {
|
||||
obj.minfuzhi = obj.minfuzhi/100
|
||||
}
|
||||
}
|
||||
if(obj.maxfuzhi!='' && obj.maxfuzhi!=null){
|
||||
if(!obj.maxfuzhi.match(test)){
|
||||
layer.tips('请输入合法的值', '#maxfuzhi', {
|
||||
tips: [1, 'red'] //还可配置颜色
|
||||
});
|
||||
return
|
||||
}else {
|
||||
obj.maxfuzhi = obj.maxfuzhi/100
|
||||
}
|
||||
}
|
||||
if(obj.mintime!='' && obj.mintime!=null){
|
||||
if(!obj.mintime.match(test)){
|
||||
layer.tips('请输入合法的值', '#mintime', {
|
||||
tips: [1, 'red'] //还可配置颜色
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
if(obj.maxtime!='' && obj.maxtime!=null){
|
||||
if(!obj.maxtime.match(test)){
|
||||
layer.tips('请输入合法的值', '#maxtime', {
|
||||
tips: [1, 'red'] //还可配置颜色
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
if(obj.minseverity!='' && obj.minseverity!=null){
|
||||
if(!obj.minseverity.match(test2)){
|
||||
layer.tips('请输入合法的值', '#minseverity', {
|
||||
tips: [1, 'red'] //还可配置颜色
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
if(obj.maxseverity!='' && obj.maxseverity!=null){
|
||||
if(!obj.maxseverity.match(test2)){
|
||||
layer.tips('请输入合法的值', '#maxseverity', {
|
||||
tips: [1, 'red'] //还可配置颜色
|
||||
});
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
window.parent.paramToVd(obj)
|
||||
var index = parent.layer.getFrameIndex(window.name); //先得到当前iframe层的索引
|
||||
parent.layer.close(index); //再执行关闭
|
||||
})
|
||||
|
||||
})
|
||||
|
||||
function initSelect(){
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/pqs9000/device/getselect',
|
||||
data: {dictypeName: '暂降类型'},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
$('#eventType').empty()
|
||||
var html = ''
|
||||
data.forEach(function (item) {
|
||||
let op = '<option value="' + item.dicIndex + '">' + item.dicName + '</option>'
|
||||
html += op;
|
||||
})
|
||||
$('#eventType').append(html)
|
||||
$('#eventType').fSelect();
|
||||
},
|
||||
error:function () {
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
$.ajax({
|
||||
type: 'post',
|
||||
url: '/pqs9000/device/getselect',
|
||||
data: {dictypeName: '暂降原因'},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
$('#eventReason').empty()
|
||||
var html = ''
|
||||
data.forEach(function (item) {
|
||||
let op = '<option value="' + item.dicIndex + '">' + item.dicName + '</option>'
|
||||
html += op;
|
||||
})
|
||||
$('#eventReason').append(html)
|
||||
$('#eventReason').fSelect();
|
||||
},error:function () {
|
||||
|
||||
}
|
||||
|
||||
})
|
||||
|
||||
$('#triggerType').fSelect();
|
||||
|
||||
}
|
||||
577
pqs9000/src/main/webapp/jspJS/area/vdlist.js
Normal file
577
pqs9000/src/main/webapp/jspJS/area/vdlist.js
Normal file
@@ -0,0 +1,577 @@
|
||||
var $area=$("#area");
|
||||
var $startTime=$("#startTime");
|
||||
var $endTime=$("#endTime");
|
||||
var tiggleValue="online";
|
||||
var dataTable=null;
|
||||
var resultData=null;
|
||||
var minfuzhi = null;//最小暂态幅值
|
||||
var maxfuzhi = 0;//最大暂态幅值
|
||||
var mintime = 0;//最小持续时间
|
||||
var maxtime = 0;//最大持续时间
|
||||
var minseverity = 0;//最小严重度
|
||||
var maxseverity = 0;//最大严重度
|
||||
var eventType = null;//暂降类型
|
||||
var eventReson = null;//暂降理由
|
||||
var triggerType = null;//触发类型
|
||||
var fileflag = null;//是否有波形
|
||||
$("#interval").val("月份");
|
||||
$(function () {
|
||||
//初始化按钮开关
|
||||
$(".checkbox").bootstrapSwitch({
|
||||
onText: "在线", // 设置ON文本
|
||||
offText: "离线", // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state === true) {
|
||||
tiggleValue = "online";
|
||||
} else {
|
||||
tiggleValue = "offline";
|
||||
}
|
||||
}
|
||||
});
|
||||
//初始化区域
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//实现多条件查询
|
||||
$('#maxQuery').click(function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '多条件筛选',
|
||||
area : ['27%','65%'],
|
||||
content: '/pqs9000/business/vdlistquery'
|
||||
|
||||
});
|
||||
|
||||
})
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#query").click(function() {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area,startTime,endTime);
|
||||
});
|
||||
//获取表格数据
|
||||
function refresh(area,startTime,endTime){
|
||||
var i ;
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
contentType: 'application/json;charset=UTF-8',
|
||||
url : "/pqs9000/area/getVoltageDetail",
|
||||
dataType : "json",
|
||||
data : JSON.stringify({
|
||||
startTime : startTime,
|
||||
endTime : endTime,
|
||||
area:area,
|
||||
type:tiggleValue,
|
||||
minfuzhi:null,
|
||||
maxfuzhi:null,
|
||||
mintime:null,
|
||||
maxtime:null,
|
||||
minseverity:null,
|
||||
maxseverity:null,
|
||||
eventType:null,
|
||||
eventReason:null,
|
||||
triggerType:null,
|
||||
fileflag:null
|
||||
}),
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message,{icon:2,time:2000})
|
||||
resultData=null;
|
||||
} else {
|
||||
resultData=data.body;
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//实例化表格
|
||||
function initTable(data){
|
||||
var height=$(window).height()-140;
|
||||
dataTable=$("#vdlist").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable=$('#vdlist').DataTable({
|
||||
order:[],
|
||||
columnDefs : [
|
||||
{
|
||||
orderable : false,
|
||||
targets : [0,1,10]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{width:"3%",data:"eventDetailIndex",
|
||||
render:function (data, type, full, meta) {
|
||||
if(full.fileFlag==="0"){
|
||||
return "<input type ='checkbox' name='disable' class='icheckbox_minimal' disabled >";
|
||||
}else{
|
||||
return "<input type ='checkbox' name='test' class='icheckbox_minimal' value='"+data+"'>";
|
||||
}
|
||||
}
|
||||
},
|
||||
{width: "4%",data:null},
|
||||
{width: "10%",data:"time"},
|
||||
{width: "7%",data:"gdName", render:function (data, type, full, meta) {
|
||||
var value=data;
|
||||
if(data.length>8){
|
||||
value=data.substring(0,7)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width: "10%",data:"subName", render:function (data, type, full, meta) {
|
||||
var value=data;
|
||||
if(data.length>13){
|
||||
value=data.substring(0,12)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width: "7%",data:"ip"},
|
||||
{width: "7%",data:"lineName", render:function (data, type, full, meta) {
|
||||
var value=data;
|
||||
if(data.length>10){
|
||||
value=data.substring(0,9)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width: "7%",data:"scale",type:"number-fate"},
|
||||
{
|
||||
width: "6%", data: "waveType", render: function (data, type, full, meta) {
|
||||
return displayWaveType(data);
|
||||
}
|
||||
},
|
||||
{width: "8%",data:"eventValue"},
|
||||
{width: "7%",data:"eventValue",render: function (data, type, full, meta) {
|
||||
data = Number(data);
|
||||
if(data>100){
|
||||
return '/';
|
||||
}else if(data<0){
|
||||
return 0;
|
||||
}else{
|
||||
return (100-data).toFixed(2);
|
||||
}
|
||||
|
||||
}
|
||||
},
|
||||
{width: "7%",data:"persistTime"},
|
||||
{width: "7%",data:"severity",
|
||||
render:function (data, type, full, meta) {
|
||||
return displayYzd(data,full.persistTime,full.eventValue,full.waveType);
|
||||
}
|
||||
},
|
||||
{width: "10%",data:"eventDetailIndex",
|
||||
render:function (data, type, full, meta) {
|
||||
var flag=true;
|
||||
if(full.fileFlag==="0"){
|
||||
flag=false;
|
||||
}
|
||||
var bxck;
|
||||
if(flag){
|
||||
bxck="<button type='button' class='btn themeBGColor' style='margin-right:10px;' href='javascript:void(0);' onclick='viewWave(\"" + data + "\")' >波形分析</button>";
|
||||
}else{
|
||||
|
||||
if ((full.devType).indexOf("CLD") != -1) {
|
||||
bxck = "<button type='button' class='btn themeBGDisableColor'" +
|
||||
" style='margin-right:10px;' href='javascript:void(0);' onclick='viewBZ(\"" + full.lineId + "\",\"" + full.time + "\")' >波形补招</button>";
|
||||
} else {
|
||||
bxck = "<button type='button' class='btn themeBGDisableColor' style='margin-right:10px;' href='javascript:void(0);' >暂无波形</button>";
|
||||
}
|
||||
}
|
||||
return bxck;
|
||||
}
|
||||
}
|
||||
],
|
||||
autoWidth:false,
|
||||
serverSide : false,
|
||||
destroy : true,
|
||||
data : data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
scrollY: height,
|
||||
scrollX: true,
|
||||
lengthMenu : [ 50 ],
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json'
|
||||
},
|
||||
fnDrawCallback: function(oTable) {
|
||||
$("#vdlist_info").addClass("fl");
|
||||
$("#vdlist_paginate").addClass("fr");
|
||||
$("#vdlist_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#vdlist").dataTable();
|
||||
$('#dataTable-btn').click(function(e) {
|
||||
if($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
var name = $area.find("option:selected").text();
|
||||
new $.fn.dataTable.Buttons( dataTable, {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',
|
||||
title:name+'暂降事件列表',//导出csv名称
|
||||
exportOptions:{
|
||||
columns :[1,2,3,4,5,6,7,8,9,10,11,12],
|
||||
format:{
|
||||
body:function(data,rID,cID){
|
||||
if(cID===0){
|
||||
return rID+1;
|
||||
}else if(cID===1){
|
||||
return data.replace("0","O");
|
||||
}else if(cID===3|cID===2|cID===5){
|
||||
if(data.indexOf("title")>0){
|
||||
return data.substring(data.indexOf("=")+1,data.indexOf(">"));
|
||||
}else{
|
||||
return data
|
||||
}
|
||||
} else if (cID === 11) {
|
||||
var temp = "";
|
||||
if (data.indexOf("color") > 0) {
|
||||
temp = data.substring(data.indexOf(">") + 1, data.indexOf("</"));
|
||||
}
|
||||
return temp;
|
||||
}else{
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
} );
|
||||
modifyCss(dataTable);
|
||||
dataTable.on('order.dt search.dt',
|
||||
function() {
|
||||
dataTable.column(1, {
|
||||
search: 'applied',
|
||||
order: 'applied'
|
||||
}).nodes().each(function(cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
|
||||
//获取出搜索框内的内容,进行数据筛选
|
||||
var value = $("#searchValue").val();
|
||||
searchResult(value);
|
||||
}
|
||||
function modifyCss(dataTable){
|
||||
dataTable.buttons().container().css("display","inline-block");
|
||||
dataTable.buttons().container().css("float","right");
|
||||
dataTable.buttons().container().css("top","4px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().find("a").before("<button id='downloadWave' type='button' class='btn btn-primary mr10' > <i class='glyphicon glyphicon-download'></i>下载波形</button>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
dataTable.buttons().container().after($("#fliteData")[0]);
|
||||
}
|
||||
|
||||
//波形分析
|
||||
function viewWave(eventIndex){
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '波形分析',
|
||||
maxmin : false,
|
||||
area : ['100%' , '100%'],
|
||||
content: '/pqs9000/business/vdwaveform?eventIndex='+eventIndex,
|
||||
scrollbar: false
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
|
||||
//处理触发类型
|
||||
function displayWaveType(data){
|
||||
switch(data){
|
||||
case 0:
|
||||
return '扰动';
|
||||
case 1:
|
||||
return '暂降';
|
||||
case 2:
|
||||
return '暂升';
|
||||
case 3:
|
||||
return '中断';
|
||||
case 4:
|
||||
return '其他';
|
||||
case 5:
|
||||
return '录波';
|
||||
case 6:
|
||||
return '外部录入';
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//实现全选功能
|
||||
$("#all_checked").click(function(){
|
||||
$('[name=test]:checkbox').prop('checked',this.checked);//checked为true时为默认显示的状态
|
||||
});
|
||||
|
||||
//实现反选功能
|
||||
$("#checkrev").click(function(){
|
||||
$('[name=test]:checkbox').each(function(){
|
||||
this.checked=!this.checked;
|
||||
});
|
||||
});
|
||||
|
||||
//点击下载波形
|
||||
$("body").on("click","#downloadWave",function(){
|
||||
var indexs=[];
|
||||
var $checkboxs=$("[name=test]:checked");
|
||||
var length=$checkboxs.length;
|
||||
if(length===0){
|
||||
layer.msg('请选中需要下载的波形',{icon:2,time:2000});
|
||||
}else if(length>5){
|
||||
layer.msg('最多同时下载5个波形数据',{icon:2,time:2000});
|
||||
}else{
|
||||
for (var i=0;i<length;i++){
|
||||
indexs.push($checkboxs.eq(i).val())
|
||||
}
|
||||
//执行波形下载
|
||||
downloadWave(indexs);
|
||||
}
|
||||
})
|
||||
|
||||
//下载波形
|
||||
function downloadWave(index) {
|
||||
var i ;
|
||||
$.ajax({
|
||||
type:"post",
|
||||
url:"/pqs9000/area/downloadWave",
|
||||
dataType:"json",
|
||||
data:{
|
||||
index:index
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER_WAVE();
|
||||
},
|
||||
success:function(data){
|
||||
if(data.code===200){
|
||||
downloadZip();
|
||||
}else{
|
||||
layer.msg(data.message,{icon:2,time:2000})
|
||||
}
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function downloadZip() {
|
||||
window.location.href='/pqs9000/area/downWaveZip';
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it=null;
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it= setInterval('refreshQuery()',100);
|
||||
|
||||
}
|
||||
/* 刷新查询 */
|
||||
function refreshQuery(){
|
||||
var width=$("#vdlist").width();
|
||||
if(width>100){
|
||||
initTable(resultData);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
//特殊处理,表头紧缩问题--end
|
||||
|
||||
//获取严重度显示的值
|
||||
function displayYzd(data,persisttime,eventvaule,waveType) {
|
||||
var yzd=0;
|
||||
if(null===data|data===0.0){
|
||||
//根据持续时间计算出严重度
|
||||
yzd=calculateYzd(persisttime,eventvaule);
|
||||
}else{
|
||||
yzd=data;
|
||||
}
|
||||
//判断是否为暂升事件
|
||||
if(waveType === 2 | waveType === 5){
|
||||
yzd="/";
|
||||
return "<span style='color:#000'>"+yzd+"</span>";
|
||||
}
|
||||
if(0<=yzd&yzd<=1){
|
||||
return "<span style='color:#22B14C'>"+yzd+"</span>";
|
||||
}else if(yzd<=2){
|
||||
return "<span style='color:#3F48CC'>"+yzd+"</span>";
|
||||
}else if(yzd<=5){
|
||||
return "<span style='color:#FFA500'>"+yzd+"</span>";
|
||||
}else if(yzd<=10){
|
||||
return "<span style='color:#FF7F27'>"+yzd+"</span>";
|
||||
}else{
|
||||
return "<span style='color:#ED1C24'>"+yzd+"</span>";
|
||||
}
|
||||
}
|
||||
|
||||
//计算严重度 persisttime持续时间ms eventvaule暂降幅值
|
||||
function calculateYzd(persisttime,eventvaule){
|
||||
persisttime=persisttime*1000;
|
||||
eventvaule=eventvaule/100;
|
||||
var yzd=0;
|
||||
if (persisttime <= 20) {
|
||||
yzd = 1-eventvaule;
|
||||
} else if (persisttime > 20 && persisttime <= 200) {
|
||||
yzd = 2*(1-eventvaule);
|
||||
} else if (persisttime > 200 && persisttime <= 500) {
|
||||
yzd = 3.3*(1-eventvaule);
|
||||
}else if(persisttime > 500 && persisttime <=10000){
|
||||
yzd=5*(1-eventvaule);
|
||||
} else {
|
||||
yzd = 10*(1-eventvaule);
|
||||
}
|
||||
//精确3位小数
|
||||
yzd=yzd.toFixed(3);
|
||||
return yzd;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 电压等级排序自定义比较start
|
||||
*/
|
||||
jQuery.fn.dataTableExt.oSort['number-fate-asc'] = function(s1,s2) {
|
||||
s1 = s1.replace('kV','');
|
||||
s2 = s2.replace('kV','');
|
||||
return Number(s1)-Number(s2);
|
||||
};
|
||||
|
||||
jQuery.fn.dataTableExt.oSort['number-fate-desc'] = function(s1,s2) {
|
||||
s1 = s1.replace('kV','');
|
||||
s2 = s2.replace('kV','');
|
||||
return Number(s2)-Number(s1);
|
||||
};
|
||||
/**
|
||||
* 电压等级排序自定义比较end
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 用于子页面调用传值
|
||||
*/
|
||||
window.paramToVd=function (obj){
|
||||
|
||||
let area = $area.eq(0).attr("index");
|
||||
let startTime = $startTime.eq(0).val();
|
||||
let endTime = $endTime.eq(0).val();
|
||||
refreshForOpen(area,startTime,endTime,obj)
|
||||
}
|
||||
|
||||
//获取表格数据
|
||||
function refreshForOpen(area,startTime,endTime,obj){
|
||||
let i ;
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "/pqs9000/area/getVoltageDetail",
|
||||
contentType: 'application/json;charset=UTF-8',
|
||||
dataType : "json",
|
||||
data : JSON.stringify({
|
||||
startTime : startTime,
|
||||
endTime : endTime,
|
||||
area:area,
|
||||
type:tiggleValue,
|
||||
minfuzhi:obj.minfuzhi,
|
||||
maxfuzhi:obj.maxfuzhi,
|
||||
mintime:obj.mintime,
|
||||
maxtime:obj.maxtime,
|
||||
minseverity:obj.minseverity,
|
||||
maxseverity:obj.maxseverity,
|
||||
eventType:obj.eventType,
|
||||
eventReason:obj.eventReason,
|
||||
triggerType:obj.triggerType,
|
||||
fileflag:obj.fileflag
|
||||
}),
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message,{icon:2,time:2000})
|
||||
resultData=null;
|
||||
} else {
|
||||
resultData=data.body;
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
},error:function () {
|
||||
layer.msg('未知异常',{icon:2})
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
/****
|
||||
* 波形补招
|
||||
*/
|
||||
function viewBZ(lineId, time) {
|
||||
let ia;
|
||||
var timeId = new Date(time).getTime();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/device/socketonWave",
|
||||
dataType: "json",
|
||||
data: {
|
||||
type:100,
|
||||
ComtradeName:timeId,
|
||||
LineId: lineId
|
||||
},
|
||||
beforeSend: function () {
|
||||
ia = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 200) {
|
||||
|
||||
layer.msg(data.message+",请大约三十秒钟后刷新确认",{
|
||||
icon: 1,
|
||||
time: 3000
|
||||
},function () {
|
||||
startQuery()
|
||||
})
|
||||
|
||||
} else {
|
||||
layer.msg(data.message, {
|
||||
icon: 5,
|
||||
time: 3000
|
||||
});
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(ia);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
315
pqs9000/src/main/webapp/jspJS/area/warningsubstation.js
Normal file
315
pqs9000/src/main/webapp/jspJS/area/warningsubstation.js
Normal file
@@ -0,0 +1,315 @@
|
||||
var $area=$("#area");
|
||||
var $startTime=$("#startTime");
|
||||
var $endTime=$("#endTime");
|
||||
var $vollevel = $("#vollevel")
|
||||
|
||||
var buttonname;
|
||||
var companyname;
|
||||
var tigName;
|
||||
var volData;
|
||||
var dataTable=null;
|
||||
var startTime,endTime,area,vollevel;
|
||||
|
||||
$(function () {
|
||||
startTime = $startTime.eq(0).val();
|
||||
endTime = $endTime.eq(0).val();
|
||||
area = $area.eq(0).val();
|
||||
vollevel = $vollevel.eq(0).val();
|
||||
loadselect("电压等级","vollevel");
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data:{
|
||||
start: startTime,
|
||||
end: endTime
|
||||
},
|
||||
async:false,
|
||||
url: "/pqs9000/device/getMsgInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
buttonname = data.body.name;
|
||||
tigName = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
companyname = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
//初始化按钮开关
|
||||
$(".checkbox").bootstrapSwitch({
|
||||
onText: buttonname, // 设置ON文本
|
||||
offText: companyname, // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "50",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state === true) {
|
||||
tigName = buttonname;
|
||||
refresh(vollevel,area, startTime, endTime,tigName);
|
||||
} else {
|
||||
tigName = companyname;
|
||||
refresh(vollevel,area, startTime, endTime,tigName);
|
||||
}
|
||||
}
|
||||
});
|
||||
//初始化区域
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
area = $area.eq(0).attr("index");
|
||||
vollevel = $vollevel.eq(0).val();
|
||||
startTime = $startTime.eq(0).val();
|
||||
endTime = $endTime.eq(0).val();
|
||||
refresh(vollevel,area, startTime, endTime,tigName);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#query").click(function() {
|
||||
area = $area.eq(0).attr("index");
|
||||
vollevel = $vollevel.eq(0).val();
|
||||
startTime = $startTime.eq(0).val();
|
||||
endTime = $endTime.eq(0).val();
|
||||
refresh(vollevel,area,startTime,endTime,tigName);
|
||||
});
|
||||
|
||||
//获取表格数据
|
||||
function refresh(vollevel,area,startTime,endTime,tigName){
|
||||
let statFlag = $('#allLineCheck').is(":checked")
|
||||
var i ;
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "/pqs9000/responsibility/warningSubstationData",
|
||||
dataType : "json",
|
||||
data : {
|
||||
startTime : startTime,
|
||||
endTime : endTime,
|
||||
area:area,
|
||||
vollevel:vollevel,
|
||||
tigName:tigName,
|
||||
statFlag:statFlag
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success : function(data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message,{icon:2,time:2000})
|
||||
volData=null;
|
||||
} else {
|
||||
// var sortData = bubbleSort(data);
|
||||
initTable(data.body)
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//实例化表格
|
||||
function initTable(data){
|
||||
var height=$(window).height()-140;
|
||||
dataTable=$("#vdlist").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable=$('#vdlist').DataTable({
|
||||
order:[],
|
||||
columnDefs : [
|
||||
{
|
||||
orderable : false,
|
||||
targets : [0,1]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{width:"2%",data: null, render : function(data, type, full, meta){
|
||||
return meta.row + 1 + meta.settings._iDisplayStart;
|
||||
}},
|
||||
// {width: "4%",data:"provinceCompany"},
|
||||
{width: "4%",data:"cityCompany"},
|
||||
{width: "6%",data:"plantName",render : function(data, type, full, meta){
|
||||
var value=data;
|
||||
if(data.length>15){
|
||||
value=data.substring(0,14)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"plantVoltageLevel"},
|
||||
{width: "4%",data:"onlineMonitorCounts"},
|
||||
{width: "4%",data:"alertMonitorCounts"},
|
||||
{width: "4%",data:"alertCounts"},
|
||||
{width: "4%",data: "alertAlarmFrequency",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"frequencyDeviation",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"voltageDeviation",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"harmonicVoltage",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"harmonicCurrent",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"threePhaseVoltageUnbalance",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"flicker",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"interharmonic",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"negative",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"shortInterruption",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"voltageDip",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}},
|
||||
{width: "4%",data:"voltageSwell",render : function(data, type, full, meta){
|
||||
var value= toDecimal2(data);
|
||||
return value;
|
||||
}}
|
||||
],
|
||||
bAutoWidth:false,
|
||||
serverSide : false,
|
||||
destroy : true,
|
||||
data : data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rt',
|
||||
sScrollY: height,
|
||||
scrollX: true,
|
||||
//关闭分页功能
|
||||
bPaginate: false,
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json'
|
||||
},
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function loadselect(dictypeName,div){
|
||||
var part='#'+div;
|
||||
$(part).find("option").remove();
|
||||
$.ajax({
|
||||
method : "post",
|
||||
url : "/pqs9000/device/getselect",
|
||||
data : {
|
||||
dictypeName:dictypeName
|
||||
},
|
||||
async:false,
|
||||
success : function(data) {
|
||||
if(data == null){
|
||||
var message = dictypeName + '信息加载失败';
|
||||
layer.msg(message,{icon:1,time:1000});
|
||||
}else{
|
||||
var option0 = $("<option selected value='"
|
||||
+ null + "'>"
|
||||
+ "全部" + "</option>");
|
||||
$(part).append(option0);
|
||||
$.each(data, function(i, item) {
|
||||
var option = $("<option value='"
|
||||
+ item.dicIndex + "'>"
|
||||
+ item.dicName + "</option>");
|
||||
$(part).append(option);
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it=null;
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it= setInterval('refreshQuery()',100);
|
||||
|
||||
}
|
||||
/* 刷新查询 */
|
||||
function refreshQuery(){
|
||||
var width=$("#vdlist").width();
|
||||
if(width>100){
|
||||
initTable(resultData);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
//特殊处理,表头紧缩问题--end
|
||||
|
||||
//制保留2位小数,如:2,会在2后面补上00.即2.00
|
||||
function toDecimal2(x) {
|
||||
var f = parseFloat(x);
|
||||
if (isNaN(f)) {
|
||||
return false;
|
||||
}
|
||||
var f = Math.round(x*100)/100;
|
||||
var s = f.toString();
|
||||
var rs = s.indexOf('.');
|
||||
if (rs < 0) {
|
||||
rs = s.length;
|
||||
s += '.';
|
||||
}
|
||||
while (s.length <= rs + 2) {
|
||||
s += '0';
|
||||
}
|
||||
return s;
|
||||
}
|
||||
|
||||
//点击导出功能
|
||||
$('#exportSubTable').click(function () {
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
$("<form method='post' action='/pqs9000/responsibility/exportSubExcel?startTime="+startTime+"&endTime="+endTime+"'>"+
|
||||
"<input type='hidden'/>"+ encodeURIComponent("excelname")+
|
||||
"'/></form>").appendTo('body').submit().remove();
|
||||
});
|
||||
|
||||
//排序
|
||||
function bubbleSort(data) {
|
||||
for (var i=0;i<data.length-1;i++){
|
||||
for (var j=0;j<data.length-1-i;j++){
|
||||
if (data[j].alertCounts<data[j+1].alertCounts){
|
||||
var temp = data[j+1];
|
||||
data[j+1] = data[j];
|
||||
data[j] = temp;
|
||||
}
|
||||
}
|
||||
}
|
||||
return data
|
||||
}
|
||||
1306
pqs9000/src/main/webapp/jspJS/area/wave.js
Normal file
1306
pqs9000/src/main/webapp/jspJS/area/wave.js
Normal file
File diff suppressed because it is too large
Load Diff
1600
pqs9000/src/main/webapp/jspJS/assessmentsis/abnormLimitDraw.js
Normal file
1600
pqs9000/src/main/webapp/jspJS/assessmentsis/abnormLimitDraw.js
Normal file
File diff suppressed because it is too large
Load Diff
646
pqs9000/src/main/webapp/jspJS/assessmentsis/abnormLimits.js
Normal file
646
pqs9000/src/main/webapp/jspJS/assessmentsis/abnormLimits.js
Normal file
@@ -0,0 +1,646 @@
|
||||
var path = window.location.href;// 获取界面路径
|
||||
/*******************************************************************************
|
||||
* z-tree控件基本参数设置
|
||||
******************************************************************************/
|
||||
var settingRight = {
|
||||
check: {
|
||||
enable: true,
|
||||
chkDisabledInherit: true
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable: true
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
beforeExpand: beforeExpand,
|
||||
beforeCheck: beforeCheck,
|
||||
onExpand: onExpand,
|
||||
onClick: onClick,
|
||||
onCheck: checkTarget
|
||||
}
|
||||
};
|
||||
var loading;// 用于页面的loading
|
||||
var className = "dark";
|
||||
|
||||
function beforeCheck(treeId, treeNode) {
|
||||
className = (className === "dark" ? "" : "dark");
|
||||
return (treeNode.doCheck !== false);
|
||||
}
|
||||
|
||||
// tree展开前处理事件
|
||||
var curExpandNode = null;
|
||||
|
||||
function beforeExpand(treeId, treeNode) {
|
||||
var pNode = curExpandNode ? curExpandNode.getParentNode() : null;
|
||||
var treeNodeP = treeNode.parentTId ? treeNode.getParentNode() : null;
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target");
|
||||
for (var i = 0, l = !treeNodeP ? 0 : treeNodeP.children.length; i < l; i++) {
|
||||
if (treeNode !== treeNodeP.children[i]) {
|
||||
zTree1.expandNode(treeNodeP.children[i], false);
|
||||
}
|
||||
}
|
||||
while (pNode) {
|
||||
if (pNode === treeNode) {
|
||||
break;
|
||||
}
|
||||
pNode = pNode.getParentNode();
|
||||
}
|
||||
if (!pNode) {
|
||||
singlePath(treeNode);
|
||||
}
|
||||
}
|
||||
|
||||
// 重新绘制tree内容 只展开一个tree根节点添加该事件
|
||||
function singlePath(newNode) {
|
||||
if (newNode === curExpandNode)
|
||||
return;
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target"), rootNodes, tmpRoot, tmpTId, i, j, n;
|
||||
if (!curExpandNode) {
|
||||
tmpRoot = newNode;
|
||||
while (tmpRoot) {
|
||||
tmpTId = tmpRoot.tId;
|
||||
tmpRoot = tmpRoot.getParentNode();
|
||||
}
|
||||
rootNodes = zTree1.getNodes();
|
||||
for (i = 0, j = rootNodes.length; i < j; i++) {
|
||||
n = rootNodes[i];
|
||||
if (n.tId != tmpTId) {
|
||||
zTree1.expandNode(n, false);
|
||||
}
|
||||
}
|
||||
} else if (curExpandNode && curExpandNode.open) {
|
||||
if (newNode.parentTId === curExpandNode.parentTId) {
|
||||
zTree1.expandNode(curExpandNode, false);
|
||||
} else {
|
||||
var newParents = [];
|
||||
while (newNode) {
|
||||
newNode = newNode.getParentNode();
|
||||
if (newNode === curExpandNode) {
|
||||
newParents = null;
|
||||
break;
|
||||
} else if (newNode) {
|
||||
newParents.push(newNode);
|
||||
}
|
||||
}
|
||||
if (newParents != null) {
|
||||
var oldNode = curExpandNode;
|
||||
var oldParents = [];
|
||||
while (oldNode) {
|
||||
oldNode = oldNode.getParentNode();
|
||||
if (oldNode) {
|
||||
oldParents.push(oldNode);
|
||||
}
|
||||
}
|
||||
if (newParents.length > 0) {
|
||||
zTree1.expandNode(oldParents[Math.abs(oldParents.length
|
||||
- newParents.length) - 1], false);
|
||||
} else {
|
||||
zTree1.expandNode(oldParents[oldParents.length - 1], false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
curExpandNode = newNode;
|
||||
}
|
||||
|
||||
// 回调函数,展开tree节点
|
||||
function onExpand(event, treeId, treeNode) {
|
||||
curExpandNode = treeNode;
|
||||
}
|
||||
|
||||
// 回调函数,点击tree展开节点
|
||||
function onClick(e, treeId, treeNode) {
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target");
|
||||
zTree1.expandNode(treeNode, null, null, null, true);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 获取查询指标 计算tree选中的节点,for循环去除计算父节点在内
|
||||
******************************************************************************/
|
||||
var checkCount = 1, totalcount = 6, nodes = '', node = null;
|
||||
|
||||
function checkTarget() {
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target");
|
||||
checkCount = zTree1.getCheckedNodes(true).length;
|
||||
node = zTree1.getCheckedNodes(true);
|
||||
totalcount = checkCount;
|
||||
nodes = '';
|
||||
var k = 0;
|
||||
|
||||
for (var i = 0; i < totalcount; i++) {
|
||||
if (node[i].pId == null) {
|
||||
checkCount--;
|
||||
} else {
|
||||
if (k < 5) {
|
||||
nodes += node[i].id + ',';
|
||||
} else {
|
||||
zTree1.checkNode(node[i], false, true);
|
||||
}
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
if (nodes != '') {
|
||||
nodes = nodes.substring(0, nodes.lastIndexOf(','));
|
||||
|
||||
if (nodes.indexOf("41") != -1 || nodes.indexOf("42") != -1) {
|
||||
$("#harmonic").css("display", "inline");//显示
|
||||
} else {
|
||||
$("#harmonic").css("display", "none");//不显示
|
||||
}
|
||||
if (nodes.indexOf("43") != -1) {
|
||||
$("#harmonicInHarm").css("display", "inline");//显示
|
||||
} else {
|
||||
$("#harmonicInHarm").css("display", "none");//不显示
|
||||
}
|
||||
}
|
||||
|
||||
if (k > 5) {
|
||||
layer.msg('最多选择5个指标');
|
||||
}
|
||||
|
||||
if (checkCount >= 5) {
|
||||
disabledNode(true);
|
||||
} else {
|
||||
disabledNode(false);
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
parent.triggerCheckBox(1);
|
||||
parent.setTreeSelected(1, -1);
|
||||
$.fn.zTree.init($("#target"), settingRight, zNodes);
|
||||
checkTarget();
|
||||
|
||||
$('#times').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("times").options[clickedIndex].value;
|
||||
var odd = [];
|
||||
var evn = [];
|
||||
var total = [];
|
||||
|
||||
for (var i = 0; i < previousValue.length; i++) {
|
||||
if (previousValue[i] > 0 && previousValue[i] % 2 == 0) { //偶次
|
||||
odd.push(previousValue[i]);
|
||||
} else if (previousValue[i] > 0 && previousValue[i] % 2 != 0) { //奇次
|
||||
evn.push(previousValue[i]);
|
||||
} else {
|
||||
total.push(previousValue[i]); //全部 ...
|
||||
}
|
||||
}
|
||||
|
||||
if (value === '-1' && previousValue.length > 0 || previousValue[0] === '-1') { //清空并重新选中
|
||||
$('#times').selectpicker('deselectAll');
|
||||
$('#times').selectpicker('val', value);
|
||||
} else if (value === '-2') {
|
||||
var array = [];
|
||||
|
||||
if (odd.length > 0) {
|
||||
array.push(value);
|
||||
|
||||
for (var i = 0; i < evn.length; i++) {
|
||||
array.push(evn[i]);
|
||||
}
|
||||
|
||||
for (var j = 0; j < total.length; j++) {
|
||||
if (total[j] == -3) {
|
||||
array.push(total[i]);
|
||||
}
|
||||
}
|
||||
|
||||
$('#times').selectpicker('deselectAll');
|
||||
$('#times').selectpicker('val', array);
|
||||
}
|
||||
} else if (value === '-3') {
|
||||
var array = [];
|
||||
|
||||
if (evn.length > 0) {
|
||||
array.push(value);
|
||||
|
||||
for (var i = 0; i < odd.length; i++) {
|
||||
array.push(odd[i]);
|
||||
}
|
||||
|
||||
for (var j = 0; j < total.length; j++) {
|
||||
if (total[j] == -2) {
|
||||
array.push(total[j]);
|
||||
}
|
||||
}
|
||||
|
||||
$('#times').selectpicker('deselectAll');
|
||||
$('#times').selectpicker('val', array);
|
||||
}
|
||||
} else {
|
||||
var array = [];
|
||||
array.push(value);
|
||||
|
||||
for (var i = 0; i < odd.length; i++) {
|
||||
array.push(odd[i]);
|
||||
}
|
||||
|
||||
for (var k = 0; k < evn.length; k++) {
|
||||
array.push(evn[k]);
|
||||
}
|
||||
|
||||
if (value % 2 == 0) {
|
||||
for (var j = 0; j < total.length; j++) {
|
||||
if (total[j] == -3) {
|
||||
array.push(total[j]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var j = 0; j < total.length; j++) {
|
||||
if (total[j] == -2) {
|
||||
array.push(total[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$('#times').selectpicker('deselectAll');
|
||||
$('#times').selectpicker('val', array);
|
||||
}
|
||||
}
|
||||
|
||||
$('#times').selectpicker('refresh');
|
||||
});
|
||||
|
||||
$('#harmonicInHarms').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("harmonicInHarms").options[clickedIndex].value;
|
||||
var total = [];
|
||||
|
||||
for (var i = 0; i < previousValue.length; i++) {
|
||||
total.push(previousValue[i]); //全部 ...
|
||||
}
|
||||
|
||||
if (value === '-1' && previousValue.length > 0 || previousValue[0] === '-1') { //清空并重新选中
|
||||
$('#harmonicInHarms').selectpicker('deselectAll');
|
||||
$('#harmonicInHarms').selectpicker('val', value);
|
||||
}
|
||||
}
|
||||
|
||||
$('#harmonicInHarms').selectpicker('refresh');
|
||||
});
|
||||
});
|
||||
|
||||
var objSearch = new Object();// 跳转页面
|
||||
function getData() {
|
||||
var start = $("#startTime").val();
|
||||
var end = $("#endTime").val();
|
||||
var points = parent.getTreeSelected(1);
|
||||
var lineId = "";
|
||||
|
||||
if (points.length == 0) {
|
||||
layer.msg('请至少选择一个监测点');
|
||||
return;
|
||||
}
|
||||
|
||||
if (nodes == '') {
|
||||
layer.msg('请至少选择一个指标');
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = 0; i < points.length; i++) {
|
||||
lineId += points[i].nodeIndex + ',';
|
||||
}
|
||||
|
||||
var times = '';
|
||||
var harmonicInHarms = '';
|
||||
|
||||
if (nodes.indexOf("41") > -1 || nodes.indexOf("42") > -1) {
|
||||
var data = $('#times').selectpicker('val');
|
||||
|
||||
if (data == null) {
|
||||
layer.msg('请选择需要查看的谐波次数', {icon: 2, time: 2000});
|
||||
return;
|
||||
}
|
||||
|
||||
if (data.length == 1 && data[0] < 0) {
|
||||
if (data[0] == -1) {
|
||||
for (var i = 0; i < 24; i++) {
|
||||
times += (i + 2) + ',';
|
||||
}
|
||||
} else if (data[0] == -2) {
|
||||
for (var i = 0; i < 12; i++) {
|
||||
times += ((i + 1) * 2) + ',';
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < 12; i++) {
|
||||
times += ((i + 1) * 2 + 1) + ',';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var b1 = 0;
|
||||
var b2 = 0;
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i] == -2) {
|
||||
b1 = 1;
|
||||
} else if (data[i] == -3) {
|
||||
b2 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (b1 == 1 && b2 == 0) {
|
||||
for (var i = 0; i < 12; i++) {
|
||||
times + ((i + 1) * 2) + ',';
|
||||
}
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i] % 2 != 0) {
|
||||
times += data[i] + ',';
|
||||
}
|
||||
}
|
||||
} else if (b2 == 1 && b1 == 0) {
|
||||
for (var i = 0; i < 12; i++) {
|
||||
times += ((i + 1) * 2 + 1) + ',';
|
||||
}
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i] % 2 == 0) {
|
||||
times += data[i] + ',';
|
||||
}
|
||||
}
|
||||
} else if (b1 == 0 && b2 == 0) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
times += data[i] + ',';
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < 24; i++) {
|
||||
times += (i + 2) + ',';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if (nodes.indexOf("43") > -1) {
|
||||
var data = $('#harmonicInHarms').selectpicker('val');
|
||||
|
||||
if (data == null) {
|
||||
layer.msg('请选择需要查看的谐波次数', {icon: 2, time: 2000});
|
||||
return;
|
||||
}
|
||||
|
||||
if (data.length == 1 && data[0] < 0) {
|
||||
if (data[0] == -1) {
|
||||
for (var i = 0; i < 16; i++) {
|
||||
harmonicInHarms += (i + 1) + ',';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
harmonicInHarms += data[i] + ',';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
data: {
|
||||
startTime: start,
|
||||
endTime: end,
|
||||
lineId: lineId,
|
||||
type: nodes,
|
||||
index: times,
|
||||
harmonicInHarms:harmonicInHarms
|
||||
},
|
||||
url: '/pqs9000/device/getHistoryTableData',
|
||||
success: function (data) {
|
||||
layer.close(loading);
|
||||
|
||||
if (data.code == 500) {
|
||||
initTable([]);
|
||||
} else {
|
||||
var tableData = '';
|
||||
|
||||
for (var i = 0; i < data.body.length; i++) {
|
||||
for (var j = 0; j < data.body[i].list.length; j++) {
|
||||
for (var k = 0; k < data.body[i].list[j].list.length; k++) {
|
||||
for (var m = 0; m < data.body[i].list[j].list[k].list.length; m++) {
|
||||
if (data.body[i].list[j].list[k].pass == -1) {
|
||||
if ((data.body[i].pttype == 1 || data.body[i].pttype == 2) && data.body[i].list[j].targetName.indexOf('电压不平衡') != -1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if ((data.body[i].pttype == 1 || data.body[i].pttype == 2) && data.body[i].list[j].targetName.indexOf('电流') == -1) {
|
||||
if (data.body[i].list[j].list[k].list[m].phaseType == 'A')
|
||||
data.body[i].list[j].list[k].list[m].phaseType = 'AB';
|
||||
else if (data.body[i].list[j].list[k].list[m].phaseType == 'B')
|
||||
data.body[i].list[j].list[k].list[m].phaseType = 'BC';
|
||||
else if (data.body[i].list[j].list[k].list[m].phaseType == 'C') {
|
||||
if (data.body[i].pttype == 2) {
|
||||
break;
|
||||
} else {
|
||||
data.body[i].list[j].list[k].list[m].phaseType = 'CA';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tableData += '["' + data.body[i].bdName + '","'
|
||||
+ data.body[i].name + '","'
|
||||
+ data.body[i].list[j].targetName + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].phaseType) + '","' //单独处理,否则影响最大、最小展示
|
||||
+ data.body[i].voltage + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].strTime) + '","'
|
||||
+ data.body[i].list[j].unit + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].fmaxValue) + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].minValue) + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].meanValue) + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].cp95Value) + '","';
|
||||
|
||||
tableData += data.body[i].lineId + '","'
|
||||
+ data.body[i].list[j].typeId + '","' + data.body[i].list[j].timeId + '"],';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//去除最右边',' string转json
|
||||
tableData = tableData.substring(0, tableData.lastIndexOf(','));
|
||||
tableData = eval('[' + tableData + ']');
|
||||
initTable(tableData);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function judge(str) {
|
||||
return str === null ? '/' : str;
|
||||
}
|
||||
|
||||
var lineName = "";
|
||||
var oTable;
|
||||
|
||||
function initTable(tableData) {
|
||||
var $height = $("body").height() * 0.85;
|
||||
|
||||
oTable = $("#tableId")
|
||||
.dataTable({
|
||||
scrollX: true,
|
||||
data: tableData,
|
||||
autoWidth: false,
|
||||
/*columnDefs: [
|
||||
{"width": "15%", "targets": 0},
|
||||
{"width": "20%", "targets": 1},
|
||||
{"width": "10%", "targets": 2},
|
||||
{"width": "7%", "targets": 3},
|
||||
{"width": "8%", "targets": 4},
|
||||
{"width": "8%", "targets": 5},
|
||||
{"width": "8%", "targets": 6},
|
||||
{"width": "8%", "targets": 7},
|
||||
{"width": "8%", "targets": 8},
|
||||
{"width": "8%", "targets": 9}],*/
|
||||
lengthChange: false,
|
||||
paging: false,
|
||||
bDestroy: true,
|
||||
info: false,
|
||||
ordering: true,
|
||||
sDom: '"top"i',
|
||||
scrollY: $height,
|
||||
scrollCollapse: true,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
aoColumnDefs: [{
|
||||
"aTargets": [1], "mRender": function (data, type, full) {
|
||||
return "<a href='#' onclick=\"preInfo('" + full[11] + "')\">" + data + "</a> "
|
||||
}
|
||||
}, {
|
||||
"aTargets": [7], "mRender": function (data, type, full) {
|
||||
return "<a href='#' onclick=\"preUpdate('" + full[11] + "','" + full[1] + "','" + 1 + "','" + full[3] + "','" + full[12] + "','" + full[13] + "','" + full[2] + "','" + data + "','" + full[5] + "')\">" + data + "</a> "
|
||||
}
|
||||
},
|
||||
{
|
||||
"aTargets": [8], "mRender": function (data, type, full) {
|
||||
|
||||
return "<a href='#' onclick=\"preUpdate('" + full[11] + "','" + full[1] + "','" + 2 + "','" + full[3] + "','" + full[12] + "','" + full[13] + "','" + full[2] + "','" + data + "','" + full[5] + "')\">" + data + "</a> "
|
||||
}
|
||||
},
|
||||
{
|
||||
"aTargets": [9], "mRender": function (data, type, full) {
|
||||
|
||||
return "<a href='#' onclick=\"preUpdate('" + full[11] + "','" + full[1] + "','" + 0 + "','" + full[3] + "','" + full[12] + "','" + full[13] + "','" + full[2] + "','" + data + "','" + full[5] + "')\">" + data + "</a> "
|
||||
}
|
||||
},
|
||||
{
|
||||
"aTargets": [10], "mRender": function (data, type, full) {
|
||||
|
||||
return "<a href='#' onclick=\"preUpdate('" + full[11] + "','" + full[1] + "','" + 3 + "','" + full[3] + "','" + full[12] + "','" + full[13] + "','" + full[2] + "','" + data + "','" + full[5] + "')\">" + data + "</a> "
|
||||
}
|
||||
}]
|
||||
});
|
||||
|
||||
new $.fn.dataTable.Buttons(oTable.api(), {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',//导出格式
|
||||
title: '异常数据统计',//导出csv名称
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
modifyCss(oTable.api());
|
||||
|
||||
return oTable;
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
//dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "2px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
}
|
||||
|
||||
function preUpdate(point, lineName, data, phase, condition, harmonic, phaseName, isData, time) {
|
||||
objSearch.point = point;
|
||||
objSearch.condition = condition;
|
||||
if (objSearch.condition.indexOf('41') > -1
|
||||
|| objSearch.condition.indexOf('42') > -1) {
|
||||
objSearch.harmonic = harmonic;
|
||||
}
|
||||
if(objSearch.condition.indexOf('43') > -1){
|
||||
objSearch.inHarmonic = harmonic;
|
||||
}
|
||||
objSearch.lineName = lineName;
|
||||
objSearch.phaseName = phaseName;
|
||||
objSearch.startTime = time;
|
||||
objSearch.endTime = time;
|
||||
objSearch.type = data;
|
||||
objSearch.start = '00:00:00';
|
||||
objSearch.end = '23:59:59';
|
||||
objSearch.phase = phase;
|
||||
if (isData == '/') {
|
||||
layer.msg("未获取到异常数据", {
|
||||
icon: 5,
|
||||
time: 3000
|
||||
});
|
||||
} else {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '稳态指标波形',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['100%', '100%'],
|
||||
content: 'normlimitdraw',
|
||||
scrollbar: false
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 根据检测点id获取监测点名称
|
||||
function getName(index) {
|
||||
for (var i = 0; i < totalcount; i++) {
|
||||
if (node[i].id == index) {
|
||||
return ' ' + node[i].name;
|
||||
}
|
||||
}
|
||||
return ' ';
|
||||
}
|
||||
|
||||
// 根据条件设置tree节点状态 可用/不可用
|
||||
function disabledNode(e) {
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target"), l = zTree1
|
||||
.getCheckedNodes(false).length, nodes = zTree1
|
||||
.getCheckedNodes(false);
|
||||
nodeAll = zTree1.getNodes();
|
||||
m = zTree1.getNodes().length;
|
||||
if (e) {
|
||||
for (var i = 0; i < l; i++) {
|
||||
zTree1.setChkDisabled(nodes[i], e, false, false);
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < m; i++) {
|
||||
zTree1.setChkDisabled(nodeAll[i], e, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var height = $(window).height();
|
||||
|
||||
$("#query").click(function () {
|
||||
loading = ityzl_SHOW_LOAD_LAYER();
|
||||
getData();
|
||||
});
|
||||
|
||||
function preInfo(indexdd) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '监测点详情',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['65%', '60%'],
|
||||
content: 'pointInfo',
|
||||
scrollbar: false,
|
||||
success: function (layero, index) {
|
||||
$(layero).find("iframe")[0].contentWindow.getPointData(indexdd);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function changeTree(pttype) {
|
||||
|
||||
}
|
||||
1382
pqs9000/src/main/webapp/jspJS/assessmentsis/harmonic.js
Normal file
1382
pqs9000/src/main/webapp/jspJS/assessmentsis/harmonic.js
Normal file
File diff suppressed because it is too large
Load Diff
4014
pqs9000/src/main/webapp/jspJS/assessmentsis/history.js
Normal file
4014
pqs9000/src/main/webapp/jspJS/assessmentsis/history.js
Normal file
File diff suppressed because it is too large
Load Diff
1746
pqs9000/src/main/webapp/jspJS/assessmentsis/normLimitDraw.js
Normal file
1746
pqs9000/src/main/webapp/jspJS/assessmentsis/normLimitDraw.js
Normal file
File diff suppressed because it is too large
Load Diff
669
pqs9000/src/main/webapp/jspJS/assessmentsis/normLimits.js
Normal file
669
pqs9000/src/main/webapp/jspJS/assessmentsis/normLimits.js
Normal file
@@ -0,0 +1,669 @@
|
||||
var path = window.location.href;// 获取界面路径
|
||||
/*******************************************************************************
|
||||
* z-tree控件基本参数设置
|
||||
******************************************************************************/
|
||||
var settingRight = {
|
||||
check: {
|
||||
enable: true,
|
||||
chkDisabledInherit: true
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable: true
|
||||
}
|
||||
},
|
||||
callback: {
|
||||
beforeExpand: beforeExpand,
|
||||
beforeCheck: beforeCheck,
|
||||
onExpand: onExpand,
|
||||
onClick: onClick,
|
||||
onCheck: checkTarget
|
||||
}
|
||||
};
|
||||
var loading;// 用于页面的loading
|
||||
var className = "dark";
|
||||
|
||||
function beforeCheck(treeId, treeNode) {
|
||||
className = (className === "dark" ? "" : "dark");
|
||||
return (treeNode.doCheck !== false);
|
||||
}
|
||||
|
||||
// tree展开前处理事件
|
||||
var curExpandNode = null;
|
||||
|
||||
function beforeExpand(treeId, treeNode) {
|
||||
var pNode = curExpandNode ? curExpandNode.getParentNode() : null;
|
||||
var treeNodeP = treeNode.parentTId ? treeNode.getParentNode() : null;
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target");
|
||||
for (var i = 0, l = !treeNodeP ? 0 : treeNodeP.children.length; i < l; i++) {
|
||||
if (treeNode !== treeNodeP.children[i]) {
|
||||
zTree1.expandNode(treeNodeP.children[i], false);
|
||||
}
|
||||
}
|
||||
while (pNode) {
|
||||
if (pNode === treeNode) {
|
||||
break;
|
||||
}
|
||||
pNode = pNode.getParentNode();
|
||||
}
|
||||
if (!pNode) {
|
||||
singlePath(treeNode);
|
||||
}
|
||||
}
|
||||
|
||||
// 重新绘制tree内容 只展开一个tree根节点添加该事件
|
||||
function singlePath(newNode) {
|
||||
if (newNode === curExpandNode)
|
||||
return;
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target"), rootNodes, tmpRoot, tmpTId, i, j, n;
|
||||
if (!curExpandNode) {
|
||||
tmpRoot = newNode;
|
||||
while (tmpRoot) {
|
||||
tmpTId = tmpRoot.tId;
|
||||
tmpRoot = tmpRoot.getParentNode();
|
||||
}
|
||||
rootNodes = zTree1.getNodes();
|
||||
for (i = 0, j = rootNodes.length; i < j; i++) {
|
||||
n = rootNodes[i];
|
||||
if (n.tId != tmpTId) {
|
||||
zTree1.expandNode(n, false);
|
||||
}
|
||||
}
|
||||
} else if (curExpandNode && curExpandNode.open) {
|
||||
if (newNode.parentTId === curExpandNode.parentTId) {
|
||||
zTree1.expandNode(curExpandNode, false);
|
||||
} else {
|
||||
var newParents = [];
|
||||
while (newNode) {
|
||||
newNode = newNode.getParentNode();
|
||||
if (newNode === curExpandNode) {
|
||||
newParents = null;
|
||||
break;
|
||||
} else if (newNode) {
|
||||
newParents.push(newNode);
|
||||
}
|
||||
}
|
||||
if (newParents != null) {
|
||||
var oldNode = curExpandNode;
|
||||
var oldParents = [];
|
||||
while (oldNode) {
|
||||
oldNode = oldNode.getParentNode();
|
||||
if (oldNode) {
|
||||
oldParents.push(oldNode);
|
||||
}
|
||||
}
|
||||
if (newParents.length > 0) {
|
||||
zTree1.expandNode(oldParents[Math.abs(oldParents.length
|
||||
- newParents.length) - 1], false);
|
||||
} else {
|
||||
zTree1.expandNode(oldParents[oldParents.length - 1], false);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
curExpandNode = newNode;
|
||||
}
|
||||
|
||||
// 回调函数,展开tree节点
|
||||
function onExpand(event, treeId, treeNode) {
|
||||
curExpandNode = treeNode;
|
||||
}
|
||||
|
||||
// 回调函数,点击tree展开节点
|
||||
function onClick(e, treeId, treeNode) {
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target");
|
||||
zTree1.expandNode(treeNode, null, null, null, true);
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 获取查询指标 计算tree选中的节点,for循环去除计算父节点在内
|
||||
******************************************************************************/
|
||||
var checkCount = 1, totalcount = 6, nodes = '', node = null;
|
||||
|
||||
function checkTarget() {
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target");
|
||||
checkCount = zTree1.getCheckedNodes(true).length;
|
||||
node = zTree1.getCheckedNodes(true);
|
||||
totalcount = checkCount;
|
||||
nodes = '';
|
||||
var k = 0;
|
||||
|
||||
for (var i = 0; i < totalcount; i++) {
|
||||
if (node[i].pId == null) {
|
||||
checkCount--;
|
||||
} else {
|
||||
if (k < 5) {
|
||||
nodes += node[i].id + ',';
|
||||
} else {
|
||||
zTree1.checkNode(node[i], false, true);
|
||||
}
|
||||
k++;
|
||||
}
|
||||
}
|
||||
|
||||
if (nodes != '') {
|
||||
nodes = nodes.substring(0, nodes.lastIndexOf(','));
|
||||
|
||||
if (nodes.indexOf("41") != -1 || nodes.indexOf("42") != -1) {
|
||||
$("#harmonic").css("display", "inline");//显示
|
||||
} else {
|
||||
$("#harmonic").css("display", "none");//不显示
|
||||
}
|
||||
if (nodes.indexOf("43") != -1) {
|
||||
$("#harmonicInHarm").css("display", "inline");//显示
|
||||
} else {
|
||||
$("#harmonicInHarm").css("display", "none");//不显示
|
||||
}
|
||||
}
|
||||
|
||||
if (k > 5) {
|
||||
layer.msg('最多选择5个指标');
|
||||
}
|
||||
|
||||
if (checkCount >= 5) {
|
||||
disabledNode(true);
|
||||
} else {
|
||||
disabledNode(false);
|
||||
}
|
||||
}
|
||||
|
||||
$(document).ready(function () {
|
||||
parent.triggerCheckBox(1);
|
||||
parent.setTreeSelected(1, -1);
|
||||
$.fn.zTree.init($("#target"), settingRight, zNodes);
|
||||
checkTarget();
|
||||
|
||||
$('#times').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("times").options[clickedIndex].value;
|
||||
var odd = [];
|
||||
var evn = [];
|
||||
var total = [];
|
||||
|
||||
for (var i = 0; i < previousValue.length; i++) {
|
||||
if (previousValue[i] > 0 && previousValue[i] % 2 == 0) { //偶次
|
||||
odd.push(previousValue[i]);
|
||||
} else if (previousValue[i] > 0 && previousValue[i] % 2 != 0) { //奇次
|
||||
evn.push(previousValue[i]);
|
||||
} else {
|
||||
total.push(previousValue[i]); //全部 ...
|
||||
}
|
||||
}
|
||||
|
||||
if ((value === '-1' && previousValue.length > 0 && previousValue[0] != '-1') || (value != '-1' && previousValue[0] === '-1')) { //清空并重新选中
|
||||
$('#times').selectpicker('deselectAll');
|
||||
$('#times').selectpicker('val', value);
|
||||
} else if (value === '-2') {
|
||||
var array = [];
|
||||
|
||||
if (odd.length > 0) {
|
||||
array.push(value);
|
||||
|
||||
for (var i = 0; i < evn.length; i++) {
|
||||
array.push(evn[i]);
|
||||
}
|
||||
|
||||
for (var j = 0; j < total.length; j++) {
|
||||
if (total[j] == -3) {
|
||||
array.push(total[i]);
|
||||
}
|
||||
}
|
||||
|
||||
$('#times').selectpicker('deselectAll');
|
||||
$('#times').selectpicker('val', array);
|
||||
}
|
||||
} else if (value === '-3') {
|
||||
var array = [];
|
||||
|
||||
if (evn.length > 0) {
|
||||
array.push(value);
|
||||
|
||||
for (var i = 0; i < odd.length; i++) {
|
||||
array.push(odd[i]);
|
||||
}
|
||||
|
||||
for (var j = 0; j < total.length; j++) {
|
||||
if (total[j] == -2) {
|
||||
array.push(total[j]);
|
||||
}
|
||||
}
|
||||
|
||||
$('#times').selectpicker('deselectAll');
|
||||
$('#times').selectpicker('val', array);
|
||||
}
|
||||
} else if (value != '-1') {
|
||||
var array = [];
|
||||
|
||||
for (var i = 0; i < odd.length; i++) {
|
||||
if (value === odd[i]) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
for (var i = 0; i < evn.length; i++) {
|
||||
if (value === evn[i]) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
array.push(value);
|
||||
|
||||
for (var i = 0; i < odd.length; i++) {
|
||||
array.push(odd[i]);
|
||||
}
|
||||
|
||||
for (var k = 0; k < evn.length; k++) {
|
||||
array.push(evn[k]);
|
||||
}
|
||||
|
||||
if (value % 2 == 0) {
|
||||
for (var j = 0; j < total.length; j++) {
|
||||
if (total[j] == -3) {
|
||||
array.push(total[j]);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var j = 0; j < total.length; j++) {
|
||||
if (total[j] == -2) {
|
||||
array.push(total[j]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/*for (var i = 0; i < array.length; i++) {
|
||||
if (value === array[i]) {
|
||||
array.splice(i, 1);
|
||||
}
|
||||
}*/
|
||||
|
||||
$('#times').selectpicker('deselectAll');
|
||||
$('#times').selectpicker('val', array);
|
||||
}
|
||||
}
|
||||
|
||||
$('#times').selectpicker('refresh');
|
||||
});
|
||||
});
|
||||
|
||||
var objSearch = new Object();// 跳转页面
|
||||
function getData() {
|
||||
var start = $("#startTime").val();
|
||||
var end = $("#endTime").val();
|
||||
var points = parent.getTreeSelected(1);
|
||||
var lineId = "";
|
||||
|
||||
if (points.length == 0) {
|
||||
layer.msg('请至少选择一个监测点');
|
||||
return;
|
||||
}
|
||||
|
||||
if (nodes == '') {
|
||||
layer.msg('请至少选择一个指标');
|
||||
return;
|
||||
}
|
||||
|
||||
for (var i = 0; i < points.length; i++) {
|
||||
lineId += points[i].nodeIndex + ',';
|
||||
}
|
||||
|
||||
var times = '';
|
||||
var harmonicInHarms = '';
|
||||
|
||||
if (nodes.indexOf("41") > -1 || nodes.indexOf("42") > -1) {
|
||||
var data = $('#times').selectpicker('val');
|
||||
|
||||
if (data == null) {
|
||||
layer.msg('请选择需要查看的谐波次数', {icon: 2, time: 2000});
|
||||
return;
|
||||
}
|
||||
|
||||
if (data.length == 1 && data[0] < 0) {
|
||||
if (data[0] == -1) {
|
||||
for (var i = 0; i < 24; i++) {
|
||||
times += (i + 2) + ',';
|
||||
}
|
||||
} else if (data[0] == -2) {
|
||||
for (var i = 0; i < 12; i++) {
|
||||
times += ((i + 1) * 2) + ',';
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < 12; i++) {
|
||||
times += ((i + 1) * 2 + 1) + ',';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
var b1 = 0;
|
||||
var b2 = 0;
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i] == -2) {
|
||||
b1 = 1;
|
||||
} else if (data[i] == -3) {
|
||||
b2 = 1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
if (b1 == 1 && b2 == 0) {
|
||||
for (var i = 0; i < 12; i++) {
|
||||
times + ((i + 1) * 2) + ',';
|
||||
}
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i] % 2 != 0) {
|
||||
times += data[i] + ',';
|
||||
}
|
||||
}
|
||||
} else if (b2 == 1 && b1 == 0) {
|
||||
for (var i = 0; i < 12; i++) {
|
||||
times += ((i + 1) * 2 + 1) + ',';
|
||||
}
|
||||
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
if (data[i] % 2 == 0) {
|
||||
times += data[i] + ',';
|
||||
}
|
||||
}
|
||||
} else if (b1 == 0 && b2 == 0) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
times += data[i] + ',';
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < 24; i++) {
|
||||
times += (i + 2) + ',';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if (nodes.indexOf("43") > -1) {
|
||||
var data = $('#harmonicInHarms').selectpicker('val');
|
||||
|
||||
if (data == null) {
|
||||
layer.msg('请选择需要查看的谐波次数', {icon: 2, time: 2000});
|
||||
return;
|
||||
}
|
||||
|
||||
if (data.length == 1 && data[0] < 0) {
|
||||
if (data[0] == -1) {
|
||||
for (var i = 0; i < 16; i++) {
|
||||
harmonicInHarms += (i + 1) + ',';
|
||||
}
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
harmonicInHarms += data[i] + ',';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
dataType: "json",
|
||||
data: {
|
||||
startTime: start,
|
||||
endTime: end,
|
||||
lineId: lineId,
|
||||
type: nodes,
|
||||
index: times,
|
||||
harmonicInHarms:harmonicInHarms
|
||||
},
|
||||
url: '/pqs9000/device/getHistoryTableData',
|
||||
success: function (data) {
|
||||
layer.close(loading);
|
||||
|
||||
if (data.code == 500) {
|
||||
initTable([]);
|
||||
layer.msg(data.message, {icon: 2, time: 2000})
|
||||
} else {
|
||||
var tableData = '';
|
||||
var selectData = $('#type').val();
|
||||
|
||||
for (var i = 0; i < data.body.length; i++) {
|
||||
for (var j = 0; j < data.body[i].list.length; j++) {
|
||||
for (var k = 0; k < data.body[i].list[j].list.length; k++) {
|
||||
for (var m = 0; m < data.body[i].list[j].list[k].list.length; m++) {
|
||||
var b = 0;
|
||||
|
||||
if (selectData == '合格' && data.body[i].list[j].list[k].pass == 0) {
|
||||
b = 1;
|
||||
} else if (selectData == '不合格' && data.body[i].list[j].list[k].pass == -1) {
|
||||
b = 1;
|
||||
} else if (selectData == '全部') {
|
||||
b = 1;
|
||||
}
|
||||
|
||||
if (b == 1) {
|
||||
if ((data.body[i].pttype == 1 || data.body[i].pttype == 2) && data.body[i].list[j].targetName.indexOf('电压不平衡') != -1) {
|
||||
break;
|
||||
}
|
||||
|
||||
if ((data.body[i].pttype == 1 || data.body[i].pttype == 2) && data.body[i].list[j].targetName.indexOf('电流') == -1) {
|
||||
if (data.body[i].list[j].list[k].list[m].phaseType == 'A')
|
||||
data.body[i].list[j].list[k].list[m].phaseType = 'AB';
|
||||
else if (data.body[i].list[j].list[k].list[m].phaseType == 'B')
|
||||
data.body[i].list[j].list[k].list[m].phaseType = 'BC';
|
||||
else if (data.body[i].list[j].list[k].list[m].phaseType == 'C') {
|
||||
if (data.body[i].pttype == 2) {
|
||||
break;
|
||||
} else {
|
||||
data.body[i].list[j].list[k].list[m].phaseType = 'CA';
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tableData += '["' + data.body[i].bdName + '","'
|
||||
+ data.body[i].name + '","'
|
||||
+ data.body[i].list[j].targetName + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].phaseType) + '","' //单独处理,否则影响最大、最小展示
|
||||
+ data.body[i].voltage + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].strTime) + '","'
|
||||
+ data.body[i].list[j].unit + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].fmaxValue) + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].minValue) + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].meanValue) + '","'
|
||||
+ judge(data.body[i].list[j].list[k].list[m].cp95Value) + '","';
|
||||
|
||||
if (data.body[i].list[j].list[k].pass == null) {
|
||||
tableData += '/","';
|
||||
} else if (data.body[i].list[j].list[k].pass == 0) {
|
||||
tableData += '合格","';
|
||||
} else if (data.body[i].list[j].list[k].pass == -1) {
|
||||
tableData += '不合格","';
|
||||
}
|
||||
|
||||
tableData += data.body[i].lineId + '","'
|
||||
+ data.body[i].list[j].typeId + '","' + data.body[i].list[j].timeId + '"],';
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//去除最右边',' string转json
|
||||
tableData = tableData.substring(0, tableData.lastIndexOf(','));
|
||||
tableData = eval('[' + tableData + ']');
|
||||
initTable(tableData);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function judge(str) {
|
||||
return str === null ? '/' : str;
|
||||
}
|
||||
|
||||
var lineName = "";
|
||||
var oTable;
|
||||
|
||||
function initTable(tableData) {
|
||||
var $height = $("body").height() * 0.85;
|
||||
|
||||
oTable = $("#tableId")
|
||||
.dataTable({
|
||||
scrollX: true,
|
||||
data: tableData,
|
||||
autoWidth: false,
|
||||
/*columnDefs: [
|
||||
{"width": "15%", "targets": 0},
|
||||
{"width": "20%", "targets": 1},
|
||||
{"width": "10%", "targets": 2},
|
||||
{"width": "7%", "targets": 3},
|
||||
{"width": "8%", "targets": 4},
|
||||
{"width": "8%", "targets": 5},
|
||||
{"width": "8%", "targets": 6},
|
||||
{"width": "8%", "targets": 7},
|
||||
{"width": "8%", "targets": 8},
|
||||
{"width": "8%", "targets": 9}],*/
|
||||
lengthChange: false,
|
||||
paging: false,
|
||||
bDestroy: true,
|
||||
info: false,
|
||||
ordering: true,
|
||||
sDom: '"top"i',
|
||||
scrollY: $height,
|
||||
scrollCollapse: true,
|
||||
language: {
|
||||
url : '/pqs9000/json/chine.json',
|
||||
"sEmptyTable" : "没有内容"
|
||||
},
|
||||
aoColumnDefs: [{
|
||||
"aTargets": [1], "mRender": function (data, type, full) {
|
||||
return "<a href='#' onclick=\"preInfo('" + full[12] + "')\">" + data + "</a> "
|
||||
}
|
||||
}, {
|
||||
"aTargets": [7], "mRender": function (data, type, full) {
|
||||
return "<a href='#' onclick=\"preUpdate('" + full[12] + "','" + full[1] + "','" + 1 + "','" + full[3] + "','" + full[13] + "','" + full[14] + "','" + full[2] + "','" + data + "','" + full[5] + "')\">" + data + "</a> "
|
||||
}
|
||||
},
|
||||
{
|
||||
"aTargets": [8], "mRender": function (data, type, full) {
|
||||
|
||||
return "<a href='#' onclick=\"preUpdate('" + full[12] + "','" + full[1] + "','" + 2 + "','" + full[3] + "','" + full[13] + "','" + full[14] + "','" + full[2] + "','" + data + "','" + full[5] + "')\">" + data + "</a> "
|
||||
}
|
||||
},
|
||||
{
|
||||
"aTargets": [9], "mRender": function (data, type, full) {
|
||||
|
||||
return "<a href='#' onclick=\"preUpdate('" + full[12] + "','" + full[1] + "','" + 0 + "','" + full[3] + "','" + full[13] + "','" + full[14] + "','" + full[2] + "','" + data + "','" + full[5] + "')\">" + data + "</a> "
|
||||
}
|
||||
},
|
||||
{
|
||||
"aTargets": [10], "mRender": function (data, type, full) {
|
||||
|
||||
return "<a href='#' onclick=\"preUpdate('" + full[12] + "','" + full[1] + "','" + 3 + "','" + full[3] + "','" + full[13] + "','" + full[14] + "','" + full[2] + "','" + data + "','" + full[5] + "')\">" + data + "</a> "
|
||||
}
|
||||
}]
|
||||
});
|
||||
|
||||
new $.fn.dataTable.Buttons(oTable.api(), {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',//导出格式
|
||||
title: '稳态指标统计',//导出csv名称
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
modifyCss(oTable.api());
|
||||
|
||||
return oTable;
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
//dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "2px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
}
|
||||
|
||||
function preUpdate(point, lineName, data, phase, condition, harmonic, phaseName, isData, time) {
|
||||
objSearch.point = point;
|
||||
objSearch.condition = condition;
|
||||
if (objSearch.condition.indexOf('41') > -1
|
||||
|| objSearch.condition.indexOf('42') > -1) {
|
||||
objSearch.harmonic = harmonic;
|
||||
}
|
||||
if(objSearch.condition.indexOf('43') > -1){
|
||||
objSearch.inHarmonic = harmonic;
|
||||
}
|
||||
objSearch.lineName = lineName;
|
||||
objSearch.phaseName = phaseName;
|
||||
objSearch.startTime = time;
|
||||
objSearch.endTime = time;
|
||||
objSearch.type = data;
|
||||
objSearch.start = '00:00:00';
|
||||
objSearch.end = '23:59:59';
|
||||
objSearch.phase = phase;
|
||||
if (isData == '/') {
|
||||
layer.msg("未获取到稳态指标数据", {
|
||||
icon: 5,
|
||||
time: 3000
|
||||
});
|
||||
} else {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '稳态指标波形',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['100%', '100%'],
|
||||
content: 'normlimitdraw',
|
||||
scrollbar: false
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
// 根据检测点id获取监测点名称
|
||||
function getName(index) {
|
||||
for (var i = 0; i < totalcount; i++) {
|
||||
if (node[i].id == index) {
|
||||
return ' ' + node[i].name;
|
||||
}
|
||||
}
|
||||
return ' ';
|
||||
}
|
||||
|
||||
// 根据条件设置tree节点状态 可用/不可用
|
||||
function disabledNode(e) {
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target"), l = zTree1
|
||||
.getCheckedNodes(false).length, nodes = zTree1
|
||||
.getCheckedNodes(false);
|
||||
nodeAll = zTree1.getNodes();
|
||||
m = zTree1.getNodes().length;
|
||||
if (e) {
|
||||
for (var i = 0; i < l; i++) {
|
||||
zTree1.setChkDisabled(nodes[i], e, false, false);
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < m; i++) {
|
||||
zTree1.setChkDisabled(nodeAll[i], e, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var height = $(window).height();
|
||||
|
||||
$("#query").click(function () {
|
||||
loading = ityzl_SHOW_LOAD_LAYER();
|
||||
getData();
|
||||
});
|
||||
|
||||
function preInfo(indexdd) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '监测点详情',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['65%', '60%'],
|
||||
content: 'pointInfo',
|
||||
scrollbar: false,
|
||||
success: function (layero, index) {
|
||||
$(layero).find("iframe")[0].contentWindow.getPointData(indexdd);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function changeTree(ptType) {
|
||||
|
||||
}
|
||||
1739
pqs9000/src/main/webapp/jspJS/assessmentsis/plateNormal.js
Normal file
1739
pqs9000/src/main/webapp/jspJS/assessmentsis/plateNormal.js
Normal file
File diff suppressed because it is too large
Load Diff
1220
pqs9000/src/main/webapp/jspJS/assessmentsis/plateReport.js
Normal file
1220
pqs9000/src/main/webapp/jspJS/assessmentsis/plateReport.js
Normal file
File diff suppressed because it is too large
Load Diff
85
pqs9000/src/main/webapp/jspJS/assessmentsis/pointInfo.js
Normal file
85
pqs9000/src/main/webapp/jspJS/assessmentsis/pointInfo.js
Normal file
@@ -0,0 +1,85 @@
|
||||
var lineId;
|
||||
function getPointData(index) {
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: "/pqs9000/getPointInfo",
|
||||
data: {
|
||||
pointIndex: index
|
||||
},
|
||||
success: function (data) {
|
||||
if (data == null || data.code === 500) {
|
||||
layer.msg('监测点详情加载失败', {icon: 2, time: 1000});
|
||||
} else {
|
||||
initPointTable(data.body);
|
||||
lineId = index
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function initPointTable(data) {
|
||||
$("#jcdxx").text(data.pName + "_" + data.name);
|
||||
$("#jcxl").text(data.bdName);
|
||||
$("#tyrq").text(data.strDate);
|
||||
$("#cj").text(data.factory);
|
||||
$("#xh").text(data.devType);
|
||||
$("#wlcs").text(data.ip);
|
||||
$("#txzt").text(data.state);
|
||||
$("#loadtype").text(data.loadType);
|
||||
$("#lineOnject").text(data.objName == null ? '/':data.objName);
|
||||
$("#dydj").text(data.voltageClasses);
|
||||
$("#pt").text(data.pt1 + "/" + data.pt2);
|
||||
$("#ct").text(data.ct1 + "/" + data.ct2);
|
||||
$("#jzdl").text(data.jzcmp + "MVA");
|
||||
$("#mxdl").text(data.dlcmp + "MVA");
|
||||
$("#ydrl").text(data.xycmp + "MVA");
|
||||
$("#gdrl").text(data.devcmp + "MVA");
|
||||
if(data.devType.indexOf("CLD")>0){
|
||||
$("#onlycld").removeAttr("hidden");
|
||||
$("#baseFlow").text(data.baseFlow);
|
||||
$("#extendFlow").text(data.extendFlow);
|
||||
$("#useFlow").text(data.useFlow);
|
||||
}else{
|
||||
$("#onlycld").attr("hidden","true");
|
||||
}
|
||||
|
||||
$("#owner").text(data.owner == null ?'/':data.owner);
|
||||
$("#ownerDuty").text(data.ownerDuty == null ?'/':data.ownerDuty);
|
||||
$("#ownerTel").text(data.ownerTel == null ?'/':data.ownerTel);
|
||||
$("#businessType").text(data.businessType);
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
$("#demo1").click(function () {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
url: '/pqs9000/device/queryWiringDiagram',
|
||||
data: {
|
||||
lineId:lineId
|
||||
},
|
||||
success: function (data) {
|
||||
if(data.code === 200){
|
||||
layer.open({
|
||||
type: 1,
|
||||
title: '主接线图预览',
|
||||
shadeClose: true,
|
||||
area: ['100%', '100%'],
|
||||
maxmin : false,
|
||||
content: '<div style="padding: 10px 150px;width: 100%;height: 100%"><img style="width: 100%;height: 100%" src="'+data.body+'"></div>', //iframe的url
|
||||
scrollbar: true,
|
||||
end:function(){
|
||||
|
||||
}
|
||||
});
|
||||
}else {
|
||||
layer.msg(data.message, {icon: 2, time: 2000});
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
|
||||
|
||||
|
||||
})
|
||||
100
pqs9000/src/main/webapp/jspJS/confirmIndentity.js
Normal file
100
pqs9000/src/main/webapp/jspJS/confirmIndentity.js
Normal file
@@ -0,0 +1,100 @@
|
||||
var remindLayer ;
|
||||
function confirmIndentity(username,fn) {
|
||||
username = encrypt(username);
|
||||
remindLayer = layer.open({
|
||||
type: '1',
|
||||
title: "密码确认",
|
||||
resize: false,
|
||||
shadeClose: true,
|
||||
scrollbar: false,
|
||||
area: "350px",
|
||||
closeBtn: 0,
|
||||
content: "<form class='form-horizontal pdr15 pdt15 pdl15'><div class='form-group'><label for='newPwd' class='col-sm-3 control-label'>密码</label><div class='col-sm-9'><input type='password' class='form-control' id='confirmPwd' autocomplete='new-password'></div></div></form>",
|
||||
btn: ['确定', '取消'],
|
||||
yes: function (index, layero) {
|
||||
var confirmPwd = $("#confirmPwd").val();
|
||||
confirmPwd = confirmPwd.replace(/(^\s*)|(\s*$)/g, '');
|
||||
if (validPassword(confirmPwd)) {
|
||||
//执行更新用户密码的操作
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/sso/user/generateSM2Key",
|
||||
dataType: "text",
|
||||
async:false,
|
||||
data: {
|
||||
username: username
|
||||
},
|
||||
success: function (data) {
|
||||
var info = $.parseJSON(data);
|
||||
if (info.code === 200) {
|
||||
var pubkeyHex = info.body;//获取SM2加密公钥
|
||||
var sm3Pwd = sm3Digest(confirmPwd);//SM3加密
|
||||
var sm2Pwd =sm2Encrypt(sm3Pwd + "|" + confirmPwd, pubkeyHex, 0);//SM2公钥加密
|
||||
confirmUserPwd(sm2Pwd,fn);
|
||||
}else {
|
||||
layer.msg(info.message, {icon: 2, time: 2000});
|
||||
}
|
||||
}
|
||||
});
|
||||
} else {
|
||||
layer.msg('密码不正确', {icon: 2, time: 2000});
|
||||
}
|
||||
}, btn2: function (index, layero) {
|
||||
layer.close(index);
|
||||
},
|
||||
end: function (index) {
|
||||
layer.close(index);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 加密(需要先加载lib/aes/aes.min.js文件)
|
||||
* @param word
|
||||
* @returns {*}
|
||||
*/
|
||||
function encrypt(word) {
|
||||
var key = CryptoJS.enc.Utf8.parse("njcnpqsqpncjnggg");
|
||||
var srcs = CryptoJS.enc.Utf8.parse(word);
|
||||
var encrypted = CryptoJS.AES.encrypt(srcs, key, {mode: CryptoJS.mode.ECB, padding: CryptoJS.pad.Pkcs7});
|
||||
return encrypted.toString();
|
||||
}
|
||||
|
||||
|
||||
|
||||
//验证用户密码
|
||||
function validPassword(password) {
|
||||
password = password.replace(/(^\s*)|(\s*$)/g, '');
|
||||
var pwdRepx = /^(?=.*[a-zA-Z])(?=.*\d)(?=.*[@#_!$%^&*()?<>/|~,\\\-+\.]).{8,16}$/;
|
||||
if (!pwdRepx.test(password)) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
//判断用户名密码是否匹配
|
||||
function confirmUserPwd(pwd,fn) {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/confirmPwd",
|
||||
dataType: "json",
|
||||
async:false,
|
||||
data: {
|
||||
password: pwd
|
||||
},
|
||||
statusCode: {
|
||||
203: function () {
|
||||
layer.msg("密码正确", {icon: 6, time: 2000}, function(){
|
||||
layer.close(remindLayer);
|
||||
//执行传递过来的函数内容
|
||||
fn();
|
||||
});
|
||||
}
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message, {icon:2, time: 2000});
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
197
pqs9000/src/main/webapp/jspJS/main.js
Normal file
197
pqs9000/src/main/webapp/jspJS/main.js
Normal file
@@ -0,0 +1,197 @@
|
||||
$(document).ready(function () {
|
||||
if (window.top != window.self) {
|
||||
window.top.location.href = "/sso";
|
||||
}
|
||||
});
|
||||
var tabs;
|
||||
var webSocket;
|
||||
$(function () {
|
||||
$('#rightContent').width(document.body.clientWidth - 290).height(document.body.offsetHeight - 115);
|
||||
tabs = $('#tabs').cleverTabs();
|
||||
$(window).bind('resize',
|
||||
function () {
|
||||
tabs.resizePanelContainer();
|
||||
$('#rightContent').width(document.body.clientWidth - $('#left-menu').width() - 35).height(document.body.offsetHeight - 115);
|
||||
});
|
||||
|
||||
if (getRole("/pqs9000/business/overview") == 1) {
|
||||
addTab('overview', '概览');
|
||||
} else if (getRole("/pqs9000/business/monitor") == 1) {
|
||||
addTab('monitor', '在线监测点');
|
||||
} else if (getRole("/pqs9000/business/offlinemonitor") == 1) {
|
||||
addTab('offlinemonitor', '离线监测点');
|
||||
} else if (getRole("/pqs9000/area/quality") == 1) {
|
||||
addTab('/pqs9000/area/quality', '电能质量评估');
|
||||
} else if (getRole("/pqs9000/area/steady") == 1) {
|
||||
addTab('/pqs9000/area/steady', '稳态指标合格率');
|
||||
} else if (getRole("/pqs9000/area/status") == 1) {
|
||||
addTab('/pqs9000/area/status', '终端状态');
|
||||
} else if (getRole("/pqs9000/area/onlinerate") == 1) {
|
||||
addTab('/pqs9000/area/onlinerate', '终端在线率');
|
||||
} else if (getRole("/pqs9000/area/integrality") == 1) {
|
||||
addTab('/pqs9000/area/integrality', '数据完整性');
|
||||
} else if (getRole("/pqs9000/area/vdlist") == 1) {
|
||||
addTab('/pqs9000/area/vdlist', '暂降事件列表');
|
||||
} else if (getRole("/pqs9000/business/norm") == 1) {
|
||||
addTab('norm', '稳态趋势对比');
|
||||
} else if (getRole("/pqs9000/business/harmonic") == 1) {
|
||||
addTab('harmonic', '历史谐波频谱');
|
||||
} else if (getRole("/pqs9000/responsibility/responsibilitylist") == 1) {
|
||||
addTab('/pqs9000/responsibility/responsibilitylist', '谐波责任划分列表');
|
||||
} else if (getRole("/pqs9000/business/runtime") == 1) {
|
||||
addTab('runtime', '终端运行情况');
|
||||
} else if (getRole("/pqs9000/area/onlineratetable") == 1) {
|
||||
addTab('/pqs9000/area/onlineratetable', '在线率列表');
|
||||
} else if (getRole("/pqs9000/area/integralitytable") == 1) {
|
||||
addTab('/pqs9000/area/integralitytable', '完整性列表');
|
||||
} else if (getRole("/pqs9000/area/steadytable") == 1) {
|
||||
addTab('/pqs9000/area/steadytable', '稳态合格率列表');
|
||||
} else if (getRole("/pqs9000/area/harmonicrate") == 1) {
|
||||
addTab('/pqs9000/area/harmonicrate', '谐波总畸变率统计');
|
||||
} else if (getRole("/pqs9000/business/excel") == 1) {
|
||||
addTab('excel', 'Excel报表');
|
||||
} else if (getRole("/pqs9000/business/expmodel") == 1) {
|
||||
addTab('expmodel', 'Word报告');
|
||||
} else if (getRole("/pqs9000/business/sourcemanage") == 1) {
|
||||
addTab('sourcemanage', '资源管理');
|
||||
} else if (getRole("/pqs9000/responsibility/areaovernoraml") == 1) {
|
||||
addTab('/pqs9000/responsibility/areaovernoraml', '区域稳态指标超标');
|
||||
} else if (getRole("/pqs9000/responsibility/warningsubstation") == 1) {
|
||||
addTab('/pqs9000/responsibility/warningsubstation', '告警变电站明细');
|
||||
} else if (getRole("/pqs9000/responsibility/warningmonitor") == 1) {
|
||||
addTab('/pqs9000/responsibility/warningmonitor', '监测点稳态超标');
|
||||
}
|
||||
$('#left-menu').remove();
|
||||
$('#rightContent').width(
|
||||
document.body.clientWidth - $('#left-menu').width() - 35).height(
|
||||
document.body.offsetHeight - 100).css({
|
||||
'left': '15px',
|
||||
'right': '20px'
|
||||
});
|
||||
|
||||
startWebSocket();
|
||||
});
|
||||
|
||||
// 新增tab页
|
||||
function addTab(url, label) {
|
||||
tabs.add({url: url, label: label});
|
||||
if (url == 'jcd.html') {
|
||||
$('#left-menu').remove();
|
||||
$('#rightContent').width(
|
||||
document.body.clientWidth - $('#left-menu').width() - 35)
|
||||
.height(document.body.offsetHeight - 115).css({
|
||||
'left': '15px',
|
||||
'right': '20px'
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
var actLineIndex;
|
||||
var thisUrl;
|
||||
//扩展
|
||||
function addTabs(url, label) {
|
||||
tabs.add({url: url, label: label,callback: function () {
|
||||
if(thisUrl){
|
||||
console.log(thisUrl)
|
||||
if(thisUrl == 'actualData'){
|
||||
$.ajax({
|
||||
type: 'get',
|
||||
dataType: "json",
|
||||
url: '/pqs9000/device/closeRealTimeData',
|
||||
data: {
|
||||
lineIndex: actLineIndex
|
||||
},
|
||||
success: function (data) {
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
} });
|
||||
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
* 主页面中其他功能如: 用户登出等
|
||||
*/
|
||||
$('.menu-slidedown').find('li').click(function () {
|
||||
$(this).addClass('hover').siblings().removeClass('hover');
|
||||
$(this).parents('.menu-con').siblings().find('li').removeClass('hover');
|
||||
})
|
||||
$('.menu-con').find('.menu-hd').click(function () {
|
||||
var menucon = $(this).parents('.menu-con');
|
||||
if (menucon.hasClass('hover')) {
|
||||
menucon.removeClass('hover');
|
||||
} else {
|
||||
menucon.addClass('hover').siblings('.menu-con').removeClass('hover')
|
||||
}
|
||||
})
|
||||
|
||||
$("#destory").click(function () {
|
||||
layer.confirm('确定退出吗?', {
|
||||
btn: ['确定', '取消']
|
||||
}, function (index) {
|
||||
location.href = '/pqs9000/user/loginout';
|
||||
layer.close(index)
|
||||
|
||||
}, function () {
|
||||
|
||||
});
|
||||
});
|
||||
///登录用户详情及修改密码
|
||||
$("#selectUserUpdatePass").click(function () {
|
||||
var userIndex =document.getElementById("user_index").value.split("/")[0];
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '用户详情',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['35%', '32%'],
|
||||
content: 'userDetail?userIndex='
|
||||
+ userIndex,
|
||||
scrollbar: false
|
||||
});
|
||||
});
|
||||
|
||||
var length = 0;
|
||||
var num = 0;
|
||||
|
||||
function goLeft() {
|
||||
// 750是根据你给的尺寸,可变的
|
||||
if (num == length) {
|
||||
num = 0;
|
||||
}
|
||||
num -= 1;
|
||||
$(".scroll").css({
|
||||
left: num
|
||||
})
|
||||
}
|
||||
|
||||
function startWebSocket() {
|
||||
$.ajax({
|
||||
type: 'POST',
|
||||
dataType: "text",
|
||||
url: '/pqs9000/device/websocketon',
|
||||
async: true,
|
||||
success: function (data) {
|
||||
if (data != "" || data != null) {
|
||||
var userName = $("#user_name").val();
|
||||
webSocket = new WebSocket(data + userName);
|
||||
webSocket.onerror = function (event) {
|
||||
layer.msg("websSocket错误信息:" + event.data);
|
||||
}
|
||||
webSocket.onopen = function () {
|
||||
layer.msg("webSocket连接成功!", {
|
||||
time: 404
|
||||
});
|
||||
}
|
||||
webSocket.onclose = function () {
|
||||
webSocket.close();
|
||||
layer.msg("webSocket关闭!");
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
229
pqs9000/src/main/webapp/jspJS/manage/harmonicrate.js
Normal file
229
pqs9000/src/main/webapp/jspJS/manage/harmonicrate.js
Normal file
@@ -0,0 +1,229 @@
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
var layerId = -1;
|
||||
var height = $(window).height() - 30;
|
||||
var oTable = null;
|
||||
$("#interval").val("周");
|
||||
$(function () {
|
||||
getHarmonicRate();
|
||||
});
|
||||
|
||||
$('#query').click(function () {
|
||||
getHarmonicRate();
|
||||
});
|
||||
|
||||
function getHarmonicRate() {
|
||||
layerId = SHOW_LOAD_LAYER(layer);
|
||||
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var i;
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/area/getHarmonicRate",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
dataType: "json",
|
||||
success: function (info) {
|
||||
if (info.code === 500) {
|
||||
drawPic([]);
|
||||
drawTable([]);
|
||||
} else {
|
||||
drawTable(info.body);
|
||||
drawPic(info.body);
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function drawTable(data) {
|
||||
var tableData = '';
|
||||
var offset = 0;
|
||||
|
||||
while (offset < data.length) {
|
||||
tableData += '["","' + data[offset].gdName + '","'
|
||||
+ data[offset].bdName + '","'
|
||||
+ data[offset].pointName + '","'
|
||||
+ data[offset].voltage + '","'
|
||||
+ data[offset].ip + '","'
|
||||
+ (data[offset].harmonicRate == -1 ? '(暂无数据)' : data[offset].harmonicRate) +
|
||||
'"],';
|
||||
|
||||
offset++;
|
||||
}
|
||||
|
||||
tableData = tableData.substring(0, tableData.lastIndexOf(','));
|
||||
tableData = eval('[' + tableData + ']');
|
||||
oTable = $("#harmonicrate")
|
||||
.DataTable({
|
||||
scrollX: true,
|
||||
scrollY: height * 0.3,
|
||||
columns: [
|
||||
{"width": "5%"},
|
||||
{"width": "6%"},
|
||||
{"width": "8%"},
|
||||
{
|
||||
"width": "9%", render: function (data, type, full, meta) {
|
||||
var value = data;
|
||||
if (data.length > 15) {
|
||||
value = data.substring(0, 14) + "...";
|
||||
value = "<span title=" + data + ">" + value + "</span>";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{"width": "6%"},
|
||||
{"width": "9%"},
|
||||
{"width": "7%"}
|
||||
],
|
||||
data: tableData,
|
||||
lengthChange: false,
|
||||
info: false,
|
||||
"paging": false, // 禁止分页
|
||||
bDestroy: true,
|
||||
'searching': true,
|
||||
dom: 'lrt<<"myStyle"i><"myStyle"p>>',
|
||||
ordering: true,
|
||||
scrollCollapse: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
}
|
||||
});
|
||||
|
||||
oTable.on('draw.dt', function () {
|
||||
oTable.column(0, {
|
||||
draw: 'applied',
|
||||
}).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
}
|
||||
|
||||
$("#pic").css("height", height * 0.6);
|
||||
|
||||
function drawPic(data) {
|
||||
var length = data.length > 20 ? 20 : data.length;
|
||||
var xData = [];
|
||||
var name = [];
|
||||
var max = 1;
|
||||
|
||||
if (data != []) {
|
||||
max = data[0].harmonicRate == -1 ? 1 : Math.ceil(data[0].harmonicRate);
|
||||
}
|
||||
|
||||
for (var i = 0; i < length; i++) {
|
||||
var color = {};
|
||||
var dd = {};
|
||||
name.push(data[i].pointName);
|
||||
|
||||
if (data[i].harmonicRate == -1) {
|
||||
color.value = max > 1 ? data[0].harmonicRate * 0.03 : 0.03;
|
||||
dd.color = noData;
|
||||
color.itemStyle = dd;
|
||||
xData.push(color);
|
||||
} else {
|
||||
color.value = (data[i].harmonicRate == 0 ? (max > 1 ? data[0].harmonicRate * 0.03 : 0.03) : data[i].harmonicRate);
|
||||
dd.color = orange;
|
||||
color.b = data[i].harmonicRate == 0 ? 1 : 0;
|
||||
color.itemStyle = dd;
|
||||
xData.push(color);
|
||||
}
|
||||
}
|
||||
|
||||
var pic = echarts.init(document.getElementById("pic"));
|
||||
|
||||
var option = {
|
||||
backgroundColor: canvasBG,// 背景色,
|
||||
title: {
|
||||
text: '总谐波畸变率(前20条数据)',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var tips = "";
|
||||
tips += params[0].seriesName + ":" + (params[0].data.itemStyle.color == noData ? '(暂无数据)' : params[0].data.b == 1 ? 0 : params[0].value)
|
||||
+ "<br/>";
|
||||
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
color: [orange],
|
||||
legend: {
|
||||
data: ['总谐波畸变率'],
|
||||
x: 'left'
|
||||
},
|
||||
grid: {
|
||||
left: '3%',
|
||||
bottom: '10%',
|
||||
right: '7%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: name,
|
||||
name: '(监测点名称)',
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: 0,
|
||||
formatter: function (value) {
|
||||
return (value.length > 3 ? (value.slice(0, 3) + "...") : value)
|
||||
}
|
||||
}, triggerEvent: true
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '(%)',
|
||||
max: max /*function (value) {
|
||||
if (value.max == 0.03) {
|
||||
return 1;
|
||||
}
|
||||
|
||||
return value.max;
|
||||
}*/,
|
||||
splitLine: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
series: [{
|
||||
name: '总谐波畸变率',
|
||||
type: 'bar',
|
||||
barMaxWidth: 30,
|
||||
data: xData
|
||||
}]
|
||||
};
|
||||
|
||||
pic.setOption(option);
|
||||
|
||||
pic.on('mouseover', function (params) {
|
||||
if (params.componentType == 'xAxis') {
|
||||
var tt = $('#tip');
|
||||
tt.html(params.value);
|
||||
tt.css("left", params.event.event.clientX + document.documentElement.scrollLeft + 10 + "px");
|
||||
tt.css("top", params.event.event.clientY + document.documentElement.scrollTop + 10 + "px");
|
||||
tt.css("display", "block");
|
||||
}
|
||||
});
|
||||
|
||||
pic.on('mouseout', function (params) {
|
||||
$('#tip').hide();
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function searchResult(value) {
|
||||
oTable.search(value).draw();
|
||||
}
|
||||
412
pqs9000/src/main/webapp/jspJS/manage/integrityTable.js
Normal file
412
pqs9000/src/main/webapp/jspJS/manage/integrityTable.js
Normal file
@@ -0,0 +1,412 @@
|
||||
var $area = $("#area");
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
var $timeType = $("#interval");
|
||||
var dataTable = null;
|
||||
var resultData = null;
|
||||
var areaInfo;
|
||||
var buttonname = '';
|
||||
var companyname;
|
||||
var tiggleValue = "";
|
||||
var allNetsData = [];
|
||||
var countryNetsData = [];
|
||||
$("#interval").val("月份");
|
||||
/**
|
||||
* 电压等级排序自定义比较start
|
||||
*/
|
||||
jQuery.fn.dataTableExt.oSort['number-fate-asc'] = function (s1, s2) {
|
||||
s1 = s1.replace('kV', '');
|
||||
s2 = s2.replace('kV', '');
|
||||
return Number(s1) - Number(s2);
|
||||
};
|
||||
|
||||
jQuery.fn.dataTableExt.oSort['number-fate-desc'] = function (s1, s2) {
|
||||
s1 = s1.replace('kV', '');
|
||||
s2 = s2.replace('kV', '');
|
||||
return Number(s2) - Number(s1);
|
||||
};
|
||||
/**
|
||||
* 电压等级排序自定义比较end
|
||||
*/
|
||||
$(function () {
|
||||
//初始化区域
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
areaInfo = data;
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
var sTemp = $("#_startTime").val();
|
||||
var eTemp = $("#_endTime").val();
|
||||
var aTemp = $("#_area").val();
|
||||
var iTemp = $("#_interval").val();
|
||||
sTemp = filterXSS(sTemp);
|
||||
eTemp = filterXSS(eTemp);
|
||||
aTemp = filterXSS(aTemp);
|
||||
iTemp = filterXSS(iTemp);
|
||||
if (sTemp === "" | sTemp === undefined) {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
} else {
|
||||
//填充区域、时间输入框
|
||||
$("#startTime").val(sTemp);
|
||||
$("#endTime").val(eTemp);
|
||||
$("#interval").val(iTemp);
|
||||
judgeInterval(iTemp);
|
||||
if (aTemp === "" | aTemp === undefined) {
|
||||
aTemp = $area.eq(0).attr("index");
|
||||
} else {
|
||||
$area.eq(0).val(getDeptsName(aTemp));
|
||||
$area.eq(0).attr("index", aTemp);
|
||||
}
|
||||
refresh(aTemp, sTemp, eTemp);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
var start = $startTime.eq(0).val();
|
||||
var end = $endTime.eq(0).val();
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data: {
|
||||
start: start,
|
||||
end: end
|
||||
},
|
||||
async: false,
|
||||
url: "/pqs9000/device/getMsgInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
buttonname = data.body.name;
|
||||
tiggleValue = data.body.name;
|
||||
}
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
companyname = data.body.name;
|
||||
}
|
||||
});
|
||||
|
||||
//开关初始化
|
||||
$(".wanzheng").bootstrapSwitch({
|
||||
onText: buttonname, // 设置ON文本
|
||||
offText: companyname, // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state === true) {
|
||||
tiggleValue = buttonname;
|
||||
initTable(allNetsData);
|
||||
} else {
|
||||
tiggleValue = companyname;
|
||||
initTable(countryNetsData);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#query").click(function () {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var devflag = $("#devflag").val();
|
||||
refresh(area, startTime, endTime,devflag);
|
||||
});
|
||||
|
||||
//获取表格数据
|
||||
function refresh(area, startTime, endTime,devflag) {
|
||||
console.log(devflag)
|
||||
var i;
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/area/getIntegrityData",
|
||||
dataType: "json",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
area: area,
|
||||
devflag:devflag
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message, {icon: 2, time: 2000})
|
||||
//没有数据
|
||||
allNetsData = null;
|
||||
countryNetsData = null;
|
||||
} else {
|
||||
allNetsData = data.body.allNets;
|
||||
countryNetsData = data.body.countryNets;
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//实例化表格
|
||||
function initTable(data) {
|
||||
var height = $(window).height() - 155;
|
||||
var length = Math.floor(height / 28);
|
||||
if (length < 1) {
|
||||
length = 1;
|
||||
}
|
||||
dataTable = $("#integritylist").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable = $('#integritylist').DataTable({
|
||||
order: [8, "desc"],
|
||||
columnDefs: [
|
||||
{
|
||||
orderable: false,
|
||||
targets: [0]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{width: "4%", data: null},
|
||||
{
|
||||
width: "8%", data: "powerCompany", render: function (data, type, full, meta) {
|
||||
var value = data;
|
||||
if (data.length > 10) {
|
||||
value = data.substring(0, 9) + "...";
|
||||
value = "<span title=" + data + ">" + value + "</span>";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "10%", data: "substation", render: function (data, type, full, meta) {
|
||||
var value = data;
|
||||
if (data.length > 10) {
|
||||
value = data.substring(0, 9) + "...";
|
||||
value = "<span title=" + data + ">" + value + "</span>";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "8%", data: "lineName", render: function (data, type, full, meta) {
|
||||
var value = data;
|
||||
if (data.length > 12) {
|
||||
value = data.substring(0, 11) + "...";
|
||||
value = "<span title=" + data + ">" + value + "</span>";
|
||||
}
|
||||
return value;
|
||||
}
|
||||
},
|
||||
{width: "8%", data: "deviceIp"},
|
||||
{
|
||||
width: "8%", data: "devFlag", render: function (data, type, full, meta) {
|
||||
var temp = Number(data);
|
||||
switch (temp) {
|
||||
case 0:
|
||||
return "投运";
|
||||
case 1:
|
||||
return "热备用";
|
||||
case 2:
|
||||
return "停运";
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "8%", data: "status", render: function (data, type, full, meta) {
|
||||
var temp = Number(data);
|
||||
switch (temp) {
|
||||
case 0:
|
||||
return "中断";
|
||||
case 1:
|
||||
return "正常";
|
||||
}
|
||||
}
|
||||
},
|
||||
{width: "8%", data: "updateTime"},
|
||||
{
|
||||
width: "8%", data: "integrity",
|
||||
render: function (data, type, full, meta) {
|
||||
var temp = Number(data);
|
||||
if (temp > 100) {
|
||||
return 100;
|
||||
} else if (temp < 0) {
|
||||
return 0;
|
||||
} else {
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
},
|
||||
{width: "8%", data: "device"},
|
||||
{width: "10%", data: "company"},
|
||||
{width: "5%", data: "voltage", type: "number-fate"},
|
||||
{
|
||||
width: "12%", data: "", render: function (data, type, full, meta) {
|
||||
let button;
|
||||
if (full.devType!=null && full.devType.indexOf("CLD") != -1) {
|
||||
button = "<div>" +
|
||||
"<button type='button' class='btn btn-primary' style='float: left;margin-left: 5px' onclick='socketSend(\"" + full.lineId + "\",\"" + full.devId + "\",\"" + full.substation + "\",\"" + full.lineName + "\")'>数据补招</button>" +
|
||||
"<button id='integrityDetail' type='button' class='btn themeBGColor' style='float: left;margin-left: 5px' onclick='showDetail(\"" + full.lineId + "\")'>详情</button>" +
|
||||
"</div>"
|
||||
} else {
|
||||
button = "<div>" +
|
||||
"<button type='button' class='btn themeBGDisableColor' disabled style='float: left;margin-left: 5px' href='javascript:void(0);'>数据补招</button>" +
|
||||
"<button id='integrityDetail' type='button' class='btn themeBGColor' style='float: left;margin-left: 5px' onclick='showDetail(\"" + full.lineId + "\")'>详情</button>" +
|
||||
"</div>";
|
||||
}
|
||||
return button;
|
||||
}
|
||||
},
|
||||
],
|
||||
destroy: true,
|
||||
data: data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
scrollY: height,
|
||||
scrollX: true,
|
||||
lengthMenu: [length],
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
fnDrawCallback: function (oTable) {
|
||||
$("#integritylist_info").addClass("fl");
|
||||
$("#integritylist_paginate").addClass("fr");
|
||||
$("#integritylist_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#integritylist").dataTable();
|
||||
$('#dataTable-btn').click(function (e) {
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
var name = $area.find("option:selected").text();
|
||||
new $.fn.dataTable.Buttons(dataTable, {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',
|
||||
title: name + '数据完整性',//导出csv名称
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11],
|
||||
format: {
|
||||
body: function (data, rID, cID) {
|
||||
if (cID === 0) {
|
||||
return rID + 1;
|
||||
} else if (cID === 1 | cID === 2 | cID === 3) {
|
||||
if (data.indexOf("title") > 0) {
|
||||
return data.substring(data.indexOf("=") + 1, data.indexOf(">"));
|
||||
} else {
|
||||
return data
|
||||
}
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
modifyCss(dataTable);
|
||||
dataTable.on('order.dt search.dt',
|
||||
function () {
|
||||
dataTable.column(0, {
|
||||
search: 'applied',
|
||||
order: 'applied'
|
||||
}).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
}
|
||||
|
||||
//事件补招
|
||||
function socketSend(lineId,devId,subName,lineName) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '数据补招',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['25%', '70%'],
|
||||
content: '/pqs9000/business/timerange?lineId='+lineId+"&devId="+devId+"&titleName="+subName+"_"+lineName,
|
||||
scrollbar: false
|
||||
});
|
||||
}
|
||||
|
||||
//查看完整性详情
|
||||
function showDetail(lineId) {
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
var timeType = $timeType.eq(0).val();
|
||||
if (timeType === '天' || timeType === '自定义'){
|
||||
layer.msg("暂不支持天和自定义的维度查看", {icon: 2, time: 2000})
|
||||
} else {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '数据完整性详情',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['100%', '100%'],
|
||||
content: '/pqs9000/business/integralityDetail?startTime=' + startTime + "&endTime=" + endTime + "&timeType=" + timeType + "&lineId=" + lineId,
|
||||
scrollbar: false
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "4px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
dataTable.buttons().container().after($("#fliteData")[0]);
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#integritylist").width();
|
||||
if (width > 100) {
|
||||
if (tiggleValue === buttonname) {
|
||||
initTable(allNetsData);
|
||||
} else {
|
||||
initTable(countryNetsData);
|
||||
}
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--end
|
||||
|
||||
|
||||
424
pqs9000/src/main/webapp/jspJS/manage/lineLedger.js
Normal file
424
pqs9000/src/main/webapp/jspJS/manage/lineLedger.js
Normal file
@@ -0,0 +1,424 @@
|
||||
var $area = $("#area");
|
||||
var loading;
|
||||
var resultData;
|
||||
var dataTable;
|
||||
var area = null;
|
||||
|
||||
$(function () {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
// areaInfo = data;
|
||||
//初始化页面内容
|
||||
var aTemp = $("#_area").val();
|
||||
aTemp = filterXSS(aTemp);
|
||||
if (aTemp === "" || aTemp === undefined) {
|
||||
aTemp = $area.eq(0).attr("index");
|
||||
} else {
|
||||
$area.eq(0).val(getDeptsName(aTemp));
|
||||
$area.eq(0).attr("index", aTemp);
|
||||
}
|
||||
area = aTemp;
|
||||
|
||||
|
||||
}
|
||||
})
|
||||
getMonitorType();
|
||||
initData(1)
|
||||
initValue("type");
|
||||
initValue("voltage");
|
||||
initValue("appear");
|
||||
setCSS();
|
||||
getSelect("电压等级")
|
||||
getSelect("干扰源类型")
|
||||
|
||||
})
|
||||
|
||||
$("#query").click(function () {
|
||||
initData(2)
|
||||
});
|
||||
|
||||
function getOptions(id) {
|
||||
var data = $('#' + id).selectpicker('val');
|
||||
var array = [];
|
||||
|
||||
if (data != null) {
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
array.push(data[i])
|
||||
}
|
||||
}
|
||||
|
||||
return array;
|
||||
}
|
||||
|
||||
|
||||
function initData(type) {
|
||||
let obj;
|
||||
if (type == 1) {
|
||||
obj = {
|
||||
status: null,
|
||||
areaList: null,
|
||||
voltage: null,
|
||||
loadType: null,
|
||||
appear: null,
|
||||
}
|
||||
} else {
|
||||
let scale = getOptions("voltage")
|
||||
let type = getOptions("type")
|
||||
let status = $("#status").val()
|
||||
let appear = $("#appear").val()
|
||||
area = $area.eq(0).attr("index");
|
||||
let dept = []
|
||||
dept.push(area)
|
||||
|
||||
scale.find(function (item) {
|
||||
if (item == -1) {
|
||||
scale = null;
|
||||
}
|
||||
})
|
||||
type.find(function (item) {
|
||||
if (item == -1) {
|
||||
type = null;
|
||||
}
|
||||
})
|
||||
obj = {
|
||||
status: status,
|
||||
areaList: dept,
|
||||
voltage: scale,
|
||||
loadType: type,
|
||||
appear: appear
|
||||
}
|
||||
}
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
contentType: 'application/json;charset=UTF-8',
|
||||
url: "/pqs9000/getLineLedger",
|
||||
dataType: "json",
|
||||
data: JSON.stringify(obj),
|
||||
beforeSend: function () {
|
||||
loading = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message, {icon: 2, time: 2000})
|
||||
resultData = null;
|
||||
} else {
|
||||
resultData = data.body;
|
||||
}
|
||||
initTable(resultData);
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(loading);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
//实例化表格
|
||||
function initTable(data) {
|
||||
var height = $(window).height() - 140;
|
||||
dataTable = $("#lineLedger").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable = $('#lineLedger').DataTable({
|
||||
order: [[1, 'asc'], [2, 'asc']],
|
||||
columnDefs: [
|
||||
{
|
||||
orderable: false,
|
||||
targets: [0]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{width: "0%",data:null},
|
||||
{width: "6%", data: "province"},
|
||||
{width: "7%", data: "gdName"},
|
||||
|
||||
{width: "3%", data: "scale"},
|
||||
{width: "4%", data: "lineName"},
|
||||
{width: "4%", data: "subName"},
|
||||
{width: "5%", data: "loadType"},
|
||||
{
|
||||
width: "1%", data: "objName", render: function (data) {
|
||||
return data == null ? '/' : data;
|
||||
}
|
||||
},
|
||||
{width: "3%", data: "powerSubstationName"},
|
||||
{width: "3%", data: "devflag"},
|
||||
{width: "3%", data: "devStatus"},
|
||||
{width: "3%", data: "updateTime"},
|
||||
{width: "3%", data: "ip"},
|
||||
{width: "3%", data: "time"},
|
||||
{width: "3%", data: "devType"},
|
||||
{width: "3%", data: "nodeName"},
|
||||
{width: "3%", data: "manufacturer"},
|
||||
{width: "3%", data: "powerId", render: function (data, type, full, meta) {
|
||||
switch (data) {
|
||||
case 0:
|
||||
return "电网侧";
|
||||
case 1:
|
||||
return "非电网侧";
|
||||
case 2:
|
||||
return "电网侧(新能源)";
|
||||
case 3:
|
||||
return "非电网侧(新能源)";
|
||||
case 4:
|
||||
return "上送国网";
|
||||
case 5:
|
||||
return "PCC";
|
||||
}
|
||||
}
|
||||
},
|
||||
{width: "3%", data: "dlCmp"},
|
||||
{width: "3%", data: "devCmp"},
|
||||
{width: "3%", data: "xyCmp"},
|
||||
{
|
||||
width: "7%", data: "status", render: function (data) {
|
||||
if (data == 1) {
|
||||
return "正常"
|
||||
} else {
|
||||
return "中断"
|
||||
}
|
||||
}
|
||||
},
|
||||
{width: "3%", data: "lineStatus"},
|
||||
{width: "3%", data: "lineNum"},
|
||||
{width: "3%", data: "devName"},
|
||||
{width: "3%", data: "devNo"},
|
||||
{width: "3%", data: "monitorId", render: function (data, type, full, meta) {
|
||||
if (data == null || data === ' '){
|
||||
return "/"
|
||||
}
|
||||
return data;
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "6%", data: "ptType", render: function (data, type, full, meta) {
|
||||
switch (data) {
|
||||
case 0:
|
||||
return "星型接法";
|
||||
case 1:
|
||||
return "三角型接法";
|
||||
case 2:
|
||||
return "开口三角型接法";
|
||||
default:
|
||||
return "错误"
|
||||
|
||||
}
|
||||
}
|
||||
},
|
||||
{width: "8%", data: "voltageDev"},
|
||||
{width: "7%", data: "uVoltageDev"},
|
||||
{width: "7%", data: "freqDev"},
|
||||
{width: "7%", data: "uBalance"},
|
||||
{width: "10%", data: "iNeg"},
|
||||
{width: "10%", data: "flicker"},
|
||||
{width: "10%", data: "aberrance"},
|
||||
{width: "10%", data: "uharm3"},
|
||||
{width: "10%", data: "uharm2"},
|
||||
{width: "10%", data: "iharm2"},
|
||||
{width: "10%", data: "iharm3"},
|
||||
{width: "10%", data: "iharm4"},
|
||||
{width: "10%", data: "iharm5"},
|
||||
{width: "10%", data: "iharm6"},
|
||||
{width: "10%", data: "iharm7"},
|
||||
{width: "10%", data: "iharm8"},
|
||||
{width: "10%", data: "iharm9"},
|
||||
{width: "10%", data: "iharm10"},
|
||||
{width: "10%", data: "iharm11"},
|
||||
{width: "10%", data: "iharm12"},
|
||||
{width: "10%", data: "iharm13"},
|
||||
{width: "10%", data: "iharm14"},
|
||||
{width: "10%", data: "iharm15"},
|
||||
{width: "10%", data: "iharm16"},
|
||||
{width: "10%", data: "iharm17"},
|
||||
{width: "10%", data: "iharm18"},
|
||||
{width: "10%", data: "iharm19"},
|
||||
{width: "10%", data: "iharm20"},
|
||||
{width: "10%", data: "iharm21"},
|
||||
{width: "10%", data: "iharm22"},
|
||||
{width: "10%", data: "iharm23"},
|
||||
{width: "10%", data: "iharm24"},
|
||||
{width: "10%", data: "iharm25"},
|
||||
{width: "10%", data: "inuharm2"},
|
||||
{width: "10%", data: "inuharmAll"},
|
||||
],
|
||||
autoWidth: true,
|
||||
destroy: true,
|
||||
data: data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
scrollY: height,
|
||||
scrollX: true,
|
||||
lengthMenu: [50],
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
createdRow: function ( row, data, index ) {
|
||||
if(data.status=="1"){
|
||||
$('td', row).eq(20).css('color','#00ff04')
|
||||
}else if(data.status=="0"){
|
||||
$('td', row).eq(20).css('color','#ED1C24')
|
||||
}
|
||||
|
||||
|
||||
},
|
||||
fnDrawCallback: function (oTable) {
|
||||
$("#lineLedger_info").addClass("fl");
|
||||
$("#lineLedger_paginate").addClass("fr");
|
||||
$("#lineLedger_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#lineLedger").dataTable();
|
||||
$('#dataTable-btn').click(function (e) {
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
new $.fn.dataTable.Buttons(dataTable, {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',
|
||||
title: '监测点台账信息',//导出csv名称
|
||||
exportOptions: {
|
||||
|
||||
format: {
|
||||
body: function (data, rID, cID) {
|
||||
if(cID===0){
|
||||
return rID+1;
|
||||
}else {
|
||||
return data;
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
|
||||
|
||||
modifyCss(dataTable);
|
||||
dataTable.on('order.dt search.dt',
|
||||
function() {
|
||||
dataTable.column(0, {
|
||||
search: 'applied',
|
||||
order: 'applied'
|
||||
}).nodes().each(function(cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "4px");
|
||||
// dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
dataTable.buttons().container().after($("#fliteData")[0]);
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
function initValue(id) {
|
||||
$("#" + id).selectpicker('val', '-1');
|
||||
}
|
||||
|
||||
$('#voltage').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("voltage").options[clickedIndex].value;
|
||||
|
||||
if ((value === '-1' && previousValue.length > 0 && previousValue[0] != '-1') || (value != '-1' && previousValue[0] === '-1')) { //清空并重新选中
|
||||
$('#voltage').selectpicker('deselectAll');
|
||||
$('#voltage').selectpicker('val', value);
|
||||
$('#voltage').selectpicker('refresh');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
$('#type').on('changed.bs.select', function (e, clickedIndex, isSelected, previousValue) {
|
||||
if (clickedIndex != null) {
|
||||
var value = document.getElementById("type").options[clickedIndex].value;
|
||||
|
||||
if ((value === '-1' && previousValue.length > 0 && previousValue[0] != '-1') || (value != '-1' && previousValue[0] === '-1')) { //清空并重新选中
|
||||
$('#type').selectpicker('deselectAll');
|
||||
$('#type').selectpicker('val', value);
|
||||
$('#type').selectpicker('refresh');
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
function setCSS() {
|
||||
//$('.bootstrap-select').find('button').eq(0).addClass('form-control');dropdown-toggle
|
||||
$('.dropdown-toggle').addClass('form-control');
|
||||
}
|
||||
|
||||
|
||||
function getSelect(dictypeName) {
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/pqs9000/device/getselect",
|
||||
dataType: "json",
|
||||
data: {dictypeName: dictypeName},
|
||||
success: function (data) {
|
||||
if (data.length != 0) {
|
||||
let html = '<option value="-1">全部</option>'
|
||||
for (let i = 0; i < data.length; i++) {
|
||||
let option = '<option value="' + data[i].dicIndex + '">' + data[i].dicName + '</option>'
|
||||
html += option;
|
||||
}
|
||||
if (dictypeName == '干扰源类型') {
|
||||
$('#type').empty();
|
||||
$('#type').append(html)
|
||||
$('#type').selectpicker('val', '-1');
|
||||
$('#type').selectpicker('refresh');
|
||||
} else if (dictypeName == '电压等级') {
|
||||
$('#voltage').empty();
|
||||
$('#voltage').append(html)
|
||||
$('#voltage').selectpicker('val', '-1');
|
||||
$('#voltage').selectpicker('refresh');
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function getMonitorType(){
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
data: {},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
areaName = data.body.name;
|
||||
var name = data.body.name + "上报";
|
||||
var name2 = "非" + data.body.name + "上报";
|
||||
loadColor = data.body.value;
|
||||
var option = $("<option value='0'>" + name + "</option>");
|
||||
var option2 = $("<option value='1'>" + name2 + "</option>");
|
||||
$('#appear').append(option);
|
||||
$('#appear').append(option2);
|
||||
}
|
||||
})
|
||||
}
|
||||
234
pqs9000/src/main/webapp/jspJS/manage/onlineRateTable.js
Normal file
234
pqs9000/src/main/webapp/jspJS/manage/onlineRateTable.js
Normal file
@@ -0,0 +1,234 @@
|
||||
var $area = $("#area");
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
var dataTable = null;
|
||||
var resultData = null;
|
||||
var areaInfo;
|
||||
$("#interval").val("月份");
|
||||
$(function () {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
areaInfo=data;
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
var sTemp = $("#_startTime").val();
|
||||
var eTemp = $("#_endTime").val();
|
||||
var aTemp = $("#_area").val();
|
||||
var iTemp = $("#_interval").val();
|
||||
sTemp=filterXSS(sTemp);
|
||||
eTemp=filterXSS(eTemp);
|
||||
aTemp=filterXSS(aTemp);
|
||||
iTemp=filterXSS(iTemp);
|
||||
if (sTemp === "" | sTemp === undefined) {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
} else {
|
||||
//填充区域、时间输入框
|
||||
$("#startTime").val(sTemp);
|
||||
$("#endTime").val(eTemp);
|
||||
$("#interval").val(iTemp);
|
||||
judgeInterval(iTemp);
|
||||
if (aTemp === "" || aTemp === undefined) {
|
||||
aTemp = $area.eq(0).attr("index");
|
||||
}else{
|
||||
$area.eq(0).val(getDeptsName(aTemp));
|
||||
$area.eq(0).attr("index",aTemp);
|
||||
}
|
||||
refresh(aTemp, sTemp, eTemp);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
//初始化区域
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: "json",
|
||||
success: function (info) {
|
||||
if (info != null) {
|
||||
for (var i = 0; i < info.length; i++) {
|
||||
$("#areaDepts").append(
|
||||
"<option value='" + info[i].dicIndex + "'>"
|
||||
+ info[i].city + "</option>");
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
})
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#query").click(function () {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
});
|
||||
|
||||
//获取表格数据
|
||||
function refresh(area, startTime, endTime) {
|
||||
var i;
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/area/getOnlineRateData",
|
||||
dataType: "json",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
area: area
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message, {icon: 2, time: 2000})
|
||||
//没有数据
|
||||
resultData = null;
|
||||
} else {
|
||||
resultData = data.body;
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//实例化表格
|
||||
function initTable(data) {
|
||||
var height = $(window).height() - 155;
|
||||
var length = Math.floor(height / 28);
|
||||
if (length < 1) {
|
||||
length = 1;
|
||||
}
|
||||
dataTable = $("#onlineRatelist").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable = $('#onlineRatelist').DataTable({
|
||||
order: [6, "desc"],
|
||||
columnDefs: [
|
||||
{
|
||||
orderable: false,
|
||||
targets: [0]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{width: "6%", data: null},
|
||||
{width: "15%", data: "powerCompany"},
|
||||
{width: "16%", data: "substation"},
|
||||
{width: "16%", data: "device"},
|
||||
{width: "16%", data: "deviceIp"},
|
||||
{width: "16%", data: "company"},
|
||||
{
|
||||
width: "15%", data: "onlineRate",
|
||||
render: function (data, type, full, meta) {
|
||||
var temp = Number(data);
|
||||
if (temp > 100) {
|
||||
return 100;
|
||||
} else if (temp < 0) {
|
||||
return 0;
|
||||
} else {
|
||||
return temp;
|
||||
}
|
||||
}
|
||||
},
|
||||
],
|
||||
destroy: true,
|
||||
data: data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
scrollY: height,
|
||||
// scrollX: false,
|
||||
lengthMenu: [length],
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
fnDrawCallback: function (oTable) {
|
||||
$("#onlineRatelist_info").addClass("fl");
|
||||
$("#onlineRatelist_paginate").addClass("fr");
|
||||
$("#onlineRatelist_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#onlineRatelist").dataTable();
|
||||
$('#dataTable-btn').click(function (e) {
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
var name = $area.find("option:selected").text();
|
||||
new $.fn.dataTable.Buttons(dataTable, {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',
|
||||
title: name + '在线率',//导出csv名称
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4, 5, 6],
|
||||
format: {
|
||||
body: function (data, rID, cID) {
|
||||
if (cID === 0) {
|
||||
return rID + 1;
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
modifyCss(dataTable);
|
||||
dataTable.on('order.dt search.dt',
|
||||
function () {
|
||||
dataTable.column(0, {
|
||||
search: 'applied',
|
||||
order: 'applied'
|
||||
}).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "4px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
dataTable.buttons().container().after($("#fliteData")[0]);
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#onlineRatelist").width();
|
||||
if (width > 100) {
|
||||
initTable(resultData);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--end
|
||||
433
pqs9000/src/main/webapp/jspJS/manage/runtime.js
Normal file
433
pqs9000/src/main/webapp/jspJS/manage/runtime.js
Normal file
@@ -0,0 +1,433 @@
|
||||
/**
|
||||
* 终端运行管理
|
||||
*/
|
||||
var dataTable = null;
|
||||
var resultData = null;
|
||||
var area = null;
|
||||
var devTypeBefore = "";//记录之前的状态
|
||||
var devTypeNow = "";//记录更改后的状态
|
||||
$(document).ready(function () {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
areaInfo = data;
|
||||
//初始化页面内容
|
||||
var aTemp = $("#_area").val();
|
||||
aTemp = filterXSS(aTemp);
|
||||
if (aTemp === "" || aTemp === undefined) {
|
||||
aTemp = $area.eq(0).attr("index");
|
||||
} else {
|
||||
$area.eq(0).val(getDeptsName(aTemp));
|
||||
$area.eq(0).attr("index", aTemp);
|
||||
}
|
||||
area = aTemp;
|
||||
load();
|
||||
}
|
||||
})
|
||||
getGdnameG();
|
||||
//load();
|
||||
});
|
||||
$("#query").click(function () {
|
||||
area = $area.eq(0).attr("index");
|
||||
load();
|
||||
});
|
||||
|
||||
|
||||
function getGdnameG() {
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: "/pqs9000/device/getGdname",
|
||||
data: '',
|
||||
success: function (data) {
|
||||
if (data.body != null) {
|
||||
for (var i = 0; i < data.body.length; i++) {
|
||||
var option = $("<option style='text-align: center;' value='"
|
||||
+ data.body[i].gdNa + "'>"
|
||||
+ data.body[i].gdNa + "</option>");
|
||||
$("#gdIndex").append(option);
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: "/pqs9000/device/getManufacturers",
|
||||
data: '',
|
||||
success: function (data) {
|
||||
if (data.body != null) {
|
||||
for (var i = 0; i < data.body.length; i++) {
|
||||
var option = $("<option style='text-align: center;' value='"
|
||||
+ data.body[i].manufacturer + "'>"
|
||||
+ data.body[i].manufacturer + "</option>");
|
||||
$("#manufacturer").append(option);
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function load() {
|
||||
var status = $("#status option:selected").val();
|
||||
var devflag = $("#devflag option:selected").val();
|
||||
var gdIndex = $("#gdIndex option:selected").val();
|
||||
var manufacturer = $("#manufacturer option:selected").val();
|
||||
var i;
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: "/pqs9000/device/getDeviceDetail",
|
||||
data: {
|
||||
area: area,
|
||||
status: status,
|
||||
devflag: devflag,
|
||||
gdName: gdIndex,
|
||||
manufacturer: manufacturer
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
error: function (data) {
|
||||
layer.msg("暂无数据", {
|
||||
icon: 5,
|
||||
time: 3000
|
||||
});
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
},
|
||||
success: function (data) {
|
||||
if (data == "") {
|
||||
resultData = null;
|
||||
//没有数据
|
||||
initTable(null);
|
||||
} else {
|
||||
var info = $.parseJSON(data);
|
||||
if (info.code == 500) {
|
||||
resultData = null;
|
||||
//没有数据
|
||||
initTable(null);
|
||||
} else {
|
||||
resultData = info;
|
||||
initTable(info);
|
||||
}
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('#addDev').click(function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '终端管理',
|
||||
maxmin: false,
|
||||
shadeClose: true, //点击遮罩关闭层
|
||||
area: ['100%', '100%'],
|
||||
content: 'addDev',
|
||||
scrollbar: false
|
||||
});
|
||||
});
|
||||
|
||||
$('#importExl').click(function () {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '批量导入',
|
||||
shadeClose: true,
|
||||
shade: 0.3,
|
||||
area: ['380px', '200px'],
|
||||
maxmin: false,
|
||||
content: 'importdev',
|
||||
scrollbar: false,
|
||||
end: function () {
|
||||
|
||||
}
|
||||
});
|
||||
});
|
||||
|
||||
function updateDevflag(nameTest) {
|
||||
var username = $("#username").val();
|
||||
confirmIndentity(username, function () {
|
||||
var str =
|
||||
"<div>" +
|
||||
"<input type='radio' name='time' id='time' value='0'>投运" +
|
||||
"<input type='radio' name='time' id='time' style='margin-left:25%' value='1'>热备用" +
|
||||
"<input type='radio' name='time' id='time' style='margin-left:25%' value='2'>停运" +
|
||||
"<br/>" +
|
||||
"更改原因:<input type='text' class='form-control' style='width: 80%;display: inline' name='terminalDescribe' id='terminalDescribe'>" +
|
||||
"</div>"
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: "/pqs9000/device/getDevflag",
|
||||
data: {
|
||||
name: nameTest
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.devFlag == 0) {
|
||||
$("input[name='time'][value='0']").attr("checked", true);
|
||||
devTypeBefore = "投运";
|
||||
} else if (data.devFlag == 1) {
|
||||
$("input[name='time'][value='1']").attr("checked", true);
|
||||
devTypeBefore = "热备用";
|
||||
} else {
|
||||
$("input[name='time'][value='2']").attr("checked", true);
|
||||
devTypeBefore = "停运";
|
||||
}
|
||||
}
|
||||
});
|
||||
layer.open({
|
||||
title: '修改终端运行状态',
|
||||
content: str,
|
||||
resize: false,
|
||||
shadeClose: true,
|
||||
scrollbar: false,
|
||||
area: "350px",
|
||||
closeBtn: 0,
|
||||
btn: ['确定', '取消'],
|
||||
yes: function (index) {
|
||||
var devflag = $('input:radio:checked').val();
|
||||
if (devflag == 0) {
|
||||
devTypeNow = "投运";
|
||||
} else if (devflag == 1) {
|
||||
devTypeNow = "热备用";
|
||||
} else {
|
||||
devTypeNow = "停运";
|
||||
}
|
||||
var terminalDescribe = $("#terminalDescribe").val();
|
||||
var str = terminalDescribe.replace(/(^\s*)|(\s*$)/g, '');//去除空格;
|
||||
if (str == '' || str == undefined || str == null) {
|
||||
layer.tips('请填写更改终端状态原因', '#terminalDescribe',
|
||||
{
|
||||
tips: [2, 'red'],
|
||||
time: 2000
|
||||
});
|
||||
$("#terminalDescribe").val("");
|
||||
} else {
|
||||
var terminalDescribeReason="由"+devTypeBefore+"状态更改到"+devTypeNow+"状态,原因是"+terminalDescribe;
|
||||
$.ajax({
|
||||
method: "post",
|
||||
url: "/pqs9000/device/updateDevice",
|
||||
data: {
|
||||
name: nameTest,
|
||||
devflag: devflag,
|
||||
terminalDescribe:terminalDescribeReason
|
||||
},
|
||||
success: function (data) {
|
||||
if (data == 200) {
|
||||
layer.msg("修改终端运行状态成功", {
|
||||
icon: 6,
|
||||
time: 1000
|
||||
}, function () {
|
||||
load();
|
||||
layer.close(index);
|
||||
});
|
||||
} else if (data == 500) {
|
||||
layer.msg("密码验证失败!", {
|
||||
icon: 5,
|
||||
time: 1000
|
||||
}, function () {
|
||||
layer.close(index)
|
||||
});
|
||||
} else {
|
||||
layer.msg("修改终端运行状态失败", {
|
||||
icon: 5,
|
||||
time: 1000
|
||||
}, function () {
|
||||
layer.close(index)
|
||||
});
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
|
||||
function initTable(data) {
|
||||
var height = $(window).height() - 160;
|
||||
var length = Math.floor(height / 28);
|
||||
if (length < 1) {
|
||||
length = 1;
|
||||
}
|
||||
// var heightTemp = screen.height;
|
||||
// var length;
|
||||
// if (heightTemp === 768) {
|
||||
// length = 10;
|
||||
// } else if (heightTemp === 1024) {
|
||||
// length = 20;
|
||||
// } else if (heightTemp === 960) {
|
||||
// length = 15;
|
||||
// } else if (heightTemp === 1050) {
|
||||
// length = 18;
|
||||
// } else {
|
||||
// length = 15;
|
||||
// }
|
||||
dataTable = $("#runtimeid").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable = $('#runtimeid').DataTable({
|
||||
order: [[10, 'asc']],
|
||||
columnDefs: [
|
||||
{
|
||||
orderable: false,
|
||||
targets: [0]
|
||||
}
|
||||
],
|
||||
// columns: [
|
||||
// {"width": "4%"},
|
||||
// {"width": "6%"},
|
||||
// {"width": "8%"},
|
||||
// {"width": "8%"},
|
||||
// {"width": "8%"},
|
||||
// {"width": "6%"},
|
||||
// {"width": "9%"},
|
||||
// {"width": "7%"},
|
||||
// {"width": "7%"},
|
||||
// {"width": "6%"},
|
||||
// {"width": "6%"},
|
||||
// {"width": "6%"},
|
||||
// {"width": "9%"},
|
||||
// {"width": "5%"},
|
||||
// {"width": "8%"}
|
||||
// ],
|
||||
autoWidth: false,
|
||||
serverSide: false,
|
||||
destroy: true,
|
||||
data: data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
scrollY: height,
|
||||
scrollX: true,
|
||||
pageLength: length,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
"createdRow": function (row, data, index) {
|
||||
if (data[9] == "停运") {
|
||||
$('td', row).eq(9).css('color', '#696969')
|
||||
|
||||
} else if (data[9] == "热备用") {
|
||||
$('td', row).eq(9).css('color', '#FFD700')
|
||||
} else if (data[9] == "投运") {
|
||||
$('td', row).eq(9).css('color', '#2E8B57')
|
||||
}
|
||||
if (data[10] == "中断") {
|
||||
$('td', row).eq(10).css('color', '#A52a2a')
|
||||
} else if (data[10] == "正常") {
|
||||
$('td', row).eq(10).css('color', '#2E8B57')
|
||||
}
|
||||
if (data[12] == "优") {
|
||||
$('td', row).eq(12).css('color', '#2E8B57')
|
||||
} else if (data[12] == "良") {
|
||||
$('td', row).eq(12).css('color', '#DAA520')
|
||||
} else if (data[12] == "差") {
|
||||
$('td', row).eq(12).css('color', '#A52a2a')
|
||||
}
|
||||
if (data[2].length > 8) {
|
||||
var realValue = data[2];
|
||||
var s = data[2].substr(0, 8) + '...'
|
||||
$('td', row).eq(2).prevObject[2].innerHTML = "<span title='" + realValue + "'>" + s + "</span>";
|
||||
}
|
||||
if (data[1].length > 6) {
|
||||
var realValue = data[1];
|
||||
var s = data[1].substr(0, 6) + '...'
|
||||
$('td', row).eq(1).prevObject[1].innerHTML = "<span title='" + realValue + "'>" + s + "</span>";
|
||||
}
|
||||
if (data[3].length > 12) {
|
||||
var realValue = data[3];
|
||||
var s = data[3].substr(0, 12) + '...'
|
||||
$('td', row).eq(3).prevObject[3].innerHTML = "<span title='" + realValue + "'>" + s + "</span>";
|
||||
}
|
||||
if (data[6].length > 14) {
|
||||
var realValue = data[6];
|
||||
var s = data[6].substr(0, 14) + '...'
|
||||
$('td', row).eq(6).prevObject[6].innerHTML = "<span title='" + realValue + "'>" + s + "</span>";
|
||||
}
|
||||
if (data[7].length > 14) {
|
||||
var realValue = data[7];
|
||||
var s = data[7].substr(0, 14) + '...'
|
||||
$('td', row).eq(7).prevObject[7].innerHTML = "<span title='" + realValue + "'>" + s + "</span>";
|
||||
}
|
||||
},
|
||||
fnDrawCallback: function (oTable) {
|
||||
$("#runtimeid_info").addClass("fl");
|
||||
$("#runtimeid_paginate").addClass("fr");
|
||||
$("#runtimeid_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#runtimeid").dataTable();
|
||||
$('#dataTable-btn').click(function (e) {
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
dataTable.on('order.dt search.dt',
|
||||
function () {
|
||||
dataTable.column(0, {
|
||||
search: 'applied',
|
||||
order: 'applied'
|
||||
}).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
new $.fn.dataTable.Buttons(dataTable, {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',//导出格式
|
||||
title: '终端台账列表',//导出csv名称
|
||||
exportOptions: {
|
||||
columns: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12],//导出需要的列
|
||||
format: {
|
||||
body: function (data) {//对导出内容的筛选 data 表格内容 rid 行索引 cid 列索引
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
modifyCss(dataTable);
|
||||
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "4px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
dataTable.buttons().container().after($("#fliteData")[0]);
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#runtimeid").width();
|
||||
if (width > 100) {
|
||||
initTable(resultData);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--end
|
||||
324
pqs9000/src/main/webapp/jspJS/manage/sbtj.js
Normal file
324
pqs9000/src/main/webapp/jspJS/manage/sbtj.js
Normal file
@@ -0,0 +1,324 @@
|
||||
/**
|
||||
* Created by njcn on 2017/5/19.
|
||||
*/
|
||||
$(document).ready(function() {
|
||||
initSbtj();
|
||||
});
|
||||
|
||||
var modelImage;
|
||||
var factoryImage;
|
||||
var voltageImage;
|
||||
|
||||
function initSbtj(){
|
||||
var i;
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "/pqs9000/device/getSbtj",
|
||||
data:{},
|
||||
dataType:"json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success : function(data) {
|
||||
var model = data.model;
|
||||
var area = data.area;
|
||||
var factory = data.factory;
|
||||
|
||||
drawModel(model);
|
||||
drawArea(area);
|
||||
drawFactory(factory);
|
||||
|
||||
if(model.length > 3){
|
||||
var mhigh = 130;
|
||||
}else{
|
||||
var mhigh = true;
|
||||
}
|
||||
|
||||
if(area.length > 3){
|
||||
var ahigh = 130;
|
||||
}else{
|
||||
var ahigh = true;
|
||||
}
|
||||
|
||||
if(factory.length > 3){
|
||||
var fhigh = 130;
|
||||
}else{
|
||||
var fhigh = true;
|
||||
}
|
||||
|
||||
var table=$('#xhtj').DataTable({
|
||||
scrollX : false,
|
||||
lengthChange : false,
|
||||
destroy : true,
|
||||
searching: false,
|
||||
language : {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
scrollY: mhigh,
|
||||
paging:false,
|
||||
info:false,
|
||||
data : model
|
||||
})
|
||||
|
||||
var table=$('#cjtj').DataTable({
|
||||
scrollX : false,
|
||||
lengthChange : false,
|
||||
destroy : true,
|
||||
searching: false,
|
||||
language : {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
scrollY: fhigh,
|
||||
paging:false,
|
||||
info:false,
|
||||
data : factory
|
||||
})
|
||||
|
||||
var table=$('#qytj').DataTable({
|
||||
scrollX : false,
|
||||
lengthChange : false,
|
||||
destroy : true,
|
||||
searching: false,
|
||||
language : {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
scrollY: ahigh,
|
||||
paging:false,
|
||||
info:false,
|
||||
data : area
|
||||
})
|
||||
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
|
||||
});
|
||||
}
|
||||
|
||||
function drawModel(info){
|
||||
var reaArray = new Array();
|
||||
var valueArray = new Array();
|
||||
for (var i = 0; i < info.length; i++) {
|
||||
reaArray.push(info[i][0]);
|
||||
var causeValue=new Object();
|
||||
causeValue.name=info[i][0];
|
||||
causeValue.value=info[i][1];
|
||||
valueArray.push(causeValue)
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title : {
|
||||
text : '按终端型号统计',
|
||||
x : 'center'
|
||||
},
|
||||
animation:false,
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
legend: {
|
||||
show:false,
|
||||
data: reaArray
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '终端型号',
|
||||
type: 'pie',
|
||||
radius : '70%',
|
||||
center: ['50%', '53%'],
|
||||
label: {
|
||||
normal: {
|
||||
show: false
|
||||
},
|
||||
emphasis: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
lableLine: {
|
||||
normal: {
|
||||
show: false
|
||||
},
|
||||
emphasis: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
data:valueArray,
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
};
|
||||
|
||||
echarts.dispose(document.getElementById('model'));
|
||||
var model = echarts.init(document.getElementById('model'));
|
||||
model.setOption(option);
|
||||
modelImage= model.getDataURL();
|
||||
}
|
||||
|
||||
function drawFactory(info){
|
||||
var reaArray = new Array();
|
||||
var valueArray = new Array();
|
||||
for (var i = 0; i < info.length; i++) {
|
||||
reaArray.push(info[i][0]);
|
||||
var causeValue=new Object();
|
||||
causeValue.name=info[i][0];
|
||||
causeValue.value=info[i][1];
|
||||
valueArray.push(causeValue)
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title : {
|
||||
text : '按终端厂家统计',
|
||||
x : 'center'
|
||||
},
|
||||
animation:false,
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
legend: {
|
||||
show:false,
|
||||
data: reaArray
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '终端厂家',
|
||||
type: 'pie',
|
||||
radius : '70%',
|
||||
center: ['50%', '53%'],
|
||||
label: {
|
||||
normal: {
|
||||
show: false
|
||||
},
|
||||
emphasis: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
lableLine: {
|
||||
normal: {
|
||||
show: false
|
||||
},
|
||||
emphasis: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
data:valueArray,
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
};
|
||||
|
||||
echarts.dispose(document.getElementById('factory'));
|
||||
var factory = echarts.init(document.getElementById('factory'));
|
||||
|
||||
factory.setOption(option);
|
||||
factoryImage= factory.getDataURL();
|
||||
}
|
||||
|
||||
function drawArea(info){
|
||||
var reaArray = new Array();
|
||||
var valueArray = new Array();
|
||||
for (var i = 0; i < info.length; i++) {
|
||||
reaArray.push(info[i][0]);
|
||||
var causeValue=new Object();
|
||||
causeValue.name=info[i][0];
|
||||
causeValue.value=info[i][1];
|
||||
valueArray.push(causeValue)
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title : {
|
||||
text : '按区域统计',
|
||||
x : 'center'
|
||||
},
|
||||
animation:false,
|
||||
tooltip : {
|
||||
trigger: 'item',
|
||||
formatter: "{a} <br/>{b} : {c} ({d}%)"
|
||||
},
|
||||
legend: {
|
||||
show:false,
|
||||
data: reaArray
|
||||
},
|
||||
series : [
|
||||
{
|
||||
name: '区域',
|
||||
type: 'pie',
|
||||
radius : '70%',
|
||||
center: ['50%', '53%'],
|
||||
label: {
|
||||
normal: {
|
||||
show: false
|
||||
},
|
||||
emphasis: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
lableLine: {
|
||||
normal: {
|
||||
show: false
|
||||
},
|
||||
emphasis: {
|
||||
show: false
|
||||
}
|
||||
},
|
||||
data:valueArray,
|
||||
itemStyle: {
|
||||
emphasis: {
|
||||
shadowBlur: 10,
|
||||
shadowOffsetX: 0,
|
||||
shadowColor: 'rgba(0, 0, 0, 0.5)'
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
|
||||
};
|
||||
|
||||
echarts.dispose(document.getElementById('area'));
|
||||
var area = echarts.init(document.getElementById('area'));
|
||||
area.setOption(option);
|
||||
voltageImage= area.getDataURL();
|
||||
}
|
||||
|
||||
$('#saveImage').on(
|
||||
'click',
|
||||
function(event) {
|
||||
// 取消掉默认的事件
|
||||
event.preventDefault();
|
||||
// editor 要截取的内容区域的id
|
||||
|
||||
var selectId = '#picture';
|
||||
var picName = '终端统计.png';
|
||||
|
||||
html2canvas(document.querySelector(selectId), {
|
||||
// 是否允许跨域(默认是false)
|
||||
allowTaint : true,
|
||||
// 是否在渲染前测试图片(默认是true)
|
||||
taintTest : false,
|
||||
onrendered : function(canvas) {
|
||||
canvas.id = "mycanvas";
|
||||
// 生成base64图片数据
|
||||
var dataUrl = canvas.toDataURL();
|
||||
// 下载到本地
|
||||
var triggerDownload = $("<a>").attr("href",
|
||||
dataUrl).attr("download", picName)
|
||||
.appendTo("body");
|
||||
triggerDownload[0].click();
|
||||
triggerDownload.remove();
|
||||
}
|
||||
});
|
||||
});
|
||||
172
pqs9000/src/main/webapp/jspJS/manage/sourceManage.js
Normal file
172
pqs9000/src/main/webapp/jspJS/manage/sourceManage.js
Normal file
@@ -0,0 +1,172 @@
|
||||
/**
|
||||
* 下载资源
|
||||
*/
|
||||
var allData,getSubData,getReportData;
|
||||
$(document).ready(function() {
|
||||
$.ajax({
|
||||
method: "post",
|
||||
async: false,
|
||||
url: "/pqs9000/manage/getBasemang",
|
||||
data: "",
|
||||
success: function (data) {
|
||||
if(data.code===500){
|
||||
allData=null;
|
||||
}else{
|
||||
allData=data.body;
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
$.ajax({
|
||||
method: "post",
|
||||
async: false,
|
||||
url: "/pqs9000/manage/getReport",
|
||||
data: "",
|
||||
success: function (data) {
|
||||
if(data.code===500){
|
||||
getReportData=null;
|
||||
}else{
|
||||
getReportData=data.body;
|
||||
}
|
||||
|
||||
}
|
||||
})
|
||||
$.ajax({
|
||||
method: "post",
|
||||
async: false,
|
||||
url: "/pqs9000/manage/getSub",
|
||||
data: "",
|
||||
success: function (data) {
|
||||
if(data.code===500){
|
||||
getSubData=null;
|
||||
}else{
|
||||
getSubData=data.body;
|
||||
}
|
||||
}
|
||||
})
|
||||
startQuery();
|
||||
});
|
||||
//基本资源
|
||||
function getBaseMang(baseList){
|
||||
if(baseList==null){
|
||||
baseList=[];
|
||||
}
|
||||
$("#areaTable").DataTable({
|
||||
data: baseList,
|
||||
autoWidth:false,
|
||||
order:[1,"desc"],
|
||||
columnDefs : [ {
|
||||
orderable : false,
|
||||
targets : [0]
|
||||
} ,
|
||||
{ "width": "33%", "targets": 0 },
|
||||
{ "width": "33%", "targets": 1 },
|
||||
{ "width": "33%", "targets": 2 }
|
||||
],
|
||||
paging:true,
|
||||
lengthChange: false,
|
||||
searching:false,
|
||||
destroy : true,
|
||||
pageLength:10,
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json',
|
||||
}
|
||||
})
|
||||
}
|
||||
//报告发布
|
||||
function getReport(reportList) {
|
||||
if(reportList==null){
|
||||
reportList=[];
|
||||
}
|
||||
|
||||
$("#subTable").DataTable({
|
||||
data: reportList,
|
||||
autoWidth:false,
|
||||
columnDefs : [
|
||||
{ "width": "33%", "targets": 0 },
|
||||
{ "width": "33%", "targets": 1 },
|
||||
{ "width": "33%", "targets": 2 }
|
||||
],
|
||||
order:[1,"desc"],
|
||||
paging:true,
|
||||
lengthChange: false,
|
||||
searching:false,
|
||||
destroy : true,
|
||||
pageLength:10,
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json',
|
||||
}
|
||||
})
|
||||
}
|
||||
//辅助资源
|
||||
function getSub(subList) {
|
||||
if(subList==null){
|
||||
subList=[];
|
||||
}
|
||||
$("#monitorTable").DataTable({
|
||||
data: subList,
|
||||
autoWidth:false,
|
||||
columnDefs : [
|
||||
{ "width": "33%", "targets": 0 },
|
||||
{ "width": "33%", "targets": 1 },
|
||||
{ "width": "33%", "targets": 2 }
|
||||
],
|
||||
order:[1,"desc"],
|
||||
paging:true,
|
||||
lengthChange: false,
|
||||
searching:false,
|
||||
destroy : true,
|
||||
pageLength:10,
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json',
|
||||
}
|
||||
})
|
||||
}
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#areaTable").width();
|
||||
if (width > 100) {
|
||||
getBaseMang(allData);
|
||||
getReport(getReportData);
|
||||
getSub(getSubData);
|
||||
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
//特殊处理,表头紧缩问题--end
|
||||
function sourceManageByIndex(index){
|
||||
var res_Index=index;
|
||||
$.ajax({
|
||||
type:"POST",
|
||||
url:"/pqs9000/user/foundChrome",
|
||||
data:{
|
||||
res_Index:res_Index
|
||||
},
|
||||
success : function(data) {
|
||||
if(data==null){
|
||||
}
|
||||
//没有权限的请求
|
||||
if (data == 300) {
|
||||
location.href = '/pqs9000/auth/unauthorized';
|
||||
//没有登陆的请求
|
||||
} else if (data == 301) {
|
||||
location.href = '/pqs9000';
|
||||
} else {
|
||||
if(data.code==500){
|
||||
layer.msg(data.message, {icon: 5});
|
||||
}else{
|
||||
self.location.href="/pqs9000/user/downloadChrome?res_Index="+res_Index;
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
315
pqs9000/src/main/webapp/jspJS/manage/steadyTable.js
Normal file
315
pqs9000/src/main/webapp/jspJS/manage/steadyTable.js
Normal file
@@ -0,0 +1,315 @@
|
||||
|
||||
var $area = $("#area");
|
||||
var $startTime = $("#startTime");
|
||||
var $endTime = $("#endTime");
|
||||
var dataTable = null;
|
||||
var resultData = null;
|
||||
var areaInfo;
|
||||
$("#interval").val("月份");
|
||||
$(function () {
|
||||
//初始化区域
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/user/getAreasInfo",
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
areaInfo=data;
|
||||
$("#area").val(data[0].name);
|
||||
$("#area").attr("index", data[0].id);
|
||||
areaTree = $.fn.zTree.init($("#areaTree"), settingAreaTree, data);
|
||||
//初始化页面内容
|
||||
var sTemp = $("#_startTime").val();
|
||||
var eTemp = $("#_endTime").val();
|
||||
var aTemp = $("#_area").val();
|
||||
var iTemp = $("#_interval").val();
|
||||
sTemp=filterXSS(sTemp);
|
||||
eTemp=filterXSS(eTemp);
|
||||
aTemp=filterXSS(aTemp);
|
||||
iTemp=filterXSS(iTemp);
|
||||
if (sTemp === "" || sTemp === undefined) {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
} else {
|
||||
//填充区域、时间输入框
|
||||
$("#startTime").val(sTemp);
|
||||
$("#endTime").val(eTemp);
|
||||
$("#interval").val(iTemp);
|
||||
judgeInterval(iTemp);
|
||||
if (aTemp === "" || aTemp === undefined) {
|
||||
aTemp = $area.eq(0).attr("index");
|
||||
}else{
|
||||
$area.eq(0).val(getDeptsName(aTemp));
|
||||
$area.eq(0).attr("index",aTemp);
|
||||
}
|
||||
refresh(aTemp, sTemp, eTemp);
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//点击确定,去后台请求参数
|
||||
$("#query").click(function () {
|
||||
var area = $area.eq(0).attr("index");
|
||||
var startTime = $startTime.eq(0).val();
|
||||
var endTime = $endTime.eq(0).val();
|
||||
refresh(area, startTime, endTime);
|
||||
});
|
||||
|
||||
//获取表格数据
|
||||
function refresh(area, startTime, endTime) {
|
||||
var i;
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/area/getSteadyData",
|
||||
dataType: "json",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime,
|
||||
area: area
|
||||
},
|
||||
beforeSend: function () {
|
||||
$("#focus").css("display","none");
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500) {
|
||||
layer.msg(data.message, {icon: 2, time: 2000})
|
||||
//没有数据
|
||||
resultData = null;
|
||||
} else {
|
||||
resultData = data.body.steadyTableList;
|
||||
var allCount=Number(data.body.allCount)
|
||||
var realCount=Number(data.body.realCount)
|
||||
if(allCount!=realCount){
|
||||
$("#focus").css("display","block");
|
||||
$("#allCount").text(allCount)
|
||||
$("#realCount").text(realCount)
|
||||
}
|
||||
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//实例化表格
|
||||
function initTable(data) {
|
||||
var area = $("#areaDepts").val();
|
||||
var height = $(window).height() - 155;
|
||||
var length = Math.floor(height / 28);
|
||||
if (length < 1) {
|
||||
length = 1;
|
||||
}
|
||||
dataTable = $("#steadylist").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable = $('#steadylist').DataTable({
|
||||
order: [],
|
||||
columnDefs: [
|
||||
{
|
||||
orderable: false,
|
||||
targets: [0]
|
||||
}
|
||||
],
|
||||
columns: [
|
||||
{width: "4%", data: null},
|
||||
{width: "6%", data: "powerCompany", render:function (data, type, full, meta) {
|
||||
var value=data;
|
||||
if(data.length>8){
|
||||
value=data.substring(0,7)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width: "6%", data: "substation", render:function (data, type, full, meta) {
|
||||
var value=data;
|
||||
if(data.length>8){
|
||||
value=data.substring(0,7)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
|
||||
{width: "6%", data: "lineName"
|
||||
, render:function (data, type, full, meta) {
|
||||
var value=data;
|
||||
if(data.length>10){
|
||||
value=data.substring(0,9)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{
|
||||
width: "6%", data: "frequency",
|
||||
render: function (data, type, full, meta) {
|
||||
return getValue(Number(data));
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "5%", data: "flicker",
|
||||
render: function (data, type, full, meta) {
|
||||
return getValue(Number(data));
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "7%", data: "uBalance",
|
||||
render: function (data, type, full, meta) {
|
||||
return getValue(Number(data));
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "7%", data: "harmVoltage",//谐波电压
|
||||
render: function (data, type, full, meta) {
|
||||
return getValue(Number(data));
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "6%", data: "voltageDeviation",
|
||||
render: function (data, type, full, meta) {
|
||||
return getValue(Number(data));
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
width: "6%", data: "harmElec",//谐波电流
|
||||
render: function (data, type, full, meta) {
|
||||
return getValue(Number(data));
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "6%", data: "iNeg",//负序电流
|
||||
render: function (data, type, full, meta) {
|
||||
return getValue(Number(data));
|
||||
}
|
||||
},
|
||||
{
|
||||
width: "8%", data: "inUharm",//间谐波电压含有率
|
||||
render: function (data, type, full, meta) {
|
||||
return getValue(Number(data));
|
||||
}
|
||||
},
|
||||
{width: "6%", data: "device"},
|
||||
{width: "5%", data: "deviceIp",
|
||||
render: function (data, type, full, meta) {
|
||||
var value=data;
|
||||
if(data.length>16){
|
||||
value=data.substring(0,15)+"...";
|
||||
value="<span title="+data+">"+value+"</span>";
|
||||
}
|
||||
return value;
|
||||
}},
|
||||
{width: "6%", data: "company"},
|
||||
{width: "5%", data: "voltage", type: "number-fate"}
|
||||
],
|
||||
destroy: true,
|
||||
data: data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
scrollY: height,
|
||||
scrollX: true,
|
||||
lengthMenu: [length],
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
fnDrawCallback: function (oTable) {
|
||||
$("#steadylist_info").addClass("fl");
|
||||
$("#steadylist_paginate").addClass("fr");
|
||||
$("#steadylist_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#steadylist").dataTable();
|
||||
$('#dataTable-btn').click(function (e) {
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
var name = $area.find("option:selected").text();
|
||||
new $.fn.dataTable.Buttons(dataTable, {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',
|
||||
title: name + '稳态指标',//导出csv名称
|
||||
exportOptions: {
|
||||
columns: [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15],
|
||||
format: {
|
||||
body: function (data, rID, cID) {
|
||||
if (cID === 0) {
|
||||
return rID + 1;
|
||||
}else if(cID===1||cID===2||cID===3||cID===13){
|
||||
if(data.indexOf("title")>0){
|
||||
return data.substring(data.indexOf("=")+1,data.indexOf(">"));
|
||||
}else{
|
||||
return data
|
||||
}
|
||||
}else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
modifyCss(dataTable);
|
||||
dataTable.on('order.dt search.dt',
|
||||
function () {
|
||||
dataTable.column(0, {
|
||||
search: 'applied',
|
||||
order: 'applied'
|
||||
}).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "4px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
dataTable.buttons().container().after($("#fliteData")[0]);
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#steadylist").width();
|
||||
if (width > 100) {
|
||||
initTable(resultData);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--end
|
||||
|
||||
function getValue(temp) {
|
||||
if (temp > 100) {
|
||||
return 100;
|
||||
} else if (temp < 0) {
|
||||
return 0;
|
||||
} else {
|
||||
return temp.toFixed(2);
|
||||
}
|
||||
}
|
||||
|
||||
154
pqs9000/src/main/webapp/jspJS/manage/terminalLogManage.js
Normal file
154
pqs9000/src/main/webapp/jspJS/manage/terminalLogManage.js
Normal file
@@ -0,0 +1,154 @@
|
||||
/**
|
||||
* 终端更改日志
|
||||
*/
|
||||
var dataTable = null;
|
||||
var resultData = null;
|
||||
$(document).ready(function () {
|
||||
load();
|
||||
});
|
||||
|
||||
function load() {
|
||||
var i;
|
||||
$.ajax({
|
||||
type: "post",
|
||||
url: "/pqs9000/device/getLogsDetail",
|
||||
data: {},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
error: function (data) {
|
||||
layer.msg("暂无数据", {
|
||||
icon: 5,
|
||||
time: 3000
|
||||
});
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
},
|
||||
success: function (data) {
|
||||
if (data == "") {
|
||||
resultData = null;
|
||||
//没有数据
|
||||
initTable(null);
|
||||
} else {
|
||||
var info = $.parseJSON(data);
|
||||
if (info.code == 500) {
|
||||
resultData = null;
|
||||
//没有数据
|
||||
initTable(null);
|
||||
} else {
|
||||
resultData = info;
|
||||
initTable(info);
|
||||
}
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
function initTable(data) {
|
||||
var height = $(window).height() - 160;
|
||||
var length = Math.floor(height / 28);
|
||||
if (length < 1) {
|
||||
length = 1;
|
||||
}
|
||||
dataTable = $("#terminallogid").DataTable();
|
||||
dataTable.clear().draw();
|
||||
dataTable = $('#terminallogid').DataTable({
|
||||
// order: [[10, 'asc']],
|
||||
columnDefs: [
|
||||
{
|
||||
orderable: false,
|
||||
targets: [0,2,3]
|
||||
}
|
||||
],
|
||||
autoWidth: false,
|
||||
serverSide: false,
|
||||
destroy: true,
|
||||
data: data,
|
||||
lengthChange: false,
|
||||
searching: true,
|
||||
dom: 'rtip',
|
||||
scrollY: height,
|
||||
scrollX: true,
|
||||
pageLength: length,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
fnDrawCallback: function (oTable) {
|
||||
$("#terminallogid_info").addClass("fl");
|
||||
$("#terminallogid_paginate").addClass("fr");
|
||||
$("#terminallogid_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var table = $("#terminallogid").dataTable();
|
||||
$('#dataTable-btn').click(function (e) {
|
||||
if ($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
table.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
dataTable.on('order.dt search.dt',
|
||||
function () {
|
||||
dataTable.column(0, {
|
||||
search: 'applied',
|
||||
order: 'applied'
|
||||
}).nodes().each(function (cell, i) {
|
||||
cell.innerHTML = i + 1;
|
||||
});
|
||||
}).draw();
|
||||
new $.fn.dataTable.Buttons(dataTable, {
|
||||
buttons: [
|
||||
{
|
||||
extend: 'csv',//导出格式
|
||||
title: '终端更改日志列表',//导出csv名称
|
||||
exportOptions: {
|
||||
columns: [1, 2, 3, 4],//导出需要的列
|
||||
format: {
|
||||
body: function (data) {//对导出内容的筛选 data 表格内容 rid 行索引 cid 列索引
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
]
|
||||
});
|
||||
modifyCss(dataTable);
|
||||
|
||||
}
|
||||
|
||||
function modifyCss(dataTable) {
|
||||
dataTable.buttons().container().css("display", "inline-block");
|
||||
dataTable.buttons().container().css("float", "right");
|
||||
dataTable.buttons().container().css("top", "4px");
|
||||
dataTable.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
dataTable.buttons().container().appendTo('.header');
|
||||
dataTable.buttons().container().after($("#fliteData")[0]);
|
||||
}
|
||||
|
||||
//搜索表中的数据
|
||||
function searchResult(value) {
|
||||
dataTable.search(value).draw();
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#terminallogid").width();
|
||||
if (width > 100) {
|
||||
initTable(resultData);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--end
|
||||
1579
pqs9000/src/main/webapp/jspJS/monitor/actualData.js
Normal file
1579
pqs9000/src/main/webapp/jspJS/monitor/actualData.js
Normal file
File diff suppressed because it is too large
Load Diff
0
pqs9000/src/main/webapp/jspJS/monitor/loadChart.js
Normal file
0
pqs9000/src/main/webapp/jspJS/monitor/loadChart.js
Normal file
69
pqs9000/src/main/webapp/jspJS/monitor/monitor.js
Normal file
69
pqs9000/src/main/webapp/jspJS/monitor/monitor.js
Normal file
@@ -0,0 +1,69 @@
|
||||
$(document).ready(function() {
|
||||
var picWidth = $(window).width() - 280;
|
||||
$("#middlediv").css("width", picWidth);
|
||||
$("#main_right").css("width", picWidth);
|
||||
|
||||
var picHeight = $(window).height() - 30;
|
||||
$("#main_right").css("height", picHeight);
|
||||
|
||||
var treeHeight = $(window).height() - 60;
|
||||
$("#tree").css("min-height", treeHeight);
|
||||
$("#tree").css("max-height", treeHeight);
|
||||
|
||||
document.getElementById("main_right").src = "zlpg";
|
||||
$("#middlesrc").val('zlpg');
|
||||
})
|
||||
|
||||
$('#sssj').click(function() {
|
||||
document.getElementById("main_right").src = "sssj";
|
||||
$("#middlesrc").val('sssj');
|
||||
})
|
||||
|
||||
$('#yxzt').click(function() {
|
||||
document.getElementById("main_right").src = "yxzt";
|
||||
$("#middlesrc").val('yxzt');
|
||||
})
|
||||
|
||||
$('#wtzb').click(function() {
|
||||
document.getElementById("main_right").src = "wtzb";
|
||||
$("#middlesrc").val('wtzb');
|
||||
})
|
||||
|
||||
$('#wtqs').click(function() {
|
||||
document.getElementById("main_right").src = "wtqs";
|
||||
$("#middlesrc").val('wtqs');
|
||||
})
|
||||
|
||||
$('#zlpg').click(function() {
|
||||
document.getElementById("main_right").src = "zlpg";
|
||||
$("#middlesrc").val('zlpg');
|
||||
})
|
||||
|
||||
function OnlineTree() {
|
||||
getNodeData();
|
||||
zTreeOnAsyncSuccess();
|
||||
}
|
||||
|
||||
function OfflineTree() {
|
||||
getOffData();
|
||||
zTreeOnAsyncSuccess();
|
||||
}
|
||||
|
||||
function showInfo() {
|
||||
var indexdd = document.getElementById("lineIndex").value;
|
||||
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '监测点详情',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['80%', '80%'],
|
||||
content: 'pointInfo',
|
||||
scrollbar: false,
|
||||
success: function (layero, index) {
|
||||
$(layero).find("iframe")[0].contentWindow.getPointData(indexdd);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
64
pqs9000/src/main/webapp/jspJS/monitor/offLinemonitor.js
Normal file
64
pqs9000/src/main/webapp/jspJS/monitor/offLinemonitor.js
Normal file
@@ -0,0 +1,64 @@
|
||||
$(document).ready(function() {
|
||||
var picWidth = $(window).width() - 240;
|
||||
$("#middlediv").css("width", picWidth);
|
||||
$("#main_right").css("width", picWidth);
|
||||
|
||||
var picHeight = $(window).height() - 30;
|
||||
$("#main_right").css("height", picHeight);
|
||||
|
||||
var treeHeight = $(window).height() - 65;
|
||||
$("#tree").css("min-height", treeHeight);
|
||||
$("#tree").css("max-height", treeHeight);
|
||||
document.getElementById("main_right").src = "offwtqs";
|
||||
$("#middlesrc").val('offwtqs');
|
||||
})
|
||||
|
||||
$('#offwtqs').click(function() {
|
||||
document.getElementById("main_right").src = "offwtqs";
|
||||
$("#middlesrc").val('offwtqs');
|
||||
})
|
||||
|
||||
$('#offxbpp').click(function() {
|
||||
document.getElementById("main_right").src = "offxbpp";
|
||||
$("#middlesrc").val('offxbpp');
|
||||
})
|
||||
|
||||
$('#offword').click(function() {
|
||||
document.getElementById("main_right").src = "offword";
|
||||
$("#middlesrc").val('offword');
|
||||
})
|
||||
|
||||
$("#pointInfo").click(function(){
|
||||
var lineIndex = $("#lineIndex").val();
|
||||
preInfo(lineIndex);
|
||||
})
|
||||
|
||||
function preInfo(indexdd) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '监测点详情',
|
||||
maxmin: false,
|
||||
shadeClose: true, // 点击遮罩关闭层
|
||||
area: ['65%', '60%'],
|
||||
content: 'pointInfo',
|
||||
scrollbar: false,
|
||||
success: function (layero, index) {
|
||||
$(layero).find("iframe")[0].contentWindow.getPointData(indexdd);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function offlineTree() {
|
||||
getData();
|
||||
zTreeOnAsyncSuccess();
|
||||
}
|
||||
|
||||
function yearTree() {
|
||||
getyearData();
|
||||
zTreeOnAsyncSuccess();
|
||||
}
|
||||
|
||||
function loadtypeTree() {
|
||||
gettypeData();
|
||||
zTreeOnAsyncSuccess();
|
||||
}
|
||||
2148
pqs9000/src/main/webapp/jspJS/monitor/offword.js
Normal file
2148
pqs9000/src/main/webapp/jspJS/monitor/offword.js
Normal file
File diff suppressed because it is too large
Load Diff
3899
pqs9000/src/main/webapp/jspJS/monitor/offwtqs.js
Normal file
3899
pqs9000/src/main/webapp/jspJS/monitor/offwtqs.js
Normal file
File diff suppressed because it is too large
Load Diff
961
pqs9000/src/main/webapp/jspJS/monitor/offxbpp.js
Normal file
961
pqs9000/src/main/webapp/jspJS/monitor/offxbpp.js
Normal file
@@ -0,0 +1,961 @@
|
||||
var lineIndex = window.parent.document.getElementById("lineIndex").value;
|
||||
var allstime = window.parent.document.getElementById("allstime").value;
|
||||
var alletime = window.parent.document.getElementById("alletime").value;
|
||||
var checkpieces = window.parent.document.getElementById("checkpieces").value;
|
||||
var checkpiecee = window.parent.document.getElementById("checkpiecee").value;
|
||||
var allstartTime,allendTime;
|
||||
var tltName;
|
||||
|
||||
$(document).ready(function (){
|
||||
if(lineIndex==null || lineIndex == ""){
|
||||
return;
|
||||
}
|
||||
$(".form-control[disabled], fieldset[disabled] .form-control").removeAttr("disabled");
|
||||
createTime();
|
||||
})
|
||||
|
||||
var dateSilderObj;
|
||||
//创建时间横轴提供用户选择时间节点
|
||||
//月份定义
|
||||
var Months = ["1月", "2月", "3月", "4月", "5月", "6月", "7月", "8月", "9月", "10月", "11月", "12月"];
|
||||
function createTime(){
|
||||
$.ajax({
|
||||
type:'post',
|
||||
async : false,
|
||||
url:'/pqs9000/device/getSETime',
|
||||
data:{
|
||||
lineIndex:lineIndex
|
||||
},
|
||||
success:function(data){
|
||||
if(data.code === 500){
|
||||
layer.msg(data.message, {
|
||||
icon : 2,
|
||||
time : 2000
|
||||
}, function() {
|
||||
$("#point").attr("style","display:true;");
|
||||
$("#main").attr("style","display:none;");
|
||||
});
|
||||
}else{
|
||||
$("#main").attr("style","display:true;");
|
||||
$(".container-fluid").attr("style","display:true;");
|
||||
$("#point").attr("style","display:none;");
|
||||
|
||||
var Sliderwidth = $("body").width()-436;
|
||||
$("#container0").css("width", Sliderwidth);
|
||||
|
||||
var times = data.body;
|
||||
var timeseries = [];
|
||||
if(times.length>1){
|
||||
for(var i = 0;i<times.length;i++){
|
||||
var desc;
|
||||
allstartTime = data.body[i].startTime;
|
||||
allendTime = data.body[i].endTime;
|
||||
desc = timestampToTime(allstartTime)+'-'+timestampToTime(allendTime);
|
||||
timeseries.push({name:desc,data:[allstartTime,allendTime],x:allstartTime});
|
||||
}
|
||||
|
||||
if(checkpieces != null && checkpieces != "" && checkpiecee != null && checkpiecee != ""){
|
||||
creatGroups(timeseries);
|
||||
if(allstime != null && allstime != "" && alletime != null && alletime != ""){
|
||||
creatSlider(parseInt(checkpieces),parseInt(checkpiecee),parseInt(allstime),parseInt(alletime));
|
||||
}else{
|
||||
creatSlider(parseInt(checkpieces),parseInt(checkpiecee),allstartTime,allendTime);
|
||||
}
|
||||
}else{
|
||||
creatGroups(timeseries);
|
||||
if(allstime != null && allstime != "" && alletime != null && alletime != ""){
|
||||
creatSlider(allstartTime,allendTime,parseInt(allstime),parseInt(alletime));
|
||||
}else{
|
||||
creatSlider(allstartTime,allendTime,allstartTime,allendTime);
|
||||
}
|
||||
}
|
||||
}else{
|
||||
$("#timegroup").attr("style","display:none;");
|
||||
allstartTime = data.body[0].startTime;
|
||||
allendTime = data.body[0].endTime;
|
||||
|
||||
if(checkpieces != null && checkpieces != "" && checkpiecee != null && checkpiecee != ""){
|
||||
if(allstime != null && allstime != "" && alletime != null && alletime != ""){
|
||||
creatSlider(parseInt(checkpieces),parseInt(checkpiecee),parseInt(allstime),parseInt(alletime));
|
||||
}else{
|
||||
creatSlider(parseInt(checkpieces),parseInt(checkpiecee),allstartTime,allendTime);
|
||||
}
|
||||
}else{
|
||||
if(allstime != null && allstime != "" && alletime != null && alletime != ""){
|
||||
creatSlider(allstartTime,allendTime,parseInt(allstime),parseInt(alletime));
|
||||
}else{
|
||||
creatSlider(allstartTime,allendTime,allstartTime,allendTime);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
tltName="谐波电压含有率";
|
||||
queryData(tltName);
|
||||
$("#ss").css("maxWidth",parent.picWidth);
|
||||
$("#point").css("width",parent.picWidth);
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
|
||||
function creatGroups(timeseries){
|
||||
Highcharts.chart('container0', {
|
||||
chart: {
|
||||
type: 'timeline',
|
||||
margin: [0, 0, 0, 0]
|
||||
},
|
||||
xAxis: {
|
||||
visible: false
|
||||
},
|
||||
yAxis: {
|
||||
visible: false
|
||||
},
|
||||
credits: {
|
||||
enabled:false
|
||||
},
|
||||
colors:[guowang],
|
||||
exporting: {
|
||||
enabled:false
|
||||
},
|
||||
title: {
|
||||
text:null
|
||||
},
|
||||
toolbox:{
|
||||
show:false
|
||||
},
|
||||
plotOptions: {
|
||||
series: {
|
||||
cursor: 'timeline',
|
||||
dataLabels: {
|
||||
enabled: false
|
||||
},
|
||||
events: {
|
||||
click: function(e) {//点击图上的值时会调用。this为series
|
||||
creatSlider(e.point.data[0],e.point.data[1]);
|
||||
window.parent.document.getElementById("checkpieces").value=e.point.data[0];
|
||||
window.parent.document.getElementById("checkpiecee").value=e.point.data[1];
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
data: timeseries
|
||||
}]
|
||||
});
|
||||
}
|
||||
|
||||
function creatSlider(allstartTime,allendTime,astime,aetime){
|
||||
$("#dateSlider").empty();
|
||||
var date = $("<div id='date' />").appendTo($("#dateSlider"));//渲染日期组件
|
||||
var step = 100/((allendTime-allstartTime)/(24*60*60*1000));
|
||||
dateSilderObj=date.dateRangeSlider({
|
||||
arrows:false,//是否显示左右箭头
|
||||
bounds: {min: new Date(allstartTime), max: new Date(allendTime)},//最大 最少日期
|
||||
defaultValues: {min: new Date(astime), max: new Date(aetime)}//默认选中区域
|
||||
,scales:[{
|
||||
first: function(value){return value; },
|
||||
end: function(value) {return value; },
|
||||
next: function(val){
|
||||
var next = new Date(val);
|
||||
return new Date(next.setMonth(next.getMonth() + 1));
|
||||
},
|
||||
label: function(val){
|
||||
return Months[val.getMonth()];
|
||||
},
|
||||
format: function(tickContainer, tickStart, tickEnd){
|
||||
tickContainer.addClass("myCustomClass");
|
||||
}
|
||||
}]
|
||||
});//日期控件
|
||||
//重新赋值(整个时间轴)
|
||||
dateSilderObj.dateRangeSlider("bounds", new Date(allstartTime), new Date(allendTime));
|
||||
laydate.render({
|
||||
elem: '#startTime'
|
||||
,min: timestampToTime(allstartTime)
|
||||
,max: timestampToTime(allendTime)
|
||||
,type: 'datetime'
|
||||
,done: function(value, date, endDate){
|
||||
var chas = new Date(value);
|
||||
var chae = new Date($('#endTime').val());
|
||||
dateSilderObj.dateRangeSlider("values", chas,chae);
|
||||
}
|
||||
});
|
||||
laydate.render({
|
||||
elem: '#endTime'
|
||||
,min: timestampToTime(allstartTime)
|
||||
,max: timestampToTime(allendTime)
|
||||
,type: 'datetime'
|
||||
,done: function(value, date, endDate){
|
||||
var chae = new Date(value);
|
||||
var chas = new Date($('#startTime').val());
|
||||
dateSilderObj.dateRangeSlider("values", chas,chae);
|
||||
}
|
||||
});
|
||||
|
||||
//重新赋值(选中区域)
|
||||
dateSilderObj.dateRangeSlider("values", new Date(astime), new Date(aetime));
|
||||
$("#startTime").val(timestampToTime(astime));
|
||||
$("#endTime").val(timestampToTime(aetime));
|
||||
var startdate = new Date(allstartTime);// 时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var enddate = new Date(allendTime);// 时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
|
||||
//拖动完毕后的事件
|
||||
dateSilderObj.bind("valuesChanged", function(e, data){
|
||||
var val=data.values;
|
||||
var min = val.min.getTime();
|
||||
var max = val.max.getTime();
|
||||
var stime=val.min.getFullYear()+"-"+change(val.min.getMonth()+1)+"-"+change(val.min.getDate())+' '+change(val.min.getHours())+':'+
|
||||
change(val.min.getMinutes())+':'+change(val.min.getSeconds());
|
||||
var etime=val.max.getFullYear()+"-"+change(val.max.getMonth()+1)+"-"+change(val.max.getDate())+' '+change(val.max.getHours())+':'+
|
||||
change(val.max.getMinutes())+':'+change(val.max.getSeconds());
|
||||
|
||||
$("#startTime").val(stime);
|
||||
$("#endTime").val(etime);
|
||||
window.parent.document.getElementById("allstime").value=min;
|
||||
window.parent.document.getElementById("alletime").value=max;
|
||||
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function timestampToTime(timestamp) {
|
||||
var date = new Date(timestamp);// 时间戳为10位需*1000,时间戳为13位的话不需乘1000
|
||||
var Y = date.getFullYear() + '-';
|
||||
var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date
|
||||
.getMonth() + 1)
|
||||
+ '-';
|
||||
var D = change(date.getDate());
|
||||
|
||||
var H = change(date.getHours());
|
||||
var m = change(date.getMinutes());
|
||||
var S = change(date.getSeconds());
|
||||
return Y + M + D + ' ' + H + ':' + m + ':' + S;
|
||||
}
|
||||
|
||||
function change(t) {
|
||||
if (t < 10) {
|
||||
return "0" + t;
|
||||
} else {
|
||||
return t;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取选中的监测点信息
|
||||
*/
|
||||
var num=1;
|
||||
var idea;
|
||||
var height=$(window).height()-180;
|
||||
$("#interval").val("周");
|
||||
var Uarry = $("#qualifiedTab li");//获取所有的li元素
|
||||
$("#qualifiedTab li").click(function () {//点击事件
|
||||
//测试直接获取值 var v=$(this).text(); alert(v);
|
||||
var count = $(this).index();//获取li的下标
|
||||
var Tresult = Uarry.eq(count).text();
|
||||
tltName = Tresult;
|
||||
queryData(tltName);
|
||||
})
|
||||
$("#query").click(function () {
|
||||
queryData(tltName);
|
||||
})
|
||||
//谐波电压含有率
|
||||
function getXbDy(startTime,endTime,lineId) {
|
||||
var type = '1';
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
async: false,
|
||||
url : '/pqs9000/device/getHarmonic',
|
||||
data : {
|
||||
startTime:startTime,
|
||||
endTime:endTime,
|
||||
lineId:lineId,
|
||||
type:type
|
||||
},
|
||||
beforeSend: function () {
|
||||
idea = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
error:function(data) {
|
||||
layer.msg("暂无历史谐波含有率", {
|
||||
icon : 5,
|
||||
time : 3000
|
||||
})
|
||||
// ***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(idea);
|
||||
},
|
||||
success : function(data) {
|
||||
var serName=[];
|
||||
var gb=[];
|
||||
var number=[];
|
||||
//没有权限的请求
|
||||
if(data==300){
|
||||
location.href='/pqs9000/auth/unauthorized';
|
||||
//没有登陆的请求
|
||||
}else if(data==301){
|
||||
location.href='/pqs9000';
|
||||
}else {
|
||||
if (data.code == 500) {
|
||||
parent.layer.msg("没有获取到该监测点的谐波电压含有率", {
|
||||
icon : 5,
|
||||
time : 3000
|
||||
});
|
||||
$('#example').text("")
|
||||
var oTable = $('#example').DataTable({
|
||||
info:false,
|
||||
paging:false,
|
||||
ScrollY:height*0.3,
|
||||
lengthChange: false,
|
||||
columns: [
|
||||
{"width": "122px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"}
|
||||
],
|
||||
bDestroy: true,
|
||||
ordering: false,
|
||||
autoWidth:true,
|
||||
scrollX:false,
|
||||
data: data.body,
|
||||
destroy: true,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
"sEmptyTable": "没有内容"
|
||||
},
|
||||
})
|
||||
for(i=1;i<50;i++){
|
||||
serName.push([parseFloat(null)]);
|
||||
gb.push([parseFloat(null)]);
|
||||
number.push([i+1])
|
||||
}
|
||||
$("#container").css("height",height*0.6);
|
||||
//画图
|
||||
var chart = Highcharts.chart('container', {
|
||||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
chart: {
|
||||
type: 'column'
|
||||
},
|
||||
title: {
|
||||
text: ''
|
||||
},
|
||||
xAxis: {
|
||||
categories: number
|
||||
},
|
||||
yAxis: [{
|
||||
min: 0,
|
||||
title: {
|
||||
text: '谐波电压含有率(%)'
|
||||
}
|
||||
}, {
|
||||
title: {
|
||||
text: '国标限值(%)'
|
||||
},
|
||||
opposite: true
|
||||
}],
|
||||
legend: {
|
||||
shadow: false
|
||||
},
|
||||
tooltip: {
|
||||
shared: true,
|
||||
formatter:function () {
|
||||
var x,y1,y2;
|
||||
if(this.points.length==1){
|
||||
x="谐波次数:"+this.points[0].x
|
||||
y2=this.points[0].series.name+":"+this.points[0].y+"%"
|
||||
return x+'<br>'+y2;
|
||||
}else{
|
||||
x="谐波次数:"+this.points[0].x
|
||||
y1="国标限值(%):"+this.points[0].y+"%"
|
||||
y2="谐波电压含有率(%):"+this.points[1].y+"%"
|
||||
return x+'<br>'+y1+'<br>'+y2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
plotOptions: {
|
||||
column: {
|
||||
grouping: false,
|
||||
shadow: false,
|
||||
borderWidth: 0
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
name: '谐波电压含有率(%)',
|
||||
color: yellow,
|
||||
data: gb,
|
||||
tooltip: {
|
||||
valueSuffix: '%'
|
||||
},
|
||||
pointPadding: 0.3,
|
||||
pointPlacement: -0.2
|
||||
}, {
|
||||
name: '国标限值(%)',
|
||||
color: green,
|
||||
data: serName,
|
||||
tooltip: {
|
||||
valueSuffix: '%'
|
||||
},
|
||||
pointPadding: 0.4, // 通过 pointPadding 和 pointPlacement 控制柱子位置
|
||||
pointPlacement: -0.2
|
||||
|
||||
}]
|
||||
});
|
||||
} else {
|
||||
var oTable = $('#example').DataTable({
|
||||
info:false,
|
||||
paging:false,
|
||||
scrollY:false,
|
||||
lengthChange: false,
|
||||
// columnDefs: [ { width: "122px", "targets": 0 } ],
|
||||
columns: [
|
||||
{"width": "122px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"}
|
||||
],
|
||||
ordering: false,
|
||||
// autoWidth:true,
|
||||
scrollX: true,
|
||||
data: data.body,
|
||||
destroy: true,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
"sEmptyTable": "没有内容"
|
||||
},
|
||||
})
|
||||
for(i=1;i<50;i++){
|
||||
serName.push([parseFloat(data.body[0][i])]);
|
||||
gb.push([parseFloat(data.body[1][i])]);
|
||||
number.push([i+1])
|
||||
}
|
||||
$("#container").css("height",height*0.8);
|
||||
//画图
|
||||
var chart = Highcharts.chart('container', {
|
||||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
chart: {
|
||||
type: 'column'
|
||||
},
|
||||
title: {
|
||||
text: ''
|
||||
},
|
||||
xAxis: {
|
||||
categories: number,
|
||||
},
|
||||
yAxis: [{
|
||||
min: 0,
|
||||
title: {
|
||||
text: data.body[0][0]
|
||||
}
|
||||
}, {
|
||||
title: {
|
||||
text: data.body[1][0]
|
||||
},
|
||||
opposite: true
|
||||
}],
|
||||
legend: {
|
||||
shadow: false
|
||||
},
|
||||
tooltip: {
|
||||
shared: true,
|
||||
formatter:function () {
|
||||
var x,y1,y2;
|
||||
if(this.points.length==1){
|
||||
x="谐波次数:"+this.points[0].x
|
||||
y2=this.points[0].series.name+":"+this.points[0].y+"%"
|
||||
return x+'<br>'+y2;
|
||||
}else{
|
||||
x="谐波次数:"+this.points[0].x
|
||||
y1="国标限值(%):"+this.points[0].y+"%"
|
||||
y2="谐波电压含有率(%):"+this.points[1].y+"%"
|
||||
return x+'<br>'+y1+'<br>'+y2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
plotOptions: {
|
||||
column: {
|
||||
grouping: false,
|
||||
shadow: false,
|
||||
borderWidth: 0
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
name: data.body[1][0],
|
||||
color: yellow,
|
||||
data: gb,
|
||||
tooltip: {
|
||||
valueSuffix: '%'
|
||||
},
|
||||
pointPadding: 0.3,
|
||||
pointPlacement: -0.2
|
||||
}, {
|
||||
name: data.body[0][0],
|
||||
color: green,
|
||||
data: serName,
|
||||
tooltip: {
|
||||
valueSuffix: '%'
|
||||
},
|
||||
pointPadding: 0.4, // 通过 pointPadding 和 pointPlacement 控制柱子位置
|
||||
pointPlacement: -0.2
|
||||
|
||||
}]
|
||||
});
|
||||
}
|
||||
}
|
||||
// ***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(idea);
|
||||
}
|
||||
})
|
||||
}
|
||||
//谐波电流幅值
|
||||
function getXbDl(startTime,endTime,lineId) {
|
||||
var type = '1';
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
async: false,
|
||||
url : '/pqs9000/device/getHarmI',
|
||||
data : {
|
||||
startTime:startTime,
|
||||
endTime:endTime,
|
||||
lineId:lineId,
|
||||
type:type
|
||||
},
|
||||
beforeSend: function () {
|
||||
idea = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
error:function(data) {
|
||||
layer.msg("暂无历史谐波电流幅值", {
|
||||
icon : 5,
|
||||
time : 3000
|
||||
})
|
||||
// ***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(idea);
|
||||
},
|
||||
success : function(data) {
|
||||
var serName=[];
|
||||
var gb=[];
|
||||
var number=[];
|
||||
//没有权限的请求
|
||||
if(data==300){
|
||||
location.href='/pqs9000/auth/unauthorized';
|
||||
//没有登陆的请求
|
||||
}else if(data==301){
|
||||
location.href='/pqs9000';
|
||||
}else {
|
||||
if (data.code == 500) {
|
||||
parent.layer.msg("没有获取到该监测点的谐波电流幅值", {
|
||||
icon : 5,
|
||||
time : 3000
|
||||
});
|
||||
$('#example').text("")
|
||||
var oTable = $('#example').DataTable({
|
||||
info:false,
|
||||
paging:false,
|
||||
lengthChange: false,
|
||||
columns: [
|
||||
{"width": "122px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"}
|
||||
],
|
||||
bDestroy: true,
|
||||
ordering: false,
|
||||
autoWidth:true,
|
||||
scrollX:false,
|
||||
data: data.body,
|
||||
destroy: true,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
"sEmptyTable": "没有内容"
|
||||
},
|
||||
})
|
||||
for(i=1;i<50;i++){
|
||||
serName.push([parseFloat(null)]);
|
||||
gb.push([parseFloat(null)]);
|
||||
number.push([i+1])
|
||||
}
|
||||
$("#container").css("height",parent.picHeight*0.6);
|
||||
//画图
|
||||
var chart = Highcharts.chart('container', {
|
||||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
chart: {
|
||||
type: 'column'
|
||||
},
|
||||
title: {
|
||||
text: ''
|
||||
},
|
||||
xAxis: {
|
||||
categories: number
|
||||
},
|
||||
yAxis: [{
|
||||
min: 0,
|
||||
title: {
|
||||
text: '谐波电流幅值(A)'
|
||||
}
|
||||
}, {
|
||||
title: {
|
||||
text: '国标限值(A)'
|
||||
},
|
||||
opposite: true
|
||||
}],
|
||||
legend: {
|
||||
shadow: false
|
||||
},
|
||||
tooltip: {
|
||||
shared: true,
|
||||
formatter:function () {
|
||||
var x,y1,y2;
|
||||
if(this.points.length==1){
|
||||
x="谐波次数:"+this.points[0].x
|
||||
y2=this.points[0].series.name+":"+this.points[0].y+"A"
|
||||
return x+'<br>'+y2;
|
||||
}else{
|
||||
x="谐波次数:"+this.points[0].x
|
||||
y1="国标限值(A):"+this.points[0].y+"A"
|
||||
y2="谐波电流幅值(A):"+this.points[1].y+"A"
|
||||
return x+'<br>'+y1+'<br>'+y2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
plotOptions: {
|
||||
column: {
|
||||
grouping: false,
|
||||
shadow: false,
|
||||
borderWidth: 0
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
name: '谐波电流幅值(A)',
|
||||
color: yellow,
|
||||
data: gb,
|
||||
tooltip: {
|
||||
valueSuffix: 'A'
|
||||
},
|
||||
pointPadding: 0.3,
|
||||
pointPlacement: -0.2
|
||||
}, {
|
||||
name: '国标限值(A)',
|
||||
color: green,
|
||||
data: serName,
|
||||
tooltip: {
|
||||
valueSuffix: 'A'
|
||||
},
|
||||
pointPadding: 0.4, // 通过 pointPadding 和 pointPlacement 控制柱子位置
|
||||
pointPlacement: -0.2
|
||||
|
||||
}]
|
||||
});
|
||||
} else {
|
||||
var oTable = $('#example').DataTable({
|
||||
info:false,
|
||||
paging:false,
|
||||
scrollY:false,
|
||||
lengthChange: false,
|
||||
// columnDefs: [ { width: "122px", "targets": 0 } ],
|
||||
columns: [
|
||||
{"width": "122px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"},
|
||||
{"width": "41px"}
|
||||
],
|
||||
ordering: false,
|
||||
// autoWidth:true,
|
||||
scrollX: true,
|
||||
data: data.body,
|
||||
destroy: true,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
"sEmptyTable": "没有内容"
|
||||
},
|
||||
})
|
||||
for(i=1;i<50;i++){
|
||||
serName.push([parseFloat(data.body[0][i])]);
|
||||
gb.push([parseFloat(data.body[1][i])]);
|
||||
number.push([i+1])
|
||||
}
|
||||
$("#container").css("height",height*0.6);
|
||||
//画图
|
||||
var chart = Highcharts.chart('container', {
|
||||
credits: {
|
||||
enabled: false
|
||||
},
|
||||
chart: {
|
||||
type: 'column'
|
||||
},
|
||||
title: {
|
||||
text: ''
|
||||
},
|
||||
xAxis: {
|
||||
categories: number,
|
||||
},
|
||||
yAxis: [{
|
||||
min: 0,
|
||||
title: {
|
||||
text: '谐波电流幅值(A)'
|
||||
}
|
||||
}, {
|
||||
title: {
|
||||
text: '国标限值(A)'
|
||||
},
|
||||
opposite: true
|
||||
}],
|
||||
legend: {
|
||||
shadow: false
|
||||
},
|
||||
tooltip: {
|
||||
shared: true,
|
||||
formatter:function () {
|
||||
var x,y1,y2;
|
||||
if(this.points.length==1){
|
||||
x="谐波次数:"+this.points[0].x
|
||||
y2=this.points[0].series.name+":"+this.points[0].y+"A"
|
||||
return x+'<br>'+y2;
|
||||
}else{
|
||||
x="谐波次数:"+this.points[0].x
|
||||
y1="国标限值(A):"+this.points[0].y+"A"
|
||||
y2="谐波电流幅值(A):"+this.points[1].y+"A"
|
||||
return x+'<br>'+y1+'<br>'+y2;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
},
|
||||
plotOptions: {
|
||||
column: {
|
||||
grouping: false,
|
||||
shadow: false,
|
||||
borderWidth: 0
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
name: '谐波电流幅值(A)',
|
||||
color: yellow,
|
||||
data: gb,
|
||||
tooltip: {
|
||||
valueSuffix: 'A'
|
||||
},
|
||||
pointPadding: 0.3,
|
||||
pointPlacement: -0.2
|
||||
}, {
|
||||
name: '国标限值(A)',
|
||||
color: green,
|
||||
data: serName,
|
||||
tooltip: {
|
||||
valueSuffix: 'A'
|
||||
},
|
||||
pointPadding: 0.4, // 通过 pointPadding 和 pointPlacement 控制柱子位置
|
||||
pointPlacement: -0.2
|
||||
|
||||
}]
|
||||
});
|
||||
}
|
||||
}
|
||||
// ***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(idea);
|
||||
}
|
||||
})
|
||||
}
|
||||
function queryData(tltName){
|
||||
var lineId=window.parent.document.getElementById("lineIndex").value;
|
||||
var startTime = $("#startTime").val();
|
||||
var endTime = $("#endTime").val();
|
||||
if(tltName=="谐波电压含有率"){
|
||||
getXbDy(startTime,endTime,lineId);
|
||||
}else if(tltName=="谐波电流幅值"){
|
||||
getXbDl(startTime,endTime,lineId);
|
||||
}
|
||||
}
|
||||
125
pqs9000/src/main/webapp/jspJS/monitor/ploymanage.js
Normal file
125
pqs9000/src/main/webapp/jspJS/monitor/ploymanage.js
Normal file
@@ -0,0 +1,125 @@
|
||||
$(document).ready(function() {
|
||||
load();
|
||||
})
|
||||
|
||||
function load(){
|
||||
var heightTemp=screen.height;
|
||||
var length;
|
||||
if(heightTemp==768){
|
||||
length=8;
|
||||
}else{
|
||||
length=11;
|
||||
}
|
||||
$.ajax({
|
||||
method : "post",
|
||||
url : "/pqs9000/devicereport/loadPloyInfo",
|
||||
data : {},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
error:function(data) {
|
||||
alert("暂无数据");
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
},
|
||||
success : function(data) {
|
||||
var info = JSON.parse(data);
|
||||
var table=$('#nodelist').DataTable({
|
||||
scrollX : true,
|
||||
lengthChange : false,
|
||||
destroy : true,
|
||||
searching: false,
|
||||
|
||||
language : {
|
||||
url: '/pqs9000/json/chine.json'
|
||||
},
|
||||
pageLength:length,
|
||||
data : info,
|
||||
"columnDefs" : [ {
|
||||
"targets": 0,
|
||||
"visible": false,
|
||||
"searchable": false
|
||||
},{
|
||||
// // 定义操作列,######以下是重点########
|
||||
"targets" : 4,//操作按钮目标列
|
||||
"data" : null,
|
||||
"orderable" : false,
|
||||
"render" : function(row) {
|
||||
return null;
|
||||
}
|
||||
}],
|
||||
"createdRow": function ( row, data, index ) {
|
||||
$btnExp = $('<button type="button" class="btn btn-danger glyphicon glyphicon-trash btn_exp" id="btn_exp" style="margin-left:10px">删除</button>');
|
||||
if(data[3] == "正常"){
|
||||
$('td', row).eq(3).append($btnExp);
|
||||
}
|
||||
},
|
||||
'fnDrawCallback': function(table) {
|
||||
$("#nodelist_paginate").append("<div style='float:right;padding-top:4px;padding-left:10px'>到第 <input type='text' id='changePage' class='input-text' style='width:50px;height:28px;'> 页 <button class='btn btn-primary' id='dataTable-btn'>确定</button></div>");
|
||||
var oTable = $("#nodelist").dataTable();
|
||||
$('#dataTable-btn').click(function(e) {
|
||||
if($("#changePage").val() && $("#changePage").val() > 0) {
|
||||
var redirectpage = $("#changePage").val() - 1;
|
||||
} else {
|
||||
var redirectpage = 0;
|
||||
}
|
||||
oTable.fnPageChange(redirectpage);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
table.buttons().container().css("display","inline-block");
|
||||
table.buttons().container().css("float","right");
|
||||
table.buttons().container().find("a").prepend("<i class='glyphicon glyphicon-share'></i>");
|
||||
table.buttons().container().appendTo('.header');
|
||||
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
$('#nodelist').on("click", ".btn_exp", function() {
|
||||
objTable=$('#nodelist').DataTable();
|
||||
if (objTable != null) {
|
||||
var item = objTable.row($(this).closest('tr')).data();
|
||||
var modelIndex = item[0];
|
||||
var modelName = item[1];
|
||||
|
||||
layer.confirm('是否确认?',function(){
|
||||
$.ajax({
|
||||
method : "post",
|
||||
url : "/pqs9000/devicereport/delPloyInfo",
|
||||
data : {
|
||||
modelIndex:modelIndex,
|
||||
modelName:modelName
|
||||
},
|
||||
async:false,
|
||||
success : function(data) {
|
||||
if(data.code==200){
|
||||
layer.msg('删除成功!',{icon:1,time:1000});
|
||||
load();
|
||||
}else{
|
||||
layer.msg('删除失败!',{icon:2,time:1000});
|
||||
}
|
||||
}
|
||||
})
|
||||
})
|
||||
}
|
||||
})
|
||||
|
||||
$("#addnode").click(function(){
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: '上传模板',
|
||||
shadeClose: true,
|
||||
offset: '0px',
|
||||
area: ['300px', '160px'],
|
||||
maxmin : false,
|
||||
content: 'upoffploy',
|
||||
scrollbar: false,
|
||||
end:function(){
|
||||
load();
|
||||
}
|
||||
});
|
||||
})
|
||||
597
pqs9000/src/main/webapp/jspJS/monitor/trend.js
Normal file
597
pqs9000/src/main/webapp/jspJS/monitor/trend.js
Normal file
@@ -0,0 +1,597 @@
|
||||
var zNodes = [ {
|
||||
id : 1,
|
||||
pId : 0,
|
||||
name : "电压总有效值(kV)",
|
||||
checked : true
|
||||
}, {
|
||||
id : 2,
|
||||
pId : 0,
|
||||
name : "电流总有效值(A)",
|
||||
checked : true
|
||||
}, {
|
||||
id : 3,
|
||||
pId : 0,
|
||||
name : "有功功率(kW)",
|
||||
}, {
|
||||
id : 4,
|
||||
pId : 0,
|
||||
name : "无功功率(kVar)",
|
||||
}, {
|
||||
id : 5,
|
||||
pId : 0,
|
||||
name : "基波电压总有效值(kV)"
|
||||
}, {
|
||||
id : 6,
|
||||
pId : 0,
|
||||
name : "基波电流总有效值(A)"
|
||||
}, {
|
||||
id : 7,
|
||||
pId : 0,
|
||||
name : "频率(Hz)"
|
||||
}, {
|
||||
id : 8,
|
||||
pId : 0,
|
||||
name : "电压不平衡度(%)",
|
||||
}, {
|
||||
id : 9,
|
||||
pId : 0,
|
||||
name : "电流不平衡度(%)"
|
||||
} ]
|
||||
|
||||
/*******************************************************************************
|
||||
* z-tree控件基本参数设置
|
||||
******************************************************************************/
|
||||
var settingRight = {
|
||||
check : {
|
||||
enable : true,
|
||||
chkDisabledInherit : true
|
||||
},
|
||||
data : {
|
||||
simpleData : {
|
||||
enable : true
|
||||
}
|
||||
},
|
||||
callback : {
|
||||
onExpand : onExpand,
|
||||
onClick : onClick,
|
||||
onCheck : checkTarget
|
||||
}
|
||||
};
|
||||
|
||||
var checkCount = 1, totalcount = 4, nodes = '', node = null;
|
||||
var isPt = true;
|
||||
function checkTarget() {
|
||||
obj1 = null; obj2 = null; obj3 = null; obj4 = null; obj5 = null; obj6 = null; obj7 = null; obj8 = null; obj9 = null;
|
||||
var height = $("body").height();
|
||||
var picHeight = height - 26;
|
||||
$('#container1').html("");
|
||||
$('#container2').html("");
|
||||
$('#container3').html("");
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target");
|
||||
checkCount = zTree1.getCheckedNodes(true).length;
|
||||
node = zTree1.getCheckedNodes(true);
|
||||
totalcount = checkCount;
|
||||
nodes = '';
|
||||
var k = 0;
|
||||
for (var i = 0; i < totalcount; i++) {
|
||||
if (k < 3) {
|
||||
nodes += node[i].id + ',';
|
||||
} else {
|
||||
zTree1.checkNode(node[i], false, true);
|
||||
}
|
||||
k++;
|
||||
}
|
||||
if (nodes != '') {
|
||||
nodes = nodes.substring(0, nodes.lastIndexOf(','));
|
||||
}
|
||||
|
||||
var legandData=[],seriesData=[];
|
||||
var xx = null, // 当前时间
|
||||
yy = null; // 随机值
|
||||
|
||||
if(parent.parent.pttype == 0){
|
||||
legandData.push({
|
||||
data: ['A相', 'B相', 'C相'],
|
||||
selectedMode: true,
|
||||
x: 'left'
|
||||
})
|
||||
seriesData.push({
|
||||
name : "A相",
|
||||
data : [ [ xx, yy ] ]
|
||||
}, {
|
||||
name : "B相",
|
||||
data : [ [ xx, yy ] ]
|
||||
}, {
|
||||
name : "C相",
|
||||
data : [ [ xx, yy ] ]
|
||||
})
|
||||
}else if(parent.parent.pttype == 1){
|
||||
legandData.push({
|
||||
data: ['AB相', 'BC相', 'CA相'],
|
||||
selectedMode: true,
|
||||
x: 'left'
|
||||
})
|
||||
seriesData.push({
|
||||
name : "AB相",
|
||||
data : [ [ xx, yy ] ]
|
||||
}, {
|
||||
name : "BC相",
|
||||
data : [ [ xx, yy ] ]
|
||||
}, {
|
||||
name : "CA相",
|
||||
data : [ [ xx, yy ] ]
|
||||
})
|
||||
}else{
|
||||
legandData.push({
|
||||
data: ['AB相', 'BC相'],
|
||||
selectedMode: true,
|
||||
x: 'left'
|
||||
})
|
||||
seriesData.push({
|
||||
name : "AB相",
|
||||
data : [ [ xx, yy ] ]
|
||||
}, {
|
||||
name : "BC相",
|
||||
data : [ [ xx, yy ] ]
|
||||
})
|
||||
isPt = false;
|
||||
}
|
||||
|
||||
if (k == 1) {
|
||||
document.getElementById('container1').style.display = "block";
|
||||
document.getElementById('container2').style.display = "none";
|
||||
document.getElementById('container3').style.display = "none";
|
||||
$("#container1").css("height", picHeight);
|
||||
var option = node[0].name;
|
||||
|
||||
if (option == "电压总有效值(kV)" || option == "电流总有效值(A)" || option == "基波电压总有效值(kV)"
|
||||
|| option == "基波电流总有效值(A)") {
|
||||
draw3Pic(option, '1',legandData,seriesData);
|
||||
} else {
|
||||
drawPic(option, '1');
|
||||
}
|
||||
} else if (k == 2) {
|
||||
document.getElementById('container1').style.display = "block";
|
||||
document.getElementById('container2').style.display = "block";
|
||||
document.getElementById('container3').style.display = "none";
|
||||
$("#container1").css("height", picHeight / 2);
|
||||
$("#container2").css("height", picHeight / 2);
|
||||
var option1 = node[0].name;
|
||||
if (option1 == "电压总有效值(kV)" || option1 == "电流总有效值(A)" || option1 == "基波电压总有效值(kV)"
|
||||
|| option1 == "基波电流总有效值(A)") {
|
||||
draw3Pic(option1, '1',legandData,seriesData);
|
||||
} else {
|
||||
drawPic(option1, '1');
|
||||
}
|
||||
var option2 = node[1].name;
|
||||
if (option2 == "电压总有效值(kV)" || option2 == "电流总有效值(A)" || option2 == "基波电压总有效值(kV)"
|
||||
|| option2 == "基波电流总有效值(A)") {
|
||||
draw3Pic(option2, '2',legandData,seriesData);
|
||||
} else {
|
||||
drawPic(option2, '2');
|
||||
}
|
||||
} else if (k == 3) {
|
||||
document.getElementById('container1').style.display = "block";
|
||||
document.getElementById('container2').style.display = "block";
|
||||
document.getElementById('container3').style.display = "block";
|
||||
$("#container1").css("height", picHeight / 2);
|
||||
$("#container2").css("height", picHeight / 2);
|
||||
$("#container3").css("height", picHeight / 2);
|
||||
var option1 = node[0].name;
|
||||
if (option1 == "电压总有效值(kV)" || option1 == "电流总有效值(A)" || option1 == "基波电压总有效值(kV)"
|
||||
|| option1 == "基波电流总有效值(A)") {
|
||||
draw3Pic(option1, '1',legandData,seriesData);
|
||||
} else {
|
||||
drawPic(option1, '1');
|
||||
}
|
||||
var option2 = node[1].name;
|
||||
if (option2 == "电压总有效值(kV)" || option2 == "电流总有效值(A)" || option2 == "基波电压总有效值(kV)"
|
||||
|| option2 == "基波电流总有效值(A)") {
|
||||
draw3Pic(option2, '2',legandData,seriesData);
|
||||
} else {
|
||||
drawPic(option2, '2');
|
||||
}
|
||||
var option3 = node[2].name;
|
||||
if (option3 == "电压总有效值(kV)" || option3 == "电流总有效值(A)" || option3 == "基波电压总有效值(kV)"
|
||||
|| option3 == "基波电流总有效值(A)") {
|
||||
draw3Pic(option3, '3',legandData,seriesData);
|
||||
} else {
|
||||
drawPic(option3, '3');
|
||||
}
|
||||
}
|
||||
|
||||
if (checkCount >= 3) {
|
||||
disabledNode(true);
|
||||
} else {
|
||||
disabledNode(false);
|
||||
}
|
||||
|
||||
getData(node);
|
||||
}
|
||||
|
||||
// 回调函数,展开tree节点
|
||||
function onExpand(event, treeId, treeNode) {
|
||||
curExpandNode = treeNode;
|
||||
}
|
||||
|
||||
// 回调函数,点击tree展开节点
|
||||
function onClick(e, treeId, treeNode) {
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target");
|
||||
zTree1.expandNode(treeNode, null, null, null, true);
|
||||
}
|
||||
|
||||
// 根据条件设置tree节点状态 可用/不可用
|
||||
function disabledNode(e) {
|
||||
var zTree1 = $.fn.zTree.getZTreeObj("target"), l = zTree1
|
||||
.getCheckedNodes(false).length, nodes = zTree1
|
||||
.getCheckedNodes(false);
|
||||
var nodeAll = zTree1.getNodes();
|
||||
var m = zTree1.getNodes().length;
|
||||
if (e) {
|
||||
for (var i = 0; i < l; i++) {
|
||||
zTree1.setChkDisabled(nodes[i], e, false, false);
|
||||
}
|
||||
} else {
|
||||
for (var i = 0; i < m; i++) {
|
||||
zTree1.setChkDisabled(nodeAll[i], e, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
var lineIndex = window.parent.parent.document.getElementById("lineIndex").value;
|
||||
var webSocket = window.parent.parent.parent.webSocket;
|
||||
var vList = [], iList = [];
|
||||
var result1 = [], result2 = [], result3 = [];
|
||||
var obj1 = null, obj2 = null, obj3 = null, obj4 = null, obj5 = null, obj6 = null, obj7 = null, obj8 = null, obj9 = null;
|
||||
$(document).ready(function() {
|
||||
// 监测点指标 tree的初始化
|
||||
$.fn.zTree.init($("#target"), settingRight, zNodes);
|
||||
checkTarget();
|
||||
// loading = ityzl_SHOW_LOAD_LAYER();
|
||||
// queryAndShowData();
|
||||
});
|
||||
|
||||
function getData(node) {
|
||||
webSocket.onmessage = function(event) {
|
||||
console.log(event.data)
|
||||
var aVRMSlist = [], bVRMSlist = [], cVRMSlist = [];
|
||||
var aV1list = [], bV1list = [], cV1list = [];
|
||||
var aIRMSlist = [], bIRMSlist = [], cIRMSlist = [];
|
||||
var aI1list = [], bI1list = [], cI1list = [];
|
||||
var VRMSlist = [], V1list = [], Vlist = [], FVlist = [];
|
||||
var IRMSlist = [], I1list = [], Ilist = [];
|
||||
var Plist = [], Qlist = [];
|
||||
var result = [];
|
||||
var json0 = JSON.parse(event.data);// 通过kafka收到消息的主体
|
||||
var json1 = json0['resultmsg'];
|
||||
|
||||
var json2 = json1[lineIndex];// 监测点数据
|
||||
var timepoint = parseInt(json2['TIME']);// 发生时刻
|
||||
var time = timepoint;
|
||||
var s = "时刻:" + Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', timepoint);
|
||||
$("#timepoint").html(s);
|
||||
|
||||
var vjson = json2['V'];// 电压相关数据,数组
|
||||
var ijson = json2['I'];// 电流相关数据,数组
|
||||
var pjson = json2['PQ'];// 电流相关数据,数组
|
||||
for (var i = 0; i < vjson.length; i++) {
|
||||
var tmplist = vjson[i];
|
||||
if (tmplist['SEQ'] == 'A') {
|
||||
aVRMSlist.push(time);
|
||||
aVRMSlist.push(parseFloat(tmplist['VRMS']));// 电压有效值
|
||||
aV1list.push(time);
|
||||
aV1list.push(parseFloat(tmplist['V1']));// 基波电压有效值
|
||||
}
|
||||
if (tmplist['SEQ'] == 'B') {
|
||||
bVRMSlist.push(time);
|
||||
bVRMSlist.push(parseFloat(tmplist['VRMS']));// 电压有效值
|
||||
bV1list.push(time);
|
||||
bV1list.push(parseFloat(tmplist['V1']));// 基波电压有效值
|
||||
}
|
||||
if (tmplist['SEQ'] == 'C') {
|
||||
cVRMSlist.push(time);
|
||||
cVRMSlist.push(parseFloat(tmplist['VRMS']));// 电压有效值
|
||||
cV1list.push(time);
|
||||
cV1list.push(parseFloat(tmplist['V1']));// 基波电压有效值
|
||||
}
|
||||
if (tmplist['SEQ'] == 'T') {
|
||||
Vlist.push(time);
|
||||
Vlist.push(parseFloat(tmplist['V_UNBAN']));// 电压不平衡
|
||||
FVlist.push(time);
|
||||
FVlist.push(parseFloat(tmplist['FREQ']));// 频率(Hz)
|
||||
}
|
||||
|
||||
}
|
||||
VRMSlist.push(aVRMSlist);
|
||||
VRMSlist.push(bVRMSlist);
|
||||
VRMSlist.push(cVRMSlist);
|
||||
V1list.push(aV1list);
|
||||
V1list.push(bV1list);
|
||||
V1list.push(cV1list);
|
||||
|
||||
for (var i = 0; i < ijson.length; i++) {
|
||||
var tmplist = ijson[i];
|
||||
if (tmplist['SEQ'] == 'A') {
|
||||
aIRMSlist.push(time);
|
||||
aIRMSlist.push(parseFloat(tmplist['IRMS']));// 电流有效值
|
||||
aI1list.push(time);
|
||||
aI1list.push(parseFloat(tmplist['I1']));// 基波电流有效值
|
||||
}
|
||||
if (tmplist['SEQ'] == 'B') {
|
||||
bIRMSlist.push(time);
|
||||
bIRMSlist.push(parseFloat(tmplist['IRMS']));// 电流有效值
|
||||
bI1list.push(time);
|
||||
bI1list.push(parseFloat(tmplist['I1']));// 基波电流有效值
|
||||
}
|
||||
if (tmplist['SEQ'] == 'C') {
|
||||
cIRMSlist.push(time);
|
||||
cIRMSlist.push(parseFloat(tmplist['IRMS']));// 电流有效值
|
||||
cI1list.push(time);
|
||||
cI1list.push(parseFloat(tmplist['I1']));// 基波电流有效值
|
||||
}
|
||||
if (tmplist['SEQ'] == 'T') {
|
||||
Ilist.push(time);
|
||||
Ilist.push(parseFloat(tmplist['I_UNBAN']));// 电流不平衡
|
||||
}
|
||||
|
||||
}
|
||||
IRMSlist.push(aIRMSlist);
|
||||
IRMSlist.push(bIRMSlist);
|
||||
IRMSlist.push(cIRMSlist);
|
||||
I1list.push(aI1list);
|
||||
I1list.push(bI1list);
|
||||
I1list.push(cI1list);
|
||||
|
||||
for (var i = 0; i < pjson.length; i++) {
|
||||
var tmplist = pjson[i];
|
||||
if (tmplist['SEQ'] == 'T') {
|
||||
Plist.push(time);
|
||||
Plist.push(parseFloat(tmplist['P']));// 有功功率(kW)
|
||||
Qlist.push(time);
|
||||
Qlist.push(parseFloat(tmplist['Q']));// 无功功率(kVar)
|
||||
}
|
||||
}
|
||||
|
||||
for(var i=0;i<node.length;i++) {
|
||||
var option = node[i].name;
|
||||
if (option == "电压总有效值(kV)") {
|
||||
obj1.hcEvents.load[0](VRMSlist);
|
||||
}
|
||||
if (option == "电流总有效值(A)") {
|
||||
obj2.hcEvents.load[0](IRMSlist);// 电流总有效值(A)
|
||||
}
|
||||
if (option == "有功功率(kW)") {
|
||||
obj3.hcEvents.load[0](Plist);// 有功功率(kW)
|
||||
}
|
||||
if (option == "无功功率(kVar)") {
|
||||
obj4.hcEvents.load[0](Qlist);// 无功功率(kW)
|
||||
}
|
||||
if (option == "基波电压总有效值(kV)") {
|
||||
obj5.hcEvents.load[0](V1list);// 基波电压总有效值
|
||||
}
|
||||
if (option == "基波电流总有效值(A)") {
|
||||
obj6.hcEvents.load[0](I1list);// 基波电流总有效值(A)
|
||||
}
|
||||
if (option == "频率(Hz)") {
|
||||
obj7.hcEvents.load[0](FVlist);
|
||||
result.push(FVlist);// 频率(Hz)
|
||||
}
|
||||
if (option == "电压不平衡度(%)") {
|
||||
obj8.hcEvents.load[0](Vlist);// 电压不平衡
|
||||
}
|
||||
if (option == "电流不平衡度(%)") {
|
||||
obj9.hcEvents.load[0](Ilist);// 电流不平衡
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
function drawPic(option, node) {
|
||||
var delFlag = 1;
|
||||
var unit="";
|
||||
|
||||
Highcharts.setOptions({
|
||||
global : {
|
||||
useUTC : false
|
||||
}
|
||||
});
|
||||
var xx = (new Date()).getTime()-1000*60, // 当前时间
|
||||
yy = 0; // 随机值
|
||||
|
||||
var pic = 'container' + node;
|
||||
$(pic).css("height", $(window).height() - 30);
|
||||
var chart = Highcharts.chart(pic, {
|
||||
chart : {
|
||||
type : 'spline',
|
||||
marginRight : 10,
|
||||
events : {
|
||||
load : function(data) {
|
||||
var series = null, chart = this;
|
||||
|
||||
if (option == "有功功率(kW)") {
|
||||
unit = "kW";
|
||||
if (obj3 == null) {
|
||||
obj3 = chart;
|
||||
}else{
|
||||
chart=obj3;
|
||||
}
|
||||
} else if (option == "无功功率(kVar)") {
|
||||
unit = "kVar";
|
||||
if (obj4 == null) {
|
||||
obj4 = chart;
|
||||
}else{
|
||||
chart=obj4;
|
||||
}
|
||||
} else if (option == "频率(Hz)") {
|
||||
unit = "Hz";
|
||||
if (obj7 == null) {
|
||||
obj7 = chart;
|
||||
}else{
|
||||
chart=obj7;
|
||||
}
|
||||
} else if (option == "电压不平衡度(%)") {
|
||||
unit = "%";
|
||||
if (obj8 == null) {
|
||||
obj8 = chart;
|
||||
}else{
|
||||
chart=obj8;
|
||||
}
|
||||
} else if (option == "电流不平衡度(%)") {
|
||||
unit = "%";
|
||||
if (obj9 == null) {
|
||||
obj9 = chart;
|
||||
}else{
|
||||
chart=obj9;
|
||||
}
|
||||
}
|
||||
|
||||
series=chart.series[0];
|
||||
if (data.length > 0) {
|
||||
if (series.data.length == 1 && delFlag == 1) {
|
||||
series.addPoint(data,false,true,true);
|
||||
delFlag = 0;
|
||||
} else if (series.data.length < 60 && delFlag == 0) {
|
||||
series.addPoint(data);
|
||||
} else {
|
||||
series.addPoint(data, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
title : {
|
||||
text : option,
|
||||
style: {
|
||||
fontSize:'15px'
|
||||
}
|
||||
},
|
||||
credits: false,
|
||||
xAxis : {
|
||||
type : 'datetime',
|
||||
tickPixelInterval : 150
|
||||
},
|
||||
yAxis : {
|
||||
title : {
|
||||
text : null
|
||||
}
|
||||
},
|
||||
tooltip : {
|
||||
formatter : function() {
|
||||
return '<b>' + this.series.name + '</b><br/>'
|
||||
+ Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x)
|
||||
+ '<br/>' + Highcharts.numberFormat(this.y, 4) + unit;
|
||||
}
|
||||
},
|
||||
legend : {
|
||||
enabled : false
|
||||
},
|
||||
series : [ {
|
||||
name : option,
|
||||
data : [ [ xx, yy ] ]
|
||||
} ]
|
||||
});
|
||||
}
|
||||
|
||||
function draw3Pic(option, nodeid, legendData,seriesData) {
|
||||
var delFlag = 1;
|
||||
|
||||
Highcharts.setOptions({
|
||||
global : {
|
||||
useUTC : false
|
||||
}
|
||||
});
|
||||
var pic = 'container' + nodeid;
|
||||
$(pic).css("height", ($(window).height()-30)/3);
|
||||
var chart = Highcharts.chart(pic, {
|
||||
chart : {
|
||||
type : 'spline',
|
||||
marginRight : 10,
|
||||
events : {
|
||||
load : function(data) {
|
||||
var series = null,chart = this;
|
||||
|
||||
if (option == "电压总有效值(kV)") {
|
||||
if (obj1 == null) {
|
||||
obj1 = chart;//.hcEvents.load;
|
||||
}else{
|
||||
chart = obj1;
|
||||
}
|
||||
} else if (option == "电流总有效值(A)") {
|
||||
if (obj2 == null) {
|
||||
obj2 = chart;//.hcEvents.load;
|
||||
}else{
|
||||
chart = obj2;
|
||||
}
|
||||
} else if (option == "基波电压总有效值(kV)") {
|
||||
if (obj5 == null) {
|
||||
obj5 = chart;//.hcEvents.load;
|
||||
}else{
|
||||
chart = obj5;
|
||||
}
|
||||
} else if (option == "基波电流总有效值(A)") {
|
||||
if (obj6 == null) {
|
||||
obj6 = chart;//.hcEvents.load;
|
||||
}else{
|
||||
chart = obj6;
|
||||
}
|
||||
}
|
||||
|
||||
series = chart.series;
|
||||
|
||||
if (data.length > 0) {
|
||||
var a = data[0];
|
||||
var b = data[1];
|
||||
var c = data[2];
|
||||
if(series[0].data.length == 1 && delFlag == 1){
|
||||
series[0].addPoint(a,false,true,true);
|
||||
series[1].addPoint(b,false,true,true);
|
||||
if(isPt){
|
||||
series[2].addPoint(c,true,true,true);
|
||||
}
|
||||
delFlag = 0;
|
||||
}else if (series[0].data.length < 60) {
|
||||
series[0].addPoint(a);
|
||||
series[1].addPoint(b);
|
||||
if(isPt){
|
||||
series[2].addPoint(c);
|
||||
}
|
||||
} else {
|
||||
series[0].addPoint(a, false, true, true);
|
||||
series[1].addPoint(b, false, true, true);
|
||||
if(isPt){
|
||||
series[2].addPoint(c, true, true, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
},
|
||||
title : {
|
||||
text : option,
|
||||
style: {
|
||||
fontSize:'15px'
|
||||
}
|
||||
},
|
||||
credits: false,
|
||||
xAxis : {
|
||||
type : 'datetime',
|
||||
tickPixelInterval : 150
|
||||
},
|
||||
yAxis : {
|
||||
title : {
|
||||
text : null
|
||||
}
|
||||
},
|
||||
// tooltip : {
|
||||
// formatter : function() {
|
||||
// return '<b>' + this.series.name + '</b><br/>'
|
||||
// + Highcharts.dateFormat('%Y-%m-%d %H:%M:%S', this.x)
|
||||
// + '<br/>' + Highcharts.numberFormat(this.y, 2);
|
||||
// }
|
||||
// },
|
||||
legend : legendData,
|
||||
colors:[yellow,green,red],
|
||||
series : seriesData
|
||||
});
|
||||
}
|
||||
758
pqs9000/src/main/webapp/jspJS/monitor/wtzb.js
Normal file
758
pqs9000/src/main/webapp/jspJS/monitor/wtzb.js
Normal file
@@ -0,0 +1,758 @@
|
||||
|
||||
var picHeight;
|
||||
var endTime=getEndTime();
|
||||
var startTime=getStartTime("月份",endTime);
|
||||
var lineIndex=window.parent.document.getElementById("lineIndex").value;
|
||||
startTime=filterXSS(startTime);
|
||||
endTime=filterXSS(endTime);
|
||||
lineIndex=filterXSS(lineIndex);
|
||||
window.parent.parent.thisUrl = "wtzb"
|
||||
var legend1,legend2;
|
||||
$("#interval").val("月份");
|
||||
|
||||
$(function () {
|
||||
$("#startTime").val(startTime);
|
||||
picHeight=$(window).height()-135;
|
||||
getSteady(startTime,endTime,lineIndex);
|
||||
})
|
||||
|
||||
$("#interval").change(function(){
|
||||
if($("#interval").val() == "年份" || $("#interval").val() == "周" || $("#interval").val() == "自定义"){
|
||||
document.getElementById("hb").style.display="none";
|
||||
}else{
|
||||
document.getElementById("hb").style.display="";
|
||||
}
|
||||
|
||||
if($("#interval").val() == "周" || $("#interval").val() == "自定义"){
|
||||
document.getElementById("tb").style.display="none";
|
||||
}else{
|
||||
document.getElementById("tb").style.display="";
|
||||
}
|
||||
})
|
||||
$("#query").click(function (){
|
||||
document.getElementById("res").style.display="none";
|
||||
startTime=$("#startTime").val();
|
||||
endTime=$("#endTime").val();
|
||||
getSteady(startTime,endTime,lineIndex);
|
||||
})
|
||||
|
||||
$("#tb").click(function (){
|
||||
document.getElementById("res").style.display="";
|
||||
endTime=$("#endTime").val();
|
||||
startTime=$("#startTime").val();
|
||||
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
|
||||
var syear=year - 1;
|
||||
var laststartTime=syear + '-' + month + '-01';
|
||||
|
||||
var emonth = parseInt(endTime.substring(5, 7));
|
||||
var eday=new Date(syear, emonth, 0).getDate();
|
||||
var lastendTime=syear + '-' + emonth + '-' + eday;
|
||||
|
||||
if(month==emonth){
|
||||
legend1 = year+'年'+month+'月';
|
||||
legend2 = syear+'年'+month+'月';
|
||||
}else{
|
||||
legend1 = year+'年'+month+'-'+emonth+'月';
|
||||
legend2 = syear+'年'+month+'-'+emonth+'月';
|
||||
}
|
||||
|
||||
getSteadyTB(startTime,endTime,laststartTime,lastendTime,lineIndex,"同比");
|
||||
})
|
||||
|
||||
$("#hb").click(function (){
|
||||
document.getElementById("res").style.display="";
|
||||
var interval = $("#interval").val();
|
||||
endTime=$("#endTime").val();
|
||||
startTime=$("#startTime").val();
|
||||
|
||||
if(interval == "月份"){
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
if (month == 1) {
|
||||
var lastyear = year-1;
|
||||
var laststartTime=lastyear + "-12-01";
|
||||
|
||||
var lastendTime=lastyear + "-12-31";
|
||||
legend1 =year+'年'+ month+'月';
|
||||
legend2 = lastyear+'年12月';
|
||||
}else if (month <= 10) {
|
||||
var smonth=month-1;
|
||||
var laststartTime=year + '-0' + smonth + '-01';
|
||||
|
||||
var eday=new Date(year, smonth, 0).getDate();
|
||||
var lastendTime=year + '-0' + smonth + '-' + eday;
|
||||
legend1 =year+'年'+ month+'月';
|
||||
legend2 = year+'年'+ smonth+'月';
|
||||
}else{
|
||||
var smonth=month-1;
|
||||
var laststartTime=year + '-' + smonth + '-01';
|
||||
|
||||
var eday=new Date(year, smonth, 0).getDate();
|
||||
var lastendTime=year + '-' + smonth + '-' + eday;
|
||||
legend1 = year+'年'+ month+'月';
|
||||
legend2 = year+'年'+ smonth+'月';
|
||||
}
|
||||
getSteadyTB(startTime,endTime,laststartTime,lastendTime,lineIndex,"环比");
|
||||
}else if(interval == "季度"){
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
if (month == 1) {
|
||||
var lastyear = year-1;
|
||||
var laststartTime=year + "-10-01";
|
||||
|
||||
var lastendTime=year + "-12-31";
|
||||
legend1 = year+'年1-3月';
|
||||
legend2 = lastyear+'年10-12月';
|
||||
}else{
|
||||
var month1=month+2;
|
||||
var smonth=month-3;
|
||||
var laststartTime=year + '-' + smonth + '-01';
|
||||
|
||||
var emonth=smonth+2;
|
||||
var eday=new Date(year, emonth, 0).getDate();
|
||||
var lastendTime=year + '-' + emonth + '-' + eday;
|
||||
legend1 = year+'年'+ month+'-'+month1+'月';
|
||||
legend2 = year+'年'+ smonth+'-'+emonth+'月';
|
||||
}
|
||||
getSteadyTB(startTime,endTime,laststartTime,lastendTime,lineIndex,"环比");
|
||||
}
|
||||
})
|
||||
|
||||
$("#res").click(function (){
|
||||
document.getElementById("res").style.display="none";
|
||||
startTime=$("#startTime").val();
|
||||
endTime=$("#endTime").val();
|
||||
getSteady(startTime,endTime,lineIndex);
|
||||
})
|
||||
|
||||
function getSteady(startTime,endTime,lineIndex){
|
||||
var i;
|
||||
$.ajax({
|
||||
url:'/pqs9000/device/steady',
|
||||
data:{
|
||||
startTime:startTime,
|
||||
endTime:endTime,
|
||||
lineIndex:lineIndex
|
||||
},
|
||||
type:'post',
|
||||
dataType:'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success:function (data) {
|
||||
if (data.code===500|data.body===null){
|
||||
initWtzb(null);
|
||||
}else{
|
||||
var info = data.body;
|
||||
var frequency={};var frequencyitem={};
|
||||
var flicker={};var flickeritem={};
|
||||
var unbalanceVol={};var unbalanceVolitem={};
|
||||
var harmVoltage={};var harmVoltageUitem={};
|
||||
var deviationVol={};var deviationVolitem={};
|
||||
var harmElec={};var harmElecitem={};
|
||||
var iNeg={};var iNegitem={};
|
||||
var inUharm={};var inUharmitem={};
|
||||
|
||||
frequency.value=info.frequency;
|
||||
if(frequency.value===3.14159){
|
||||
frequencyitem.color=noData;
|
||||
frequency.value=1.555;
|
||||
}else if(frequency.value>100){
|
||||
frequencyitem.color=green;
|
||||
frequency.value=100;
|
||||
}else if (frequency.value>90){
|
||||
frequencyitem.color=green;
|
||||
}else if (frequency.value<60){
|
||||
frequencyitem.color=red;
|
||||
}else{
|
||||
frequencyitem.color=yellow;
|
||||
}
|
||||
frequency.itemStyle=frequencyitem;
|
||||
|
||||
flicker.value=info.flicker;
|
||||
if(flicker.value===3.14159){
|
||||
flickeritem.color=noData;
|
||||
flicker.value=1.555;
|
||||
}else if(flicker.value>100){
|
||||
flickeritem.color=green;
|
||||
flicker.value=100;
|
||||
}else if (flicker.value>90){
|
||||
flickeritem.color=green;
|
||||
}else if (flicker.value<60){
|
||||
flickeritem.color=red;
|
||||
}else{
|
||||
flickeritem.color=yellow;
|
||||
}
|
||||
flicker.itemStyle=flickeritem;
|
||||
|
||||
unbalanceVol.value=info.uBalance;
|
||||
if(unbalanceVol.value===3.14159){
|
||||
unbalanceVolitem.color=noData;
|
||||
unbalanceVol.value=1.555;
|
||||
}else if(unbalanceVol.value>100){
|
||||
unbalanceVolitem.color=green;
|
||||
unbalanceVol.value=100;
|
||||
}else if (unbalanceVol.value>90){
|
||||
unbalanceVolitem.color=green;
|
||||
}else if (unbalanceVol.value<60){
|
||||
unbalanceVolitem.color=red;
|
||||
}else{
|
||||
unbalanceVolitem.color=yellow;
|
||||
}
|
||||
unbalanceVol.itemStyle=unbalanceVolitem;
|
||||
|
||||
//谐波电压
|
||||
harmVoltage.value=getHarmVoltageValue(info.uAberrance,info.evenVoltage,info.oddVoltage);
|
||||
if(harmVoltage.value===3.14159){
|
||||
harmVoltageUitem.color=noData;
|
||||
harmVoltage.value=1.555;
|
||||
}else if(harmVoltage.value>100){
|
||||
harmVoltageUitem.color=green;
|
||||
harmVoltage.value=100;
|
||||
}else if (harmVoltage.value>90){
|
||||
harmVoltageUitem.color=green;
|
||||
}else if (harmVoltage.value<60){
|
||||
harmVoltageUitem.color=red;
|
||||
}else{
|
||||
harmVoltageUitem.color=yellow;
|
||||
}
|
||||
harmVoltage.itemStyle=harmVoltageUitem;
|
||||
|
||||
deviationVol.value=info.voltageDeviation;
|
||||
if(deviationVol.value===3.14159){
|
||||
deviationVolitem.color=noData;
|
||||
deviationVol.value=1.555;
|
||||
}else if(deviationVol.value>100){
|
||||
deviationVolitem.color=green;
|
||||
deviationVol.value=100;
|
||||
}else if (deviationVol.value>90){
|
||||
deviationVolitem.color=green;
|
||||
}else if (deviationVol.value<60){
|
||||
deviationVolitem.color=red;
|
||||
}else{
|
||||
deviationVolitem.color=yellow;
|
||||
}
|
||||
deviationVol.itemStyle=deviationVolitem;
|
||||
|
||||
//谐波电流
|
||||
harmElec.value=getHarmElecValue(info.oddElectric,info.evenElectric);
|
||||
if(harmElec.value===3.14159){
|
||||
harmElecitem.color=noData;
|
||||
harmElec.value=1.555;
|
||||
}else if(harmElec.value>100){
|
||||
harmElecitem.color=green;
|
||||
harmElec.value=100;
|
||||
}else if (harmElec.value>90){
|
||||
harmElecitem.color=green;
|
||||
}else if (harmElec.value<60){
|
||||
harmElecitem.color=red;
|
||||
}else{
|
||||
harmElecitem.color=yellow;
|
||||
}
|
||||
harmElec.itemStyle=harmElecitem;
|
||||
|
||||
|
||||
iNeg.value=info.iNeg;
|
||||
if(iNeg.value===3.14159){
|
||||
iNegitem.color=noData;
|
||||
iNeg.value=1.555;
|
||||
}else if(iNeg.value>100){
|
||||
iNegitem.color=green;
|
||||
iNeg.value=100;
|
||||
}else if (iNeg.value>90){
|
||||
iNegitem.color=green;
|
||||
}else if (iNeg.value<60){
|
||||
iNegitem.color=red;
|
||||
}else{
|
||||
iNegitem.color=yellow;
|
||||
}
|
||||
iNeg.itemStyle=iNegitem;
|
||||
|
||||
inUharm.value=info.inUharm;
|
||||
if(inUharm.value===3.14159){
|
||||
inUharmitem.color=noData;
|
||||
inUharm.value=1.555;
|
||||
}else if(inUharm.value>100){
|
||||
inUharmitem.color=green;
|
||||
inUharm.value=100;
|
||||
}else if (inUharm.value>90){
|
||||
inUharmitem.color=green;
|
||||
}else if (inUharm.value<60){
|
||||
inUharmitem.color=red;
|
||||
}else{
|
||||
inUharmitem.color=yellow;
|
||||
}
|
||||
inUharm.itemStyle=inUharmitem;
|
||||
|
||||
|
||||
initWtzb(frequency,flicker,unbalanceVol,harmVoltage,deviationVol,harmElec,iNeg,inUharm);
|
||||
|
||||
if(info.frequency===3.14159){
|
||||
document.getElementById("data1").innerText = "(暂无数据)";
|
||||
}else if(info.frequency>100){
|
||||
document.getElementById("data1").innerText = "100";
|
||||
}else{
|
||||
document.getElementById("data1").innerText = info.frequency;
|
||||
}
|
||||
|
||||
if(info.flicker===3.14159){
|
||||
document.getElementById("data2").innerText = "(暂无数据)";
|
||||
}else if(info.flicker>100){
|
||||
document.getElementById("data2").innerText = "100";
|
||||
}else{
|
||||
document.getElementById("data2").innerText = info.flicker;
|
||||
}
|
||||
|
||||
if(info.uBalance===3.14159){
|
||||
document.getElementById("data3").innerText = "(暂无数据)";
|
||||
}else if(info.uBalance>100){
|
||||
document.getElementById("data3").innerText = "100";
|
||||
}else{
|
||||
document.getElementById("data3").innerText = info.uBalance;
|
||||
}
|
||||
|
||||
//计算谐波电压
|
||||
var harmVoltage =getHarmVoltageValue(info.uAberrance,info.evenVoltage,info.oddVoltage);
|
||||
if(harmVoltage===3.14159){
|
||||
document.getElementById("data4").innerText = "(暂无数据)";
|
||||
}else if(harmVoltage>100){
|
||||
document.getElementById("data4").innerText = "100";
|
||||
}else{
|
||||
document.getElementById("data4").innerText = Number(harmVoltage).toFixed(2);
|
||||
}
|
||||
|
||||
if(info.voltageDeviation===3.14159){
|
||||
document.getElementById("data5").innerText = "(暂无数据)";
|
||||
}else if(info.voltageDeviation>100){
|
||||
document.getElementById("data5").innerText = "100";
|
||||
}else{
|
||||
document.getElementById("data5").innerText = info.voltageDeviation;
|
||||
}
|
||||
//计算谐波电流
|
||||
var harmElec=getHarmElecValue(info.oddElectric,info.evenElectric);
|
||||
if(harmElec===3.14159){
|
||||
document.getElementById("data6").innerText = "(暂无数据)";
|
||||
}else if(harmElec>100){
|
||||
document.getElementById("data6").innerText = "100";
|
||||
}else{
|
||||
document.getElementById("data6").innerText = harmElec;
|
||||
}
|
||||
|
||||
if(info.iNeg===3.14159){
|
||||
document.getElementById("data7").innerText = "(暂无数据)";
|
||||
}else if(info.iNeg>100){
|
||||
document.getElementById("data7").innerText = "100";
|
||||
}else{
|
||||
document.getElementById("data7").innerText = info.iNeg;
|
||||
}
|
||||
|
||||
if(info.inUharm===3.14159){
|
||||
document.getElementById("data8").innerText = "(暂无数据)";
|
||||
}else if(info.inUharm>100){
|
||||
document.getElementById("data8").innerText = "100";
|
||||
}else{
|
||||
document.getElementById("data8").innerText = info.inUharm;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//初始化通信状态
|
||||
function initWtzb(frequency,flicker,unbalanceVol,harmVoltage,deviationVol,harmElec,iNeg,inUharm) {
|
||||
$("#wtzb").css("height",picHeight);
|
||||
echarts.dispose($("#wtzb")[0]);
|
||||
var wtzbOption = echarts.init($("#wtzb")[0]);
|
||||
var max=100;
|
||||
var labels = ['频率偏差', '闪变','电压不平衡', '谐波电压', '电压偏差', '谐波电流', '负序电流', '间谐波电压含有率'];
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色,
|
||||
title: {
|
||||
text: '稳态指标合格率',
|
||||
x: 'center'
|
||||
},
|
||||
grid:{
|
||||
left:'4%',
|
||||
right:'2%',
|
||||
bottom:'10%'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color=params[0].color;
|
||||
var tips="";
|
||||
if(color===noData){
|
||||
tips+='(暂无数据)';
|
||||
}else{
|
||||
tips+=params[0].value;
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
data: ['小于60','60~90','大于90'],
|
||||
selectedMode: false,
|
||||
x: 'left'
|
||||
},
|
||||
toolbox: {
|
||||
show : true,
|
||||
feature : {
|
||||
saveAsImage : {show: true}
|
||||
},
|
||||
right:'2%'
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: labels,
|
||||
splitLine: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
max:max
|
||||
}],
|
||||
series: [{
|
||||
name: '小于60',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '60~90',
|
||||
type: 'bar',
|
||||
data: [frequency,flicker,unbalanceVol,harmVoltage,deviationVol,harmElec,iNeg,inUharm],
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '大于90',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
}],
|
||||
color:[red,yellow,green]
|
||||
};
|
||||
|
||||
wtzbOption.setOption(option);
|
||||
}
|
||||
|
||||
function getSteadyTB(startTime,endTime,laststartTime,lastendTime,lineIndex,selector){
|
||||
var i;
|
||||
$.ajax({
|
||||
url:'/pqs9000/device/steadyTB',
|
||||
data:{
|
||||
startTime:startTime,
|
||||
endTime:endTime,
|
||||
laststartTime:laststartTime,
|
||||
lastendTime:lastendTime,
|
||||
lineIndex:lineIndex
|
||||
},
|
||||
type:'post',
|
||||
dataType:'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success:function (data) {
|
||||
if (data.code===500|data.body===null){
|
||||
initWtzbTB(null);
|
||||
}else{
|
||||
var info = data.body;
|
||||
var thisvalue0,thisvalue1,thisvalue2,thisvalue3,thisvalue4,thisvalue5,thisvalue6,thisvalue7;
|
||||
var lastvalue0,lastvalue1,lastvalue2,lastvalue3,lastvalue4,lastvalue5,lastvalue6,lastvalue7;
|
||||
|
||||
var thisTime=[];
|
||||
if(info[0].frequency===3.14159){
|
||||
thisTime.push(1.555);
|
||||
thisvalue0="暂无数据";
|
||||
}else if(info[0].frequency>100){
|
||||
thisTime.push(100);
|
||||
thisvalue0="100";
|
||||
}else{
|
||||
thisTime.push(info[0].frequency);
|
||||
thisvalue0 = info[0].frequency;
|
||||
}
|
||||
if(info[0].flicker===3.14159){
|
||||
thisTime.push(1.555);
|
||||
thisvalue1="暂无数据";
|
||||
}else if(info[0].flicker>100){
|
||||
thisTime.push(100);
|
||||
thisvalue1="100";
|
||||
}else{
|
||||
thisTime.push(info[0].flicker);
|
||||
thisvalue1 = info[0].flicker;
|
||||
}
|
||||
if(info[0].uBalance===3.14159){
|
||||
thisTime.push(1.555);
|
||||
thisvalue2="暂无数据";
|
||||
}else if(info[0].uBalance>100){
|
||||
thisTime.push(100);
|
||||
thisvalue2="100";
|
||||
}else{
|
||||
thisTime.push(info[0].uBalance);
|
||||
thisvalue2 = info[0].uBalance;
|
||||
}
|
||||
//获取谐波电压
|
||||
var harmVoltage =getHarmVoltageValue(info[0].uAberrance,info[0].evenVoltage,info[0].oddVoltage);
|
||||
if(harmVoltage===3.14159){
|
||||
thisTime.push(1.555);
|
||||
thisvalue3="暂无数据";
|
||||
}else if(harmVoltage>100){
|
||||
thisTime.push(100);
|
||||
thisvalue3="100";
|
||||
}else{
|
||||
thisTime.push(harmVoltage);
|
||||
thisvalue3 = harmVoltage;
|
||||
}
|
||||
|
||||
if(info[0].voltageDeviation===3.14159){
|
||||
thisTime.push(1.555);
|
||||
thisvalue4="暂无数据";
|
||||
}else if(info[0].voltageDeviation>100){
|
||||
thisTime.push(100);
|
||||
thisvalue4="100";
|
||||
}else{
|
||||
thisTime.push(info[0].voltageDeviation);
|
||||
thisvalue4 = info[0].voltageDeviation;
|
||||
}
|
||||
//获取谐波电流
|
||||
var harmElec=getHarmElecValue(info[0].oddElectric,info[0].evenElectric);
|
||||
if(harmElec===3.14159){
|
||||
thisTime.push(1.555);
|
||||
thisvalue5="暂无数据";
|
||||
}else if(harmElec>100){
|
||||
thisTime.push(100);
|
||||
thisvalue5="100";
|
||||
}else{
|
||||
thisTime.push(harmElec);
|
||||
thisvalue5 = harmElec;
|
||||
}
|
||||
|
||||
if(info[0].iNeg===3.14159){
|
||||
thisTime.push(1.555);
|
||||
thisvalue6="暂无数据";
|
||||
}else if(info[0].iNeg>100){
|
||||
thisTime.push(100);
|
||||
thisvalue6="100";
|
||||
}else{
|
||||
thisTime.push(info[0].iNeg);
|
||||
thisvalue6 = info[0].iNeg;
|
||||
}
|
||||
if(info[0].inUharm===3.14159){
|
||||
thisTime.push(1.555);
|
||||
thisvalue7="暂无数据";
|
||||
}else if(info[0].inUharm>100){
|
||||
thisTime.push(100);
|
||||
thisvalue7="100";
|
||||
}else{
|
||||
thisTime.push(info[0].inUharm);
|
||||
thisvalue7 = info[0].inUharm;
|
||||
}
|
||||
|
||||
|
||||
var lastTime=[];
|
||||
if(info[1].frequency===3.14159){
|
||||
lastTime.push(1.555);
|
||||
lastvalue0="暂无数据";
|
||||
}else if(info[1].frequency>100){
|
||||
lastTime.push(100);
|
||||
lastvalue0="100";
|
||||
}else{
|
||||
lastTime.push(info[1].frequency);
|
||||
lastvalue0 = info[1].frequency;
|
||||
}
|
||||
if(info[1].flicker===3.14159){
|
||||
lastTime.push(1.555);
|
||||
lastvalue1="暂无数据";
|
||||
}else if(info[1].flicker>100){
|
||||
lastTime.push(100);
|
||||
lastvalue1="100";
|
||||
}else{
|
||||
lastTime.push(info[1].flicker);
|
||||
lastvalue1 = info[1].flicker;
|
||||
}
|
||||
if(info[1].uBalance===3.14159){
|
||||
lastTime.push(1.555);
|
||||
lastvalue2="暂无数据";
|
||||
}else if(info[1].uBalance>100){
|
||||
lastTime.push(100);
|
||||
lastvalue2="100";
|
||||
}else{
|
||||
lastTime.push(info[1].uBalance);
|
||||
lastvalue2 = info[1].uBalance;
|
||||
}
|
||||
//获取谐波电压
|
||||
var harmVoltage =getHarmVoltageValue(info[1].uAberrance,info[1].evenVoltage,info[1].oddVoltage);
|
||||
if(harmVoltage===3.14159){
|
||||
lastTime.push(1.555);
|
||||
lastvalue3="暂无数据";
|
||||
}else if(harmVoltage>100){
|
||||
lastTime.push(100);
|
||||
lastvalue3="100";
|
||||
}else{
|
||||
lastTime.push(harmVoltage);
|
||||
lastvalue3 = harmVoltage;
|
||||
}
|
||||
|
||||
if(info[1].voltageDeviation===3.14159){
|
||||
lastTime.push(1.555);
|
||||
lastvalue4="暂无数据";
|
||||
}else if(info[1].voltageDeviation>100){
|
||||
lastTime.push(100);
|
||||
lastvalue4="100";
|
||||
}else{
|
||||
lastTime.push(info[1].voltageDeviation);
|
||||
lastvalue4 = info[1].voltageDeviation;
|
||||
}
|
||||
//获取谐波电流
|
||||
var harmElec=getHarmElecValue(info[1].oddElectric,info[1].evenElectric);
|
||||
if(harmElec===3.14159){
|
||||
lastTime.push(1.555);
|
||||
lastvalue5="暂无数据";
|
||||
}else if(harmElec>100){
|
||||
lastTime.push(100);
|
||||
lastvalue5="100";
|
||||
}else{
|
||||
lastTime.push(harmElec);
|
||||
lastvalue5 = harmElec;
|
||||
}
|
||||
if(info[1].iNeg===3.14159){
|
||||
lastTime.push(1.555);
|
||||
lastvalue6="暂无数据";
|
||||
}else if(info[1].iNeg>100){
|
||||
lastTime.push(100);
|
||||
lastvalue6="100";
|
||||
}else{
|
||||
lastTime.push(info[1].iNeg);
|
||||
lastvalue6 = info[1].iNeg;
|
||||
}
|
||||
if(info[1].inUharm===3.14159){
|
||||
lastTime.push(1.555);
|
||||
lastvalue7="暂无数据";
|
||||
}else if(info[1].inUharm>100){
|
||||
lastTime.push(100);
|
||||
lastvalue7="100";
|
||||
}else{
|
||||
lastTime.push(info[1].inUharm);
|
||||
lastvalue7 = info[1].inUharm;
|
||||
}
|
||||
|
||||
initWtzbTB(thisTime,lastTime,selector);
|
||||
document.getElementById("data1").innerText = thisvalue0+"/"+lastvalue0;
|
||||
document.getElementById("data2").innerText = thisvalue1+"/"+lastvalue1;
|
||||
document.getElementById("data3").innerText = thisvalue2+"/"+lastvalue2;
|
||||
document.getElementById("data4").innerText = thisvalue3+"/"+lastvalue3;
|
||||
document.getElementById("data5").innerText = thisvalue4+"/"+lastvalue4;
|
||||
document.getElementById("data6").innerText = thisvalue5+"/"+lastvalue5;
|
||||
document.getElementById("data7").innerText = thisvalue6+"/"+lastvalue6;
|
||||
document.getElementById("data8").innerText = thisvalue7+"/"+lastvalue7;
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function initWtzbTB(thisTime,lastTime,selector) {
|
||||
$("#wtzb").css("height",picHeight);
|
||||
echarts.dispose($("#wtzb")[0]);
|
||||
var wtzbOption = echarts.init($("#wtzb")[0]);
|
||||
|
||||
var max=100;
|
||||
|
||||
var labels = ['频率偏差','闪变', '电压不平衡', '谐波电压', '电压偏差', '谐波电流', '负序电流', '间谐波电压含有率'];
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色,
|
||||
title: {
|
||||
text: '稳态指标合格率('+selector+')',
|
||||
x: 'center'
|
||||
},
|
||||
grid:{
|
||||
left:'4%',
|
||||
right:'2%',
|
||||
bottom:'10%'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
console.log(params)
|
||||
var value0=params[0].value;
|
||||
var value1=params[1].value;
|
||||
var tips="";
|
||||
if(value0===1.555){
|
||||
tips+=legend1+':'+'暂无数据'+'<br/>';
|
||||
}else{
|
||||
tips+=legend1+':'+value0+'%'+'<br/>';
|
||||
}
|
||||
if(value1===1.555){
|
||||
tips+=legend2+':'+'暂无数据';
|
||||
}else{
|
||||
tips+=legend2+':'+value1+'%';
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
data: [legend1,legend2],
|
||||
selectedMode: false,
|
||||
x: 'left'
|
||||
},
|
||||
toolbox: {
|
||||
show : true,
|
||||
feature : {
|
||||
saveAsImage : {show: true}
|
||||
},
|
||||
right:'2%'
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: labels,
|
||||
splitLine: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
max:max
|
||||
}],
|
||||
series: [{
|
||||
name: legend1,
|
||||
type: 'bar',
|
||||
data: thisTime,
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: legend2,
|
||||
type: 'bar',
|
||||
data: lastTime,
|
||||
barMaxWidth: barMax
|
||||
}],
|
||||
color:[yellow,blue]
|
||||
};
|
||||
|
||||
wtzbOption.setOption(option);
|
||||
}
|
||||
|
||||
function getHarmVoltageValue(uAberrance,oddVoltage,evenVoltage) {
|
||||
var value=uAberrance+oddVoltage+evenVoltage;
|
||||
value=value/3;
|
||||
return Number(value.toFixed(5));
|
||||
|
||||
}
|
||||
|
||||
function getHarmElecValue(oddElectric,evenElectric) {
|
||||
var value=oddElectric+evenElectric;
|
||||
value=value/2;
|
||||
return Number(value.toFixed(5));
|
||||
}
|
||||
523
pqs9000/src/main/webapp/jspJS/monitor/yxzt.js
Normal file
523
pqs9000/src/main/webapp/jspJS/monitor/yxzt.js
Normal file
@@ -0,0 +1,523 @@
|
||||
var picHeight,color;
|
||||
var endTime=getEndTime();
|
||||
var startTime=getStartTime("月份",endTime);
|
||||
var lineIndex=window.parent.document.getElementById("lineIndex").value;
|
||||
$("#interval").val("月份");
|
||||
startTime=filterXSS(startTime);
|
||||
endTime=filterXSS(endTime);
|
||||
lineIndex=filterXSS(lineIndex);
|
||||
window.parent.parent.thisUrl = "yxzt"
|
||||
$(function () {
|
||||
getThemeColor();
|
||||
$("#startTime").val(startTime);
|
||||
picHeight=$(window).height()-40;
|
||||
|
||||
getYxzt(startTime,endTime,lineIndex);
|
||||
getRun(lineIndex,startTime,endTime);
|
||||
})
|
||||
|
||||
$("#interval").change(function(){
|
||||
if($("#interval").val() == "年份" || $("#interval").val() == "周" || $("#interval").val() == "自定义"){
|
||||
document.getElementById("hb").style.display="none";
|
||||
}else{
|
||||
document.getElementById("hb").style.display="";
|
||||
}
|
||||
|
||||
if($("#interval").val() == "周" || $("#interval").val() == "自定义"){
|
||||
document.getElementById("tb").style.display="none";
|
||||
}else{
|
||||
document.getElementById("tb").style.display="";
|
||||
}
|
||||
})
|
||||
$("#query").click(function (){
|
||||
document.getElementById("res").style.display="none";
|
||||
startTime=$("#startTime").val();
|
||||
endTime=$("#endTime").val();
|
||||
getYxzt(startTime,endTime,lineIndex);
|
||||
getRun(lineIndex,startTime,endTime);
|
||||
})
|
||||
|
||||
$("#tb").click(function (){
|
||||
document.getElementById("res").style.display="";
|
||||
var legend1,legend2;
|
||||
endTime=$("#endTime").val();
|
||||
startTime=$("#startTime").val();
|
||||
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
|
||||
var syear=year - 1;
|
||||
var laststartTime=syear + '-' + month + '-01';
|
||||
|
||||
var emonth = parseInt(endTime.substring(5, 7));
|
||||
var eday=new Date(syear, emonth, 0).getDate();
|
||||
var lastendTime=syear + '-' + emonth + '-' + eday;
|
||||
|
||||
if(month==emonth){
|
||||
legend1 = year+'年'+month+'月';
|
||||
legend2 = syear+'年'+month+'月';
|
||||
}else{
|
||||
legend1 = year+'年'+month+'-'+emonth+'月';
|
||||
legend2 = syear+'年'+month+'-'+emonth+'月';
|
||||
}
|
||||
getYxztTB(startTime,endTime,laststartTime,lastendTime,lineIndex,legend1,legend2);
|
||||
})
|
||||
|
||||
$("#hb").click(function (){
|
||||
document.getElementById("res").style.display="";
|
||||
var legend1,legend2;
|
||||
var interval = $("#interval").val();
|
||||
endTime=$("#endTime").val();
|
||||
startTime=$("#startTime").val();
|
||||
|
||||
if(interval == "月份"){
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
if (month == 1) {
|
||||
legend1 =year+'年'+ month+'月';
|
||||
year = year-1;
|
||||
var laststartTime=year + "-12-01";
|
||||
|
||||
var lastendTime=year + "-12-31";
|
||||
legend2 = year+'年12月';
|
||||
}else if (month <= 10) {
|
||||
var smonth=month-1;
|
||||
var laststartTime=year + '-0' + smonth + '-01';
|
||||
|
||||
var eday=new Date(year, smonth, 0).getDate();
|
||||
var lastendTime=year + '-0' + smonth + '-' + eday;
|
||||
legend1 = year+'年'+ month+'月';
|
||||
legend2 = year+'年'+ smonth+'月';
|
||||
}else{
|
||||
var smonth=month-1;
|
||||
var laststartTime=year + '-' + smonth + '-01';
|
||||
|
||||
var eday=new Date(year, smonth, 0).getDate();
|
||||
var lastendTime=year + '-' + smonth + '-' + eday;
|
||||
legend1 = year+'年'+ month+'月';
|
||||
legend2 = year+'年'+ smonth+'月';
|
||||
}
|
||||
getYxztTB(startTime,endTime,laststartTime,lastendTime,lineIndex,legend1,legend2);
|
||||
}else if(interval == "季度"){
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
if (month == 1) {
|
||||
var lastyear = year-1;
|
||||
var laststartTime=year + "-10-01";
|
||||
|
||||
var lastendTime=year + "-12-31";
|
||||
legend1 = year+'年1-3月';
|
||||
legend2 = lastyear+'年10-12月';
|
||||
}else{
|
||||
var month1=month+2;
|
||||
var smonth=month-3;
|
||||
var laststartTime=year + '-' + smonth + '-01';
|
||||
|
||||
var emonth=smonth+2;
|
||||
var eday=new Date(year, emonth, 0).getDate();
|
||||
var lastendTime=year + '-' + emonth + '-' + eday;
|
||||
legend1 = year+'年'+ month+'-'+month1+'月';
|
||||
legend2 = year+'年'+ smonth+'-'+emonth+'月';
|
||||
}
|
||||
getYxztTB(startTime,endTime,laststartTime,lastendTime,lineIndex,legend1,legend2);
|
||||
}
|
||||
})
|
||||
|
||||
$("#res").click(function (){
|
||||
document.getElementById("res").style.display="none";
|
||||
startTime=$("#startTime").val();
|
||||
endTime=$("#endTime").val();
|
||||
getYxzt(startTime,endTime,lineIndex);
|
||||
})
|
||||
|
||||
function getYxzt(startTime,endTime,lineIndex){
|
||||
$.ajax({
|
||||
url:'/pqs9000/device/yxzt',
|
||||
data:{
|
||||
startTime:startTime,
|
||||
endTime:endTime,
|
||||
lineIndex:lineIndex
|
||||
},
|
||||
type:'post',
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
var onlineRate=[]
|
||||
var company=[];
|
||||
if (data.code===500|data.body===null){
|
||||
onlineRate.push(0);
|
||||
company.push(0);
|
||||
initYxzt(onlineRate,company);
|
||||
}else{
|
||||
if(data.body[0]>100){
|
||||
onlineRate.push(100);
|
||||
}else{
|
||||
onlineRate.push(data.body[0]);
|
||||
}
|
||||
if(data.body[1]>100){
|
||||
company.push(100);
|
||||
}else{
|
||||
company.push(data.body[1]);
|
||||
}
|
||||
initYxzt(onlineRate,company);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function getRun(lineIndex,startTime,endTime){
|
||||
var layii=0;
|
||||
$.ajax({
|
||||
type : 'POST',
|
||||
dataType : "json",
|
||||
cache : false,
|
||||
data:{
|
||||
lineIndex:lineIndex,
|
||||
startTime:startTime,
|
||||
endTime:endTime
|
||||
},
|
||||
beforeSend: function () {
|
||||
layii = ityzl_SHOW_LOAD_LAYER_PARENT();
|
||||
},
|
||||
url : '/pqs9000/device/runInfo',
|
||||
success : function(data) {
|
||||
var list = [];
|
||||
if (data.code===200){
|
||||
for( var i = 0; i < data.body.length; i++){
|
||||
var point=[];
|
||||
var xx=data.body[i].time;
|
||||
var yy=data.body[i].sbzt;
|
||||
point = [xx,yy];
|
||||
list.push(point);
|
||||
}
|
||||
initRun(list);
|
||||
}else {
|
||||
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER_PARENT(layii);
|
||||
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
function getYxztTB(startTime,endTime,laststartTime,lastendTime,lineIndex,legend1,legend2){
|
||||
$.ajax({
|
||||
url:'/pqs9000/device/yxztTB',
|
||||
data:{
|
||||
startTime:startTime,
|
||||
endTime:endTime,
|
||||
laststartTime:laststartTime,
|
||||
lastendTime:lastendTime,
|
||||
lineIndex:lineIndex
|
||||
},
|
||||
type:'post',
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
var onlineRate=[];
|
||||
var company=[];
|
||||
if (data.code===500|data.body===null){
|
||||
onlineRate.push(0);
|
||||
company.push(0);
|
||||
onlineRate.push(0);
|
||||
company.push(0);
|
||||
initYxztTB(onlineRate,company,legend1,legend2);
|
||||
}else{
|
||||
if(data.body[0]>100){
|
||||
onlineRate.push(100);
|
||||
}else{
|
||||
onlineRate.push(data.body[0]);
|
||||
}
|
||||
if(data.body[2]>100){
|
||||
onlineRate.push(100);
|
||||
}else{
|
||||
onlineRate.push(data.body[2]);
|
||||
}
|
||||
if(data.body[1]>100){
|
||||
company.push(100);
|
||||
}else{
|
||||
company.push(data.body[1]);
|
||||
}
|
||||
if(data.body[3]>100){
|
||||
company.push(100);
|
||||
}else{
|
||||
company.push(data.body[3]);
|
||||
}
|
||||
|
||||
initYxztTB(onlineRate,company,legend1,legend2);
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function initYxzt(onlineRate,company) {
|
||||
$("#yxzt").css("height",picHeight);
|
||||
echarts.dispose($("#yxzt")[0]);
|
||||
var yxztOption = echarts.init($("#yxzt")[0]);
|
||||
var lineName = $(window.parent.document).find("#lineName").val();
|
||||
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色,
|
||||
legend: {
|
||||
data: ['在线率','数据完整性'],
|
||||
selectedMode: false,
|
||||
x: 'left'
|
||||
},
|
||||
toolbox: {
|
||||
show : true,
|
||||
feature : {
|
||||
saveAsImage : {
|
||||
name: '运行状态统计',
|
||||
show: true
|
||||
}
|
||||
},
|
||||
right:'5%'
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: [lineName],
|
||||
splitLine: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
max:'100',
|
||||
name: '%'
|
||||
}],
|
||||
series: [{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
data: onlineRate,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
label: {show: true, position: 'top'}
|
||||
}
|
||||
},
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '数据完整性',
|
||||
type: 'bar',
|
||||
data: company,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
label: {show: true, position: 'top'}
|
||||
}
|
||||
},
|
||||
barMaxWidth: barMax
|
||||
}],
|
||||
color:[blue,yellow]
|
||||
};
|
||||
|
||||
yxztOption.setOption(option);
|
||||
}
|
||||
|
||||
function initRun(list) {
|
||||
var interval ;
|
||||
if(list.length > 2){
|
||||
interval = 1;
|
||||
}else{
|
||||
interval = 0;
|
||||
}
|
||||
$("#sszt").css('height',picHeight);
|
||||
Highcharts.setOptions({ global: { useUTC: false } });
|
||||
Highcharts.stockChart('sszt', {
|
||||
title: {
|
||||
text: '运行状态',
|
||||
floating:true,
|
||||
style:{fontSize: "14px"}
|
||||
},
|
||||
rangeSelector:{
|
||||
enabled:false,
|
||||
},
|
||||
chart:{
|
||||
backgroundColor:canvasBG
|
||||
},
|
||||
//导出选中背景色
|
||||
navigation: {
|
||||
menuItemHoverStyle: {
|
||||
background: color,
|
||||
color: "#ffffff"
|
||||
},
|
||||
},
|
||||
//导航器各项属性设置
|
||||
navigator: {
|
||||
margin: 1,
|
||||
xAxis: {
|
||||
labels: {
|
||||
format: '{value:%Y-%m-%d %H:%M}'
|
||||
}
|
||||
},
|
||||
series: [{
|
||||
data: list
|
||||
}]
|
||||
},
|
||||
scrollbar : {
|
||||
enabled : false
|
||||
},
|
||||
plotOptions: {
|
||||
line: {
|
||||
dataGrouping: {
|
||||
enabled: false
|
||||
}
|
||||
}
|
||||
},
|
||||
exporting:{
|
||||
enabled:true,
|
||||
filename:'运行状态'
|
||||
},
|
||||
credits:false,
|
||||
colors:[red],
|
||||
|
||||
tooltip: {
|
||||
trigger : 'item',
|
||||
borderColor:grey,
|
||||
backgroundColor:'rgba(105,105,105,0.7)',
|
||||
style:{
|
||||
color:'white',
|
||||
fontSize: "15px",
|
||||
padding: 10,
|
||||
},
|
||||
formatter: function () {
|
||||
var s = '<b>时间:' + Highcharts.dateFormat('%Y-%m-%d %H:%M', this.x) + '</b>';
|
||||
var y=this.y;
|
||||
var yd;
|
||||
if (y===0){
|
||||
yd='中断';
|
||||
}else if (y===-1){
|
||||
yd='退出';
|
||||
}else{
|
||||
yd='正常';
|
||||
}
|
||||
$.each(this.points, function () {
|
||||
s += '<br/>' + this.series.name + ': ' +yd;
|
||||
});
|
||||
return s;
|
||||
},
|
||||
shared: true
|
||||
},
|
||||
xAxis:{
|
||||
// labels: {
|
||||
// format: '{value:%m-%d %H:%M}'
|
||||
// }
|
||||
tickInterval: interval,
|
||||
type: 'datetime',
|
||||
dateTimeLabelFormats: {
|
||||
second: '%H:%M:%S',
|
||||
minute: '%H:%M',
|
||||
hour: '%H:%M',
|
||||
day: '%m-%d',
|
||||
week: '%m-%d',
|
||||
month: '%Y-%m',
|
||||
year: '%Y'
|
||||
}
|
||||
},
|
||||
yAxis: {
|
||||
opposite:false,
|
||||
allowDecimals:false,
|
||||
max:1.1,
|
||||
min:-1,
|
||||
labels:{
|
||||
formatter:function () {
|
||||
var y=this.value;
|
||||
var yd;
|
||||
if (y===0){
|
||||
yd='中断';
|
||||
}else if (y===-1){
|
||||
yd='退出';
|
||||
}else{
|
||||
yd='正常';
|
||||
}
|
||||
return yd;
|
||||
}
|
||||
}
|
||||
},
|
||||
legend: {
|
||||
align: 'left',
|
||||
verticalAlign: 'top',
|
||||
enabled:true
|
||||
},
|
||||
series: [{
|
||||
type:'line',
|
||||
turboThreshold:0,
|
||||
lineWidth:1,
|
||||
marker: {
|
||||
symbol: 'circle'
|
||||
},
|
||||
name: '运行状态',
|
||||
data: list
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
function initYxztTB(onlineRate,company,legend1,legend2) {
|
||||
$("#yxzt").css("height",picHeight);
|
||||
echarts.dispose($("#yxzt")[0]);
|
||||
var yxztOption = echarts.init($("#yxzt")[0]);
|
||||
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色,
|
||||
legend: {
|
||||
data: ['在线率','数据完整性'],
|
||||
selectedMode: false,
|
||||
x: 'left'
|
||||
},
|
||||
toolbox: {
|
||||
show : true,
|
||||
feature : {
|
||||
saveAsImage : {show: true}
|
||||
},
|
||||
right:'2%'
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: [legend1,legend2],
|
||||
splitLine: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
max:'100',
|
||||
name: '%'
|
||||
}],
|
||||
series: [{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
data: onlineRate,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
label: {show: true, position: 'top'}
|
||||
}
|
||||
},
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '数据完整性',
|
||||
type: 'bar',
|
||||
data: company,
|
||||
itemStyle: {
|
||||
normal: {
|
||||
label: {show: true, position: 'top'}
|
||||
}
|
||||
},
|
||||
barMaxWidth: barMax
|
||||
}],
|
||||
color:[blue,yellow]
|
||||
};
|
||||
|
||||
yxztOption.setOption(option);
|
||||
}
|
||||
|
||||
//获取主题颜色
|
||||
function getThemeColor() {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
color = data.body.value;
|
||||
}
|
||||
})
|
||||
}
|
||||
713
pqs9000/src/main/webapp/jspJS/monitor/zlpg.js
Normal file
713
pqs9000/src/main/webapp/jspJS/monitor/zlpg.js
Normal file
@@ -0,0 +1,713 @@
|
||||
var picHeight;
|
||||
var endTime=getEndTime();
|
||||
var startTime=getStartTime("月份",endTime);
|
||||
var lineIndex=window.parent.document.getElementById("lineIndex").value;
|
||||
startTime=filterXSS(startTime);
|
||||
endTime=filterXSS(endTime);
|
||||
lineIndex=filterXSS(lineIndex);
|
||||
window.parent.parent.thisUrl = "zlpg"
|
||||
$("#interval").val("月份");
|
||||
|
||||
$(function () {
|
||||
$("#startTime").val(startTime);
|
||||
picHeight=$(window).height()-170;
|
||||
|
||||
getSteady(startTime,endTime,lineIndex);
|
||||
})
|
||||
|
||||
$("#interval").change(function(){
|
||||
if($("#interval").val() == "年份" || $("#interval").val() == "周" || $("#interval").val() == "自定义"){
|
||||
document.getElementById("hb").style.display="none";
|
||||
}else{
|
||||
document.getElementById("hb").style.display="";
|
||||
}
|
||||
if($("#interval").val() == "周" || $("#interval").val() == "自定义"){
|
||||
document.getElementById("tb").style.display="none";
|
||||
}else{
|
||||
document.getElementById("tb").style.display="";
|
||||
}
|
||||
})
|
||||
$("#query").click(function (){
|
||||
document.getElementById("res").style.display="none";
|
||||
startTime=$("#startTime").val();
|
||||
endTime=$("#endTime").val();
|
||||
getSteady(startTime,endTime,lineIndex);
|
||||
})
|
||||
|
||||
$("#tb").click(function (){
|
||||
document.getElementById("res").style.display="";
|
||||
var legend1,legend2;
|
||||
var interval = $("#interval").val();
|
||||
endTime=$("#endTime").val();
|
||||
startTime=$("#startTime").val();
|
||||
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
|
||||
var syear=year - 1;
|
||||
var laststartTime=syear + '-' + month + '-01';
|
||||
|
||||
var emonth = parseInt(endTime.substring(5, 7));
|
||||
var eday=new Date(syear, emonth, 0).getDate();
|
||||
var lastendTime=syear + '-' + emonth + '-' + eday;
|
||||
|
||||
if(month==emonth){
|
||||
legend1 = year+'年'+month+'月';
|
||||
legend2 = syear+'年'+month+'月';
|
||||
}else{
|
||||
legend1 = year+'年'+month+'-'+emonth+'月';
|
||||
legend2 = syear+'年'+month+'-'+emonth+'月';
|
||||
}
|
||||
|
||||
getSteadyTB(startTime,endTime,laststartTime,lastendTime,lineIndex,legend1,legend2,"同比");
|
||||
})
|
||||
|
||||
$("#hb").click(function (){
|
||||
document.getElementById("res").style.display="";
|
||||
var legend1,legend2;
|
||||
var interval = $("#interval").val();
|
||||
endTime=$("#endTime").val();
|
||||
startTime=$("#startTime").val();
|
||||
|
||||
if(interval == "月份"){
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
if (month == 1) {
|
||||
var lastyear = year-1;
|
||||
var laststartTime=lastyear + "-12-01";
|
||||
|
||||
var lastendTime=lastyear + "-12-31";
|
||||
legend1 =year+'年'+ month+'月';
|
||||
legend2 = lastyear+'年12月';
|
||||
}else if (month <= 10) {
|
||||
var smonth=month-1;
|
||||
var laststartTime=year + '-0' + smonth + '-01';
|
||||
|
||||
var eday=new Date(year, smonth, 0).getDate();
|
||||
var lastendTime=year + '-0' + smonth + '-' + eday;
|
||||
legend1 =year+'年'+ month+'月';
|
||||
legend2 = year+'年'+ smonth+'月';
|
||||
}else{
|
||||
var smonth=month-1;
|
||||
var laststartTime=year + '-' + smonth + '-01';
|
||||
|
||||
var eday=new Date(year, smonth, 0).getDate();
|
||||
var lastendTime=year + '-' + smonth + '-' + eday;
|
||||
legend1 = year+'年'+ month+'月';
|
||||
legend2 = year+'年'+ smonth+'月';
|
||||
}
|
||||
getSteadyTB(startTime,endTime,laststartTime,lastendTime,lineIndex,legend1,legend2,"环比");
|
||||
}else if(interval == "季度"){
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
if (month == 1) {
|
||||
var lastyear = year-1;
|
||||
var laststartTime=year + "-10-01";
|
||||
|
||||
var lastendTime=year + "-12-31";
|
||||
legend1 = year+'年1-3月';
|
||||
legend2 = lastyear+'年10-12月';
|
||||
}else{
|
||||
var month1=month+2;
|
||||
var smonth=month-3;
|
||||
var laststartTime=year + '-' + smonth + '-01';
|
||||
|
||||
var emonth=smonth+2;
|
||||
var eday=new Date(year, emonth, 0).getDate();
|
||||
var lastendTime=year + '-' + emonth + '-' + eday;
|
||||
legend1 = year+'年'+ month+'-'+month1+'月';
|
||||
legend2 = year+'年'+ smonth+'-'+emonth+'月';
|
||||
}
|
||||
getSteadyTB(startTime,endTime,laststartTime,lastendTime,lineIndex,legend1,legend2,"环比");
|
||||
}
|
||||
})
|
||||
|
||||
$("#res").click(function (){
|
||||
document.getElementById("res").style.display="none";
|
||||
startTime=$("#startTime").val();
|
||||
endTime=$("#endTime").val();
|
||||
getSteady(startTime,endTime,lineIndex);
|
||||
})
|
||||
|
||||
function getSteady(startTime,endTime,lineIndex){
|
||||
var i;
|
||||
$.ajax({
|
||||
url:'/pqs9000/device/qualityAssess',
|
||||
data:{
|
||||
startTime:startTime,
|
||||
endTime:endTime,
|
||||
lineIndex:lineIndex
|
||||
},
|
||||
type:'post',
|
||||
dataType:'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success:function (data) {
|
||||
if (data.code===500|data.body===null){
|
||||
initZlpg(null);
|
||||
}else{
|
||||
// var vuDevs = data.body.vuDevs[0];
|
||||
// var dataPlt = data.body.dataPlt[0];
|
||||
// var freqDev = data.body.freqDev[0];
|
||||
// var vThdCp95 = data.body.vThdCp95[0];
|
||||
// var vunbalanceCp95 = data.body.vunbalanceCp95[0];
|
||||
|
||||
var syn={};var synitem={};
|
||||
var vuDevs={};var vuDevsitem={};
|
||||
var dataPlt={};var dataPltitem={};
|
||||
var freqDev={};var freqDevitem={};
|
||||
var vThdCp95={};var vThdCp95item={};
|
||||
var vunbalanceCp95={};var vunbalanceCp95item={};
|
||||
if(data.body.syn[0].data===3.14159){
|
||||
syn.value=0.151;
|
||||
document.getElementById("data0").innerText = "(暂无数据)";
|
||||
}else{
|
||||
syn.value=data.body.syn[0].data;
|
||||
document.getElementById("data0").innerText = data.body.syn[0].data;
|
||||
}
|
||||
if(data.body.vuDevs[0].data===3.14159){
|
||||
vuDevs.value=0.151;
|
||||
document.getElementById("data1").innerText = "(暂无数据)";
|
||||
}else{
|
||||
vuDevs.value=data.body.vuDevs[0].data;
|
||||
document.getElementById("data1").innerText = data.body.vuDevs[0].data;
|
||||
}
|
||||
if(data.body.dataPlt[0].data===3.14159){
|
||||
dataPlt.value=0.151;
|
||||
document.getElementById("data2").innerText = "(暂无数据)";
|
||||
}else{
|
||||
dataPlt.value=data.body.dataPlt[0].data;
|
||||
document.getElementById("data2").innerText = data.body.dataPlt[0].data;
|
||||
}
|
||||
if(data.body.freqDev[0].data===3.14159){
|
||||
freqDev.value=0.151;
|
||||
document.getElementById("data3").innerText = "(暂无数据)";
|
||||
}else{
|
||||
freqDev.value=data.body.freqDev[0].data;
|
||||
document.getElementById("data3").innerText = data.body.freqDev[0].data;
|
||||
}
|
||||
if(data.body.vThdCp95[0].data===3.14159){
|
||||
vThdCp95.value=0.151;
|
||||
document.getElementById("data4").innerText = "(暂无数据)";
|
||||
}else{
|
||||
vThdCp95.value=data.body.vThdCp95[0].data;
|
||||
document.getElementById("data4").innerText = data.body.vThdCp95[0].data;
|
||||
}
|
||||
if(data.body.vunbalanceCp95[0].data===3.14159){
|
||||
vunbalanceCp95.value=0.151;
|
||||
document.getElementById("data5").innerText = "(暂无数据)";
|
||||
}else{
|
||||
vunbalanceCp95.value=data.body.vunbalanceCp95[0].data;
|
||||
document.getElementById("data5").innerText = data.body.vunbalanceCp95[0].data;
|
||||
}
|
||||
var level0 = data.body.syn[0].level;
|
||||
var level1 = data.body.vuDevs[0].level;
|
||||
var level2 = data.body.dataPlt[0].level;
|
||||
var level3 = data.body.freqDev[0].level;
|
||||
var level4 = data.body.vThdCp95[0].level;
|
||||
var level5 = data.body.vunbalanceCp95[0].level;
|
||||
if(level0=="优质"){
|
||||
synitem.color="#2E8B56";
|
||||
}else if(level0=="良好"){
|
||||
synitem.color="#919B38";
|
||||
}else if(level0=="合格"){
|
||||
synitem.color="#C1A128";
|
||||
}else if(level0=="较差"){
|
||||
synitem.color="#C37024";
|
||||
}else if(level0=="极差"){
|
||||
synitem.color="#A52A2A";
|
||||
}else{
|
||||
synitem.color=noData;
|
||||
}
|
||||
syn.itemStyle=synitem;
|
||||
if(level1=="特质"){
|
||||
vuDevsitem.color="#2E8B56";
|
||||
}else if(level1=="优质"){
|
||||
vuDevsitem.color="#5E9346";
|
||||
}else if(level1=="优良"){
|
||||
vuDevsitem.color="#919B38";
|
||||
}else if(level1=="良好"){
|
||||
vuDevsitem.color="#C1A128";
|
||||
}else if(level1=="轻度污染"){
|
||||
vuDevsitem.color="#D39320";
|
||||
}else if(level1=="中度污染"){
|
||||
vuDevsitem.color="#C37024";
|
||||
}else if(level1=="重度污染"){
|
||||
vuDevsitem.color="#B54C26";
|
||||
}else if(level1=="极度污染"){
|
||||
vuDevsitem.color="#A52A2A";
|
||||
}else{
|
||||
vuDevsitem.color=noData;
|
||||
}
|
||||
vuDevs.itemStyle=vuDevsitem;
|
||||
|
||||
if(level2=="特质"){
|
||||
dataPltitem.color="#2E8B56";
|
||||
}else if(level2=="优质"){
|
||||
dataPltitem.color="#5E9346";
|
||||
}else if(level2=="优良"){
|
||||
dataPltitem.color="#919B38";
|
||||
}else if(level2=="良好"){
|
||||
dataPltitem.color="#C1A128";
|
||||
}else if(level2=="轻度污染"){
|
||||
dataPltitem.color="#D39320";
|
||||
}else if(level2=="中度污染"){
|
||||
dataPltitem.color="#C37024";
|
||||
}else if(level2=="重度污染"){
|
||||
dataPltitem.color="#B54C26";
|
||||
}else if(level2=="极度污染"){
|
||||
dataPltitem.color="#A52A2A";
|
||||
}else{
|
||||
dataPltitem.color=noData;
|
||||
}
|
||||
dataPlt.itemStyle=dataPltitem;
|
||||
|
||||
if(level3=="特质"){
|
||||
freqDevitem.color="#2E8B56";
|
||||
}else if(level3=="优质"){
|
||||
freqDevitem.color="#5E9346";
|
||||
}else if(level3=="优良"){
|
||||
freqDevitem.color="#919B38";
|
||||
}else if(level3=="良好"){
|
||||
freqDevitem.color="#C1A128";
|
||||
}else if(level3=="轻度污染"){
|
||||
freqDevitem.color="#D39320";
|
||||
}else if(level3=="中度污染"){
|
||||
freqDevitem.color="#C37024";
|
||||
}else if(level3=="重度污染"){
|
||||
freqDevitem.color="#B54C26";
|
||||
}else if(level3=="极度污染"){
|
||||
freqDevitem.color="#A52A2A";
|
||||
}else{
|
||||
freqDevitem.color=noData;
|
||||
}
|
||||
freqDev.itemStyle=freqDevitem;
|
||||
|
||||
if(level4=="特质"){
|
||||
vThdCp95item.color="#2E8B56";
|
||||
}else if(level4=="优质"){
|
||||
vThdCp95item.color="#5E9346";
|
||||
}else if(level4=="优良"){
|
||||
vThdCp95item.color="#919B38";
|
||||
}else if(level4=="良好"){
|
||||
vThdCp95item.color="#C1A128";
|
||||
}else if(level4=="轻度污染"){
|
||||
vThdCp95item.color="#D39320";
|
||||
}else if(level4=="中度污染"){
|
||||
vThdCp95item.color="#C37024";
|
||||
}else if(level4=="重度污染"){
|
||||
vThdCp95item.color="#B54C26";
|
||||
}else if(level4=="极度污染"){
|
||||
vThdCp95item.color="#A52A2A";
|
||||
}else{
|
||||
vThdCp95item.color=noData;
|
||||
}
|
||||
vThdCp95.itemStyle=vThdCp95item;
|
||||
|
||||
if(level5=="特质"){
|
||||
vunbalanceCp95item.color="#2E8B56";
|
||||
}else if(level5=="优质"){
|
||||
vunbalanceCp95item.color="#5E9346";
|
||||
}else if(level5=="优良"){
|
||||
vunbalanceCp95item.color="#919B38";
|
||||
}else if(level5=="良好"){
|
||||
vunbalanceCp95item.color="#C1A128";
|
||||
}else if(level5=="轻度污染"){
|
||||
vunbalanceCp95item.color="#D39320";
|
||||
}else if(level5=="中度污染"){
|
||||
vunbalanceCp95item.color="#C37024";
|
||||
}else if(level5=="重度污染"){
|
||||
vunbalanceCp95item.color="#B54C26";
|
||||
}else if(level5=="极度污染"){
|
||||
vunbalanceCp95item.color="#A52A2A";
|
||||
}else{
|
||||
vunbalanceCp95item.color=noData;
|
||||
}
|
||||
vunbalanceCp95.itemStyle=vunbalanceCp95item;
|
||||
initZlpg(syn,vuDevs,dataPlt,freqDev,vThdCp95,vunbalanceCp95);
|
||||
|
||||
document.getElementById("level0").innerText = data.body.syn[0].level;
|
||||
document.getElementById("level1").innerText = data.body.vuDevs[0].level;
|
||||
document.getElementById("level2").innerText = data.body.dataPlt[0].level;
|
||||
document.getElementById("level3").innerText = data.body.freqDev[0].level;
|
||||
document.getElementById("level4").innerText = data.body.vThdCp95[0].level;
|
||||
document.getElementById("level5").innerText = data.body.vunbalanceCp95[0].level;
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function initZlpg(syn,vuDevs,dataPlt,freqDev,vThdCp95,vunbalanceCp95) {
|
||||
$("#zlpg").css("height",picHeight);
|
||||
echarts.dispose($("#zlpg")[0]);
|
||||
var zlpgOption = echarts.init($("#zlpg")[0]);
|
||||
var labels = ['综合评估','电压偏差(%)', '电压闪变','频率偏差(Hz)','谐波含量(%)', '三相电压不平衡度(%)'];
|
||||
var max;
|
||||
if(vuDevs!=null && vuDevs.value==0.151 && syn!=null && syn.value==0.151
|
||||
&& dataPlt!=null && dataPlt.value==0.151 && freqDev!=null && freqDev.value==0.151
|
||||
&& vThdCp95!=null && vThdCp95.value==0.151 && vunbalanceCp95!=null && vunbalanceCp95.value==0.151){
|
||||
max=5;
|
||||
}else{
|
||||
max=null;
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色,
|
||||
title: {
|
||||
text: '电能质量评估',
|
||||
x: 'center'
|
||||
},
|
||||
grid:{
|
||||
left:'4%',
|
||||
right:'2%',
|
||||
bottom:'10%'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color=params[0].color;
|
||||
var tips="";
|
||||
if(color===noData){
|
||||
tips+='(暂无数据)';
|
||||
}else{
|
||||
tips+=params[0].value;
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
toolbox: {
|
||||
show : true,
|
||||
feature : {
|
||||
saveAsImage : {show: true}
|
||||
},
|
||||
right:'2%'
|
||||
},
|
||||
legend: {
|
||||
data: ['特质','优质','优良','良好','轻度污染','中度污染','重度污染','极度污染'],
|
||||
selectedMode: false,
|
||||
width:'360px',
|
||||
x: 'left'
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: labels,
|
||||
splitLine: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
max:max
|
||||
}],
|
||||
series: [{
|
||||
name: '特质',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '优质',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '优良',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '良好',
|
||||
type: 'bar',
|
||||
data: [syn,vuDevs,dataPlt,freqDev,vThdCp95,vunbalanceCp95],
|
||||
barWidth: barMax
|
||||
},{
|
||||
name: '轻度污染',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '中度污染',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '重度污染',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
},{
|
||||
name: '极度污染',
|
||||
type: 'bar',
|
||||
data: [],
|
||||
barMaxWidth: barMax
|
||||
}],
|
||||
color:["#2E8B56","#5E9346","#919B38","#C1A128","#D39320","#C37024","#B54C26","#A52A2A"]
|
||||
};
|
||||
zlpgOption.setOption(option);
|
||||
}
|
||||
|
||||
function getSteadyTB(startTime,endTime,laststartTime,lastendTime,lineIndex,legend1,legend2,title){
|
||||
var i;
|
||||
$.ajax({
|
||||
url:'/pqs9000/device/qualityAssessTB',
|
||||
data:{
|
||||
startTime:startTime,
|
||||
endTime:endTime,
|
||||
laststartTime:laststartTime,
|
||||
lastendTime:lastendTime,
|
||||
lineIndex:lineIndex
|
||||
},
|
||||
type:'post',
|
||||
dataType:'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success:function (data) {
|
||||
if (data.code===500|data.body===null){
|
||||
initZlpg(null);
|
||||
}else{
|
||||
var thisTime=[];
|
||||
if(data.body.syn[0].data==3.14159){
|
||||
thisTime.push(0.151);
|
||||
}else{
|
||||
thisTime.push(data.body.syn[0].data);
|
||||
}
|
||||
if(data.body.vuDevs[0].data==3.14159){
|
||||
thisTime.push(0.151);
|
||||
}else{
|
||||
thisTime.push(data.body.vuDevs[0].data);
|
||||
}
|
||||
if(data.body.dataPlt[0].data==3.14159){
|
||||
thisTime.push(0.151);
|
||||
}else{
|
||||
thisTime.push(data.body.dataPlt[0].data);
|
||||
}
|
||||
if(data.body.freqDev[0].data==3.14159){
|
||||
thisTime.push(0.151);
|
||||
}else{
|
||||
thisTime.push(data.body.freqDev[0].data);
|
||||
}
|
||||
if(data.body.vThdCp95[0].data==3.14159){
|
||||
thisTime.push(0.151);
|
||||
}else{
|
||||
thisTime.push(data.body.vThdCp95[0].data);
|
||||
}
|
||||
if(data.body.vunbalanceCp95[0].data==3.14159){
|
||||
thisTime.push(0.151);
|
||||
}else{
|
||||
thisTime.push(data.body.vunbalanceCp95[0].data);
|
||||
}
|
||||
|
||||
var lastTime=[];
|
||||
if(data.body.syn[1].data==3.14159){
|
||||
lastTime.push(0.151);
|
||||
}else{
|
||||
lastTime.push(data.body.syn[1].data);
|
||||
}
|
||||
if(data.body.vuDevs[1].data==3.14159){
|
||||
lastTime.push(0.151);
|
||||
}else{
|
||||
lastTime.push(data.body.vuDevs[1].data);
|
||||
}
|
||||
if(data.body.dataPlt[1].data==3.14159){
|
||||
lastTime.push(0.151);
|
||||
}else{
|
||||
lastTime.push(data.body.dataPlt[1].data);
|
||||
}
|
||||
if(data.body.freqDev[1].data==3.14159){
|
||||
lastTime.push(0.151);
|
||||
}else{
|
||||
lastTime.push(data.body.freqDev[1].data);
|
||||
}
|
||||
if(data.body.vThdCp95[1].data==3.14159){
|
||||
lastTime.push(0.151);
|
||||
}else{
|
||||
lastTime.push(data.body.vThdCp95[1].data);
|
||||
}
|
||||
if(data.body.vunbalanceCp95[1].data==3.14159){
|
||||
lastTime.push(0.151);
|
||||
}else{
|
||||
lastTime.push(data.body.vunbalanceCp95[1].data);
|
||||
}
|
||||
|
||||
initZlpgTB(thisTime,lastTime,legend1,legend2,title);
|
||||
|
||||
var thisvalue0,thisvalue1,thisvalue2,thisvalue3,thisvalue4,thisvalue5;
|
||||
var lastvalue0,lastvalue1,lastvalue2,lastvalue3,lastvalue4,lastvalue5;
|
||||
if(data.body.vuDevs[0].data==3.14159){
|
||||
thisvalue5="(暂无数据)";
|
||||
}else{
|
||||
thisvalue5=data.body.syn[0].data;
|
||||
}
|
||||
if(data.body.vuDevs[0].data==3.14159){
|
||||
thisvalue0="(暂无数据)";
|
||||
}else{
|
||||
thisvalue0=data.body.vuDevs[0].data;
|
||||
}
|
||||
if(data.body.dataPlt[0].data==3.14159){
|
||||
thisvalue1="(暂无数据)";
|
||||
}else{
|
||||
thisvalue1=data.body.dataPlt[0].data;
|
||||
}if(data.body.freqDev[0].data==3.14159){
|
||||
thisvalue2="(暂无数据)";
|
||||
}else{
|
||||
thisvalue2=data.body.freqDev[0].data;
|
||||
}if(data.body.vThdCp95[0].data==3.14159){
|
||||
thisvalue3="(暂无数据)";
|
||||
}else{
|
||||
thisvalue3=data.body.vThdCp95[0].data;
|
||||
}if(data.body.vunbalanceCp95[0].data==3.14159){
|
||||
thisvalue4="(暂无数据)";
|
||||
}else{
|
||||
thisvalue4=data.body.vunbalanceCp95[0].data;
|
||||
}
|
||||
|
||||
if(data.body.vuDevs[1].data==3.14159){
|
||||
lastvalue5="(暂无数据)";
|
||||
}else{
|
||||
lastvalue5=data.body.syn[1].data;
|
||||
}
|
||||
if(data.body.vuDevs[1].data==3.14159){
|
||||
lastvalue0="(暂无数据)";
|
||||
}else{
|
||||
lastvalue0=data.body.vuDevs[1].data;
|
||||
}
|
||||
if(data.body.dataPlt[1].data==3.14159){
|
||||
lastvalue1="(暂无数据)";
|
||||
}else{
|
||||
lastvalue1=data.body.dataPlt[1].data;
|
||||
}
|
||||
if(data.body.freqDev[1].data==3.14159){
|
||||
lastvalue2="(暂无数据)";
|
||||
}else{
|
||||
lastvalue2=data.body.freqDev[1].data;
|
||||
}
|
||||
if(data.body.vThdCp95[1].data==3.14159){
|
||||
lastvalue3="(暂无数据)";
|
||||
}else{
|
||||
lastvalue3=data.body.vThdCp95[1].data;
|
||||
}
|
||||
if(data.body.vunbalanceCp95[1].data==3.14159){
|
||||
lastvalue4="(暂无数据)";
|
||||
}else{
|
||||
lastvalue4=data.body.vunbalanceCp95[1].data;
|
||||
}
|
||||
|
||||
document.getElementById("data0").innerText = thisvalue5+"/"+lastvalue5;
|
||||
document.getElementById("level0").innerText = data.body.syn[0].level+"/"+data.body.syn[1].level;
|
||||
document.getElementById("data1").innerText = thisvalue0+"/"+lastvalue0;
|
||||
document.getElementById("level1").innerText = data.body.vuDevs[0].level+"/"+data.body.vuDevs[1].level;
|
||||
document.getElementById("data2").innerText = thisvalue1+"/"+lastvalue1;
|
||||
document.getElementById("level2").innerText = data.body.dataPlt[0].level+"/"+data.body.dataPlt[1].level;
|
||||
document.getElementById("data3").innerText = thisvalue2+"/"+lastvalue2;
|
||||
document.getElementById("level3").innerText = data.body.freqDev[0].level+"/"+data.body.freqDev[1].level;
|
||||
document.getElementById("data4").innerText = thisvalue3+"/"+lastvalue3;
|
||||
document.getElementById("level4").innerText = data.body.vThdCp95[0].level+"/"+data.body.vThdCp95[1].level;
|
||||
document.getElementById("data5").innerText = thisvalue4+"/"+lastvalue4;
|
||||
document.getElementById("level5").innerText = data.body.vunbalanceCp95[0].level+"/"+data.body.vunbalanceCp95[1].level;
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function initZlpgTB(thisTime,lastTime,legend1,legend2,select) {
|
||||
$("#zlpg").css("height",picHeight);
|
||||
echarts.dispose($("#zlpg")[0]);
|
||||
var zlpgOption = echarts.init($("#zlpg")[0]);
|
||||
var max;
|
||||
if(thisTime.length>0 && lastTime.length>0 && thisTime[0]==0.151 &&lastTime[0]==0.151 && thisTime[1]==0.151 &&lastTime[1]==0.151
|
||||
&& thisTime[2]==0.151 &&lastTime[2]==0.151 && thisTime[3]==0.151 &&lastTime[3]==0.151 && thisTime[4]==0.151 &&lastTime[4]==0.151
|
||||
&& thisTime[5]==0.151 &&lastTime[5]==0.151){
|
||||
max=5;
|
||||
}else{
|
||||
max=null;
|
||||
}
|
||||
var labels = ['综合评估','电压偏差(%)', '频率偏差(Hz)', '谐波含量(%)', '电压闪变', '三相电压不平衡度(%)'];
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色,
|
||||
title: {
|
||||
text: '电能质量评估('+select+')',
|
||||
x: 'center'
|
||||
},
|
||||
grid:{
|
||||
left:'4%',
|
||||
right:'2%',
|
||||
bottom:'10%'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var value0=params[0].value;
|
||||
var value1=params[1].value;
|
||||
var tips="";
|
||||
if(value0===0.151){
|
||||
tips+=legend1+':'+'暂无数据'+'<br/>';
|
||||
}else{
|
||||
tips+=legend1+':'+value0+'<br/>';
|
||||
}
|
||||
if(value1===0.151){
|
||||
tips+=legend2+':'+'暂无数据';
|
||||
}else{
|
||||
tips+=legend2+':'+value1;
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
toolbox: {
|
||||
show : true,
|
||||
feature : {
|
||||
saveAsImage : {show: true}
|
||||
},
|
||||
right:'2%'
|
||||
},
|
||||
legend: {
|
||||
data: [legend1,legend2],
|
||||
selectedMode: false,
|
||||
x: 'left'
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: labels,
|
||||
splitLine: {
|
||||
show: false
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
max:max
|
||||
}],
|
||||
series: [{
|
||||
name: legend1,
|
||||
type: 'bar',
|
||||
data: thisTime,
|
||||
barMaxWidth: barMax,
|
||||
},{
|
||||
name: legend2,
|
||||
type: 'bar',
|
||||
data: lastTime,
|
||||
barMaxWidth: barMax,
|
||||
}],
|
||||
color:[yellow,blue]
|
||||
};
|
||||
|
||||
zlpgOption.setOption(option);
|
||||
}
|
||||
|
||||
function zlpgMouseOver(){
|
||||
var divinfo= document.getElementById("zlpgbz");
|
||||
divinfo.style.display = "";
|
||||
}
|
||||
|
||||
function zlpgMouseOut(){
|
||||
var divinfo= document.getElementById("zlpgbz");
|
||||
divinfo.style.display = "none";
|
||||
}
|
||||
418
pqs9000/src/main/webapp/jspJS/overview/dataIntegrality.js
Normal file
418
pqs9000/src/main/webapp/jspJS/overview/dataIntegrality.js
Normal file
@@ -0,0 +1,418 @@
|
||||
var picHeight, endTime, startTime, allData;
|
||||
var tiggleValue = "";
|
||||
var buttonname;
|
||||
var companyname;
|
||||
$(function () {
|
||||
var end = getEndTime();
|
||||
var start = getMonthStartTime(end);
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
data:{
|
||||
start: start,
|
||||
end: end
|
||||
},
|
||||
async:false,
|
||||
url: "/pqs9000/device/getMsgInfo",
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
buttonname = data.body.name;
|
||||
tiggleValue = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
companyname = data.body.name;
|
||||
}
|
||||
})
|
||||
|
||||
//数据完整性开关触发的函数
|
||||
$(".wanzheng").bootstrapSwitch({
|
||||
onText: buttonname, // 设置ON文本
|
||||
offText: companyname, // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state == true) {
|
||||
tiggleValue = buttonname;
|
||||
} else {
|
||||
tiggleValue = companyname;
|
||||
}
|
||||
//重新画图
|
||||
reDrawAllPic();
|
||||
}
|
||||
});
|
||||
|
||||
var i;
|
||||
picHeight = $(window).height() * 0.5 - 5;
|
||||
endTime = getEndTime();
|
||||
startTime = getMonthStartTime(endTime);
|
||||
$.ajax({
|
||||
url: '/pqs9000/overview/dataIntegrality',
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500 | data.body === null) {
|
||||
allData = null;
|
||||
drawAreaPic(null);
|
||||
drawVoltagePic(null)
|
||||
drawCompanyPic(null)
|
||||
} else {
|
||||
allData = data.body;
|
||||
drawAreaPic(data.body.area);
|
||||
drawVoltagePic(data.body.vol)
|
||||
drawCompanyPic(data.body.interval)
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//开关触发图片更新
|
||||
function reDrawAllPic() {
|
||||
if (allData === null) {
|
||||
drawAreaPic(null);
|
||||
drawVoltagePic(null)
|
||||
drawCompanyPic(null)
|
||||
} else {
|
||||
drawAreaPic(allData.area);
|
||||
drawVoltagePic(allData.vol)
|
||||
drawCompanyPic(allData.interval)
|
||||
}
|
||||
}
|
||||
|
||||
//绘画区域数据
|
||||
function drawAreaPic(area) {
|
||||
$("#area").css("height", picHeight);
|
||||
var areaOption = echarts.init($("#area")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
var route;
|
||||
var lineFeedBar;
|
||||
if(area.length>barUpperLimit12){
|
||||
route=barRouteIncline;
|
||||
lineFeedBar=noLineFeed;
|
||||
}else{
|
||||
route=barRouteZero;
|
||||
lineFeedBar=lineFeed;
|
||||
}
|
||||
if (null != area) {
|
||||
for (var i = 0; i < area.length; i++) {
|
||||
var integralityRate;
|
||||
if (tiggleValue === buttonname) {
|
||||
areas[i] = area[i].name + lineFeedBar+"(" + area[i].amounts + ")";
|
||||
integralityRate = Number(area[i].dataIntegrity);
|
||||
} else {
|
||||
areas[i] = area[i].name + lineFeedBar+"(" + area[i].gwamounts + ")";
|
||||
integralityRate = Number(area[i].gwdataIntegrity);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if(integralityRate<3.1414){
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
}else{
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
singleData.areaIndex=area[i].deptsIndex;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '区域',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '7%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '地区\n(监测点数)\n',
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
show: true,
|
||||
rotate:route,
|
||||
fontSize:10
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '完整性',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
areaOption.setOption(option);
|
||||
areaOption.on('click',function (params) {
|
||||
if(getRole("/pqs9000/area/integralitytable")){
|
||||
var city=params.data.areaIndex;
|
||||
window.top.addTab('/pqs9000/area/integralitytable?startTime='+startTime+'&endTime='+endTime+'&area='+city+'&interval=月份','完整性列表')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//绘制电压等级图
|
||||
function drawVoltagePic(vol) {
|
||||
$("#voltage").css("height", picHeight);
|
||||
var volOption = echarts.init($("#voltage")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
if (null != vol) {
|
||||
for (var i = 0; i < vol.length; i++) {
|
||||
var integralityRate;
|
||||
if (tiggleValue === buttonname) {
|
||||
areas[i] = vol[i].name + "\n(" + vol[i].amounts + ")";
|
||||
integralityRate = Number(vol[i].dataIntegrity);
|
||||
} else {
|
||||
areas[i] = vol[i].name + "\n(" + vol[i].gwamounts + ")";
|
||||
integralityRate = Number(vol[i].gwdataIntegrity);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if(integralityRate<3.1414){
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
}else{
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '电压等级',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '13%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '电压等级\n(监测点数)\n',
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '完整性',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
volOption.setOption(option);
|
||||
volOption.on('click',function (params) {
|
||||
if(getRole("/pqs9000/area/integralitytable")) {
|
||||
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&interval=月份', '完整性列表')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//绘制设备厂家图
|
||||
function drawCompanyPic(company) {
|
||||
$("#company").css("height", picHeight);
|
||||
var comOption = echarts.init($("#company")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
if (null != company) {
|
||||
for (var i = 0; i < company.length; i++) {
|
||||
var integralityRate;
|
||||
if (tiggleValue === buttonname) {
|
||||
areas[i] = company[i].name + "\n(" + company[i].amounts + ")";
|
||||
integralityRate = Number(company[i].dataIntegrity);
|
||||
} else {
|
||||
areas[i] = company[i].name + "\n(" + company[i].gwamounts + ")";
|
||||
integralityRate = Number(company[i].gwdataIntegrity);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if(integralityRate<3.1414){
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
}else{
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '终端厂家',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '13%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '终端厂家\n(监测点数)\n',
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '完整性',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
comOption.setOption(option);
|
||||
comOption.on('click',function (params) {
|
||||
if(getRole("/pqs9000/area/integralitytable")) {
|
||||
window.top.addTab('/pqs9000/area/integralitytable?startTime=' + startTime + '&endTime=' + endTime + '&interval=月份', '完整性列表')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定区域下终端的在线率具体数据(最多10条)
|
||||
*/
|
||||
function showDetailData(content, title) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: title + '监测点数据完整性详情(前20)',
|
||||
shadeClose: true,
|
||||
resize: false,
|
||||
area: '700px',
|
||||
scrollbar: false,
|
||||
content: content
|
||||
})
|
||||
}
|
||||
|
||||
//根据数据完整性获取颜色
|
||||
function getColor(data) {
|
||||
if (data >= 90) {
|
||||
return green;
|
||||
} else if (data === 3.1415) {
|
||||
return noMonitor;
|
||||
} else if (data === 3.14159) {
|
||||
return noData;
|
||||
} else if (data < 60) {
|
||||
return red;
|
||||
} else {
|
||||
return yellow;
|
||||
}
|
||||
}
|
||||
682
pqs9000/src/main/webapp/jspJS/overview/deviceStatus.js
Normal file
682
pqs9000/src/main/webapp/jspJS/overview/deviceStatus.js
Normal file
@@ -0,0 +1,682 @@
|
||||
var picHeight;
|
||||
var areLength;//区域的个数
|
||||
var companyLength;//厂家个数
|
||||
var tiggleValue = "系统";
|
||||
var areaResult = null;
|
||||
var companyResult = null;
|
||||
$(function () {
|
||||
//开关初始化
|
||||
$(".wanzheng").bootstrapSwitch({
|
||||
onText: "系统", // 设置ON文本
|
||||
offText: "网公司", // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "60",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state == true) {
|
||||
tiggleValue = "系统";
|
||||
} else {
|
||||
tiggleValue = "网公司";
|
||||
}
|
||||
//重新画图
|
||||
reDrawAllPic();
|
||||
}
|
||||
});
|
||||
var i;
|
||||
picHeight = $(window).height() * 0.5 - 5;
|
||||
endTime = getEndTime();
|
||||
startTime = getMonthStartTime(endTime);
|
||||
$.ajax({
|
||||
url: '/pqs9000/overview/deviceStatus',
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500 | data.body === null) {
|
||||
companyResult = null;
|
||||
areaResult = null;
|
||||
} else {
|
||||
areLength = data.body.area === null ? 0 : data.body.area.length;
|
||||
companyLength = data.body.interval === null ? 0 : data.body.interval.length;
|
||||
companyResult = data.body.interval;
|
||||
areaResult = data.body.area;
|
||||
}
|
||||
startQuery();
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//按区域进行统计
|
||||
function drawAreaPic(area, intervals) {
|
||||
//给div指定宽高
|
||||
$("#area").css("height", picHeight);
|
||||
var normal = [];
|
||||
var breaks = [];
|
||||
var shutdown = [];
|
||||
var areas = [];
|
||||
var rate = [];
|
||||
if (null != area) {
|
||||
|
||||
for (var i = 0; i < area.length; i++) {
|
||||
var monitors;
|
||||
var onlineRate;
|
||||
if (tiggleValue === "系统") {
|
||||
monitors=area[i].amounts;
|
||||
areas[i] = area[i].name + "\n(" + area[i].amounts + ")";
|
||||
onlineRate = Number(area[i].online);
|
||||
normal[i] = area[i].status.normal;
|
||||
breaks[i] = area[i].status.breaks;
|
||||
shutdown[i] = area[i].status.shutdown;
|
||||
} else {
|
||||
monitors=area[i].gwamounts;
|
||||
areas[i] = area[i].name + "\n(" + area[i].gwamounts + ")";
|
||||
onlineRate = Number(area[i].gwonline);
|
||||
if(null!==area[i].gdStatus){
|
||||
normal[i] = area[i].gdStatus.normal;
|
||||
breaks[i] = area[i].gdStatus.breaks;
|
||||
shutdown[i] = area[i].gdStatus.shutdown;
|
||||
}else{
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
singleData.value = 3.1415;
|
||||
item.color = noMonitor;
|
||||
singleData.itemStyle = item;
|
||||
normal[i] = singleData;
|
||||
breaks[i] = 0;
|
||||
shutdown[i] = 0;
|
||||
}
|
||||
}
|
||||
if (Number(monitors) === 0) {
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
singleData.value = 3.1415;
|
||||
item.color = noMonitor;
|
||||
singleData.itemStyle = item;
|
||||
normal[i] = singleData;
|
||||
rate[i]=singleData;
|
||||
breaks[i] = 0;
|
||||
shutdown[i] = 0;
|
||||
} else {
|
||||
var singleData={};
|
||||
var normalData={};
|
||||
var itemStyle={};
|
||||
normalData.color = getColor(onlineRate);
|
||||
if(onlineRate<3.1414){
|
||||
singleData.value = 3.1415;
|
||||
normalData.actual = onlineRate;
|
||||
}else{
|
||||
singleData.value = onlineRate;
|
||||
}
|
||||
itemStyle.normal=normalData;
|
||||
singleData.itemStyle=itemStyle;
|
||||
rate[i]=singleData;
|
||||
}
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '区域',
|
||||
x: 'center'
|
||||
},
|
||||
color: [green, yellow, grey],
|
||||
legend: {
|
||||
x: 'right',
|
||||
data: ['投运', '热备用', '停运'],
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
var color = params[0].color;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>投运 : /';
|
||||
tips += '<br/>热备用 : /';
|
||||
tips += '<br/>停运 : /';
|
||||
tips+='<br/>在线率 : /';
|
||||
} else {
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
var tempValue="";
|
||||
if(params[i].seriesName==="在线率"¶ms[i].value==3.14159){
|
||||
tempValue="暂无数据";
|
||||
}else if(params[i].seriesName==="在线率"¶ms[i].value==3.1415){
|
||||
if (params[i].data.itemStyle.actual !== undefined) {
|
||||
tempValue = params[i].data.itemStyle.actual;
|
||||
} else {
|
||||
tempValue="/";
|
||||
}
|
||||
}else{
|
||||
tempValue= params[i].value;
|
||||
}
|
||||
tips += '<br/>' + params[i].seriesName + ' : ' +tempValue;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '11%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '地区\n(终端个数)\n',
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: intervals
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
max: 100
|
||||
}],
|
||||
series: [{
|
||||
name: '投运',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: normal
|
||||
}, {
|
||||
name: '热备用',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: breaks
|
||||
}, {
|
||||
name: '停运',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: shutdown
|
||||
},{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
barGap: 0,
|
||||
barMaxWidth: barMax,
|
||||
data: rate
|
||||
}]
|
||||
};
|
||||
var district = echarts.init(document.getElementById('area'));
|
||||
district.setOption(option);
|
||||
district.on('click', function (params) {
|
||||
if (getRole("/pqs9000/business/runtime") == 1) {
|
||||
window.top.addTab('runtime', '终端运行情况')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//填充区域表格
|
||||
function initAreaTable(data) {
|
||||
var height = picHeight - 50;
|
||||
if (data == null) {
|
||||
data = [];
|
||||
}
|
||||
$("#areaTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
order: [2, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{data: 'amounts', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.amounts;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.gwamounts;
|
||||
}
|
||||
}},
|
||||
{
|
||||
data: 'status.normalData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.normalData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.normalData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'status.breaksData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.breaksData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.breaksData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'status.shutdownData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.shutdownData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.shutdownData;
|
||||
}
|
||||
}
|
||||
}, {data:'online', render:function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
data = full.online;
|
||||
} else {
|
||||
data = full.gwonline;
|
||||
}
|
||||
if (Number(data) === 3.1415) {
|
||||
return "/";
|
||||
} else if (Number(data) === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}},
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//按终端厂家进行统计
|
||||
function drawCompanyPic(companys, intervals) {
|
||||
$("#company").css("height", picHeight);
|
||||
var run = [];
|
||||
var breaks = [];
|
||||
var shutdown = [];
|
||||
var rate=[];
|
||||
var areas = [];
|
||||
if (null != companys) {
|
||||
for(var i=0;i<companys.length;i++){
|
||||
var monitors;
|
||||
var onlineRate;
|
||||
if (tiggleValue === "系统") {
|
||||
monitors=companys[i].amounts;
|
||||
areas[i] = companys[i].name + "\n(" + companys[i].amounts + ")";
|
||||
onlineRate = Number(companys[i].online);
|
||||
run[i]=companys[i].status.normal;
|
||||
breaks[i]=companys[i].status.breaks;
|
||||
shutdown[i]=companys[i].status.shutdown;
|
||||
} else {
|
||||
monitors=companys[i].gwamounts;
|
||||
areas[i] = companys[i].name + "\n(" + companys[i].gwamounts + ")";
|
||||
onlineRate = Number(companys[i].gwonline);
|
||||
if(null!==companys[i].gdStatus){
|
||||
run[i] = companys[i].gdStatus.normal;
|
||||
breaks[i] = companys[i].gdStatus.breaks;
|
||||
shutdown[i] = companys[i].gdStatus.shutdown;
|
||||
}else{
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
singleData.value = 3.1415;
|
||||
item.color = noMonitor;
|
||||
singleData.itemStyle = item;
|
||||
run[i] = singleData;
|
||||
breaks[i] = 0;
|
||||
shutdown[i] = 0;
|
||||
}
|
||||
}
|
||||
if(Number(monitors)===0){
|
||||
var singleData={};
|
||||
var normal={};
|
||||
var itemStyle={};
|
||||
singleData.value=3.1415;
|
||||
normal.color=noMonitor;
|
||||
itemStyle.normal=normal;
|
||||
singleData.itemStyle=itemStyle;
|
||||
run[i]=singleData;
|
||||
rate[i]=singleData;
|
||||
breaks[i]=0;
|
||||
shutdown[i]=0;
|
||||
}else{
|
||||
var singleData={};
|
||||
var normal={};
|
||||
var itemStyle={};
|
||||
normal.color = getColor(onlineRate);
|
||||
if(onlineRate<3.1414){
|
||||
singleData.value = 3.1415;
|
||||
normal.actual = onlineRate;
|
||||
}else{
|
||||
singleData.value = onlineRate;
|
||||
}
|
||||
itemStyle.normal=normal;
|
||||
singleData.itemStyle=itemStyle;
|
||||
rate[i]=singleData;
|
||||
}
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '终端厂家',
|
||||
left: '46%'
|
||||
},
|
||||
color: [green, yellow, grey],
|
||||
legend: {
|
||||
x: 'right',
|
||||
data: ['投运', '热备用', '停运'],
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var tips="";
|
||||
tips+=params[0].name;
|
||||
var value=params[0].value;
|
||||
if(value===3.1415){
|
||||
tips+='<br/>投运 : /';
|
||||
tips+='<br/>热备用 : /';
|
||||
tips+='<br/>停运 : /';
|
||||
tips+='<br/>在线率 : /';
|
||||
}else{
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
var tempValue="";
|
||||
if(params[i].seriesName==="在线率"¶ms[i].value==3.14159){
|
||||
tempValue="暂无数据";
|
||||
}else if(params[i].seriesName==="在线率"¶ms[i].value==3.1415){
|
||||
if (params[i].data.itemStyle.actual !== undefined) {
|
||||
tempValue = params[i].data.itemStyle.actual;
|
||||
} else {
|
||||
tempValue="/";
|
||||
}
|
||||
}else{
|
||||
tempValue= params[i].value;
|
||||
}
|
||||
tips += '<br/>' + params[i].seriesName + ' : ' +tempValue;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '11%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '终端厂家\n(终端个数)\n',
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: intervals
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
max: 100
|
||||
}],
|
||||
series: [{
|
||||
name: '投运',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: run
|
||||
}, {
|
||||
name: '热备用',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: breaks
|
||||
}, {
|
||||
name: '停运',
|
||||
type: 'bar',
|
||||
stack: 'sum',
|
||||
barMaxWidth: barMax,
|
||||
data: shutdown
|
||||
},{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
barGap: 0,
|
||||
barMaxWidth: barMax,
|
||||
data: rate
|
||||
}]
|
||||
};
|
||||
var factory = echarts.init(document.getElementById('company'));
|
||||
factory.setOption(option);
|
||||
factory.on('click', function () {
|
||||
if (getRole("/pqs9000/business/runtime") == 1) {
|
||||
window.top.addTab('runtime', '终端运行情况')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//填充终端厂家表格
|
||||
function initCompanyTable(data) {
|
||||
var height = picHeight - 50;
|
||||
if (data == null) {
|
||||
data = [];
|
||||
}
|
||||
$("#companyTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
order: [2, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{data: 'amounts', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.amounts;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.gwamounts;
|
||||
}
|
||||
}},
|
||||
{
|
||||
data: 'status.normalData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.normalData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.normalData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'status.breaksData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.breaksData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.breaksData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'status.shutdownData', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
if(full.amounts==0){
|
||||
return "/";
|
||||
}
|
||||
return full.status.shutdownData;
|
||||
} else {
|
||||
if(full.gwamounts==0){
|
||||
return "/";
|
||||
}
|
||||
if(null===full.gdStatus){
|
||||
return "0"
|
||||
}
|
||||
return full.gdStatus.shutdownData;
|
||||
}
|
||||
}
|
||||
},
|
||||
{data:'online', render:function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
data = full.online;
|
||||
} else {
|
||||
data = full.gwonline;
|
||||
}
|
||||
if (Number(data) === 3.1415) {
|
||||
return "/";
|
||||
} else if (Number(data) === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}},
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it = null;
|
||||
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it = setInterval('refreshQuery()', 100);
|
||||
|
||||
}
|
||||
|
||||
/* 刷新查询 */
|
||||
function refreshQuery() {
|
||||
var width = $("#companyT").width();
|
||||
if (width > 100) {
|
||||
if (parseInt(areLength) > parseInt(barspaclength)) {
|
||||
drawAreaPic(areaResult, 1);
|
||||
} else {
|
||||
drawAreaPic(areaResult, 0);
|
||||
}
|
||||
if (parseInt(companyLength) > parseInt(barspaclength)) {
|
||||
drawCompanyPic(companyResult, 1);
|
||||
} else {
|
||||
drawCompanyPic(companyResult, 0);
|
||||
}
|
||||
initAreaTable(areaResult);
|
||||
initCompanyTable(companyResult);
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
|
||||
//根据在线率获取颜色
|
||||
function getColor(data) {
|
||||
if (data >= 90) {
|
||||
return green;
|
||||
} else if (data === 3.1415) {
|
||||
return noMonitor;
|
||||
} else if (data === 3.14159) {
|
||||
return noData;
|
||||
} else if (data < 60) {
|
||||
return red;
|
||||
} else {
|
||||
return yellow;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//开关触发图片更新
|
||||
function reDrawAllPic() {
|
||||
if (areaResult === null) {
|
||||
drawAreaPic(null);
|
||||
initAreaTable(null);
|
||||
} else {
|
||||
if (parseInt(areLength) > parseInt(barspaclength)) {
|
||||
drawAreaPic(areaResult, 1);
|
||||
} else {
|
||||
drawAreaPic(areaResult, 0);
|
||||
}
|
||||
initAreaTable(areaResult);
|
||||
}
|
||||
if (companyResult === null) {
|
||||
drawCompanyPic(null);
|
||||
initCompanyTable(null);
|
||||
} else {
|
||||
if (parseInt(companyLength) > parseInt(barspaclength)) {
|
||||
drawCompanyPic(companyResult, 1);
|
||||
} else {
|
||||
drawCompanyPic(companyResult, 0);
|
||||
}
|
||||
initCompanyTable(companyResult);
|
||||
}
|
||||
}
|
||||
775
pqs9000/src/main/webapp/jspJS/overview/frequency.js
Normal file
775
pqs9000/src/main/webapp/jspJS/overview/frequency.js
Normal file
@@ -0,0 +1,775 @@
|
||||
var picHeight, endTime, startTime, steadyData;
|
||||
$(function () {
|
||||
picHeight = ($(window).height() - 51) * 0.5;
|
||||
$("#helper").css("margin-top", 53 - $(window).height());
|
||||
$("#helper").css("margin-left", ($(window).width()) / 2 + 20);
|
||||
endTime = getEndTime();
|
||||
startTime = getMonthStartTime(endTime);
|
||||
//获取频率偏差
|
||||
getFrequencyDeviation(startTime, endTime);
|
||||
});
|
||||
|
||||
$("#qualifiedTab a").on('click', function () {
|
||||
var html = $(this).html();
|
||||
parent.$("#target").text(html);
|
||||
//执行查询操作并画图
|
||||
var urlPart = $(this).prop("id");
|
||||
if (urlPart === "allData") {
|
||||
changeClass();
|
||||
initTable(steadyData);
|
||||
drawAllArea(steadyData);
|
||||
$("#helper").css("display", "inline-block");
|
||||
} else {
|
||||
changeClass(1);
|
||||
drawAreaPic(steadyData, urlPart);
|
||||
drawVoltagePic(steadyData, urlPart);
|
||||
drawLoadTypePic(steadyData, urlPart);
|
||||
$("#helper").css("display", "none");
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
//获取频率偏差数据并画图
|
||||
function getFrequencyDeviation(startTime, endTime) {
|
||||
var i;
|
||||
$.ajax({
|
||||
url: '/pqs9000/overview/frequencyDeviation',
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
changeClass();
|
||||
if (data.code === 500 | data.body === null) {
|
||||
steadyData = null;
|
||||
initTable(steadyData)
|
||||
drawAllArea(steadyData)
|
||||
} else {
|
||||
steadyData = data.body;
|
||||
initTable(steadyData)
|
||||
drawAllArea(steadyData)
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//画全部地区的数据图
|
||||
function drawAllArea(steadyData) {
|
||||
var area;
|
||||
if (null == steadyData) {
|
||||
area = null;
|
||||
} else {
|
||||
area = steadyData.area;
|
||||
}
|
||||
$("#allArea").css("height", picHeight);
|
||||
var areaOption = echarts.init($("#allArea")[0]);
|
||||
var areas = [];
|
||||
var frequency = [], uBalance = [], voltageDeviation = [], flicker = [], harmVol = [], harmEle = [], iNeg = [],
|
||||
inUharm = [];
|
||||
var route;
|
||||
if (area.length > barUpperLimit12) {
|
||||
route = barRouteIncline;
|
||||
} else {
|
||||
route = barRouteZero;
|
||||
}
|
||||
if (null != area) {
|
||||
for (var i = 0; i < area.length; i++) {
|
||||
areas[i] = area[i].name;
|
||||
|
||||
var harmVolValue = Number(area[i].harmVoltage);
|
||||
var harmVolSingleData = {};
|
||||
harmVolSingleData.areaIndex = area[i].areaIndex;
|
||||
var harmVolItem = {};
|
||||
harmVolItem.color = getColor(harmVolValue);
|
||||
if (harmVolValue < 3.1414) {
|
||||
harmVolSingleData.value = 3.1415;
|
||||
harmVolItem.actual = harmVolValue;
|
||||
} else {
|
||||
harmVolSingleData.value = harmVolValue;
|
||||
}
|
||||
harmVolSingleData.itemStyle = harmVolItem;
|
||||
harmVol[i] = harmVolSingleData;
|
||||
|
||||
var harmEleValue = Number(area[i].harmElec);
|
||||
var harmEleSingleData = {};
|
||||
harmEleSingleData.areaIndex = area[i].areaIndex;
|
||||
var harmEleItem = {};
|
||||
harmEleItem.color = getColor(harmEleValue);
|
||||
if (harmEleValue < 3.1414) {
|
||||
harmEleSingleData.value = 3.1415;
|
||||
harmEleItem.actual = harmEleValue;
|
||||
} else {
|
||||
harmEleSingleData.value = harmEleValue;
|
||||
}
|
||||
harmEleSingleData.itemStyle = harmEleItem;
|
||||
harmEle[i] = harmEleSingleData;
|
||||
|
||||
var iNegValue = Number(area[i].iNeg);
|
||||
var iNegSingleData = {};
|
||||
iNegSingleData.areaIndex = area[i].areaIndex;
|
||||
var iNegItem = {};
|
||||
iNegItem.color = getColor(iNegValue);
|
||||
if (iNegValue < 3.1414) {
|
||||
iNegSingleData.value = 3.1415;
|
||||
iNegItem.actual = iNegValue;
|
||||
} else {
|
||||
iNegSingleData.value = iNegValue;
|
||||
}
|
||||
iNegSingleData.itemStyle = iNegItem;
|
||||
iNeg[i] = iNegSingleData;
|
||||
|
||||
var inUharmValue = Number(area[i].inUharm);
|
||||
var inUharmSingleData = {};
|
||||
inUharmSingleData.areaIndex = area[i].areaIndex;
|
||||
var inUharmItem = {};
|
||||
inUharmItem.color = getColor(inUharmValue);
|
||||
if (inUharmValue < 3.1414) {
|
||||
inUharmSingleData.value = 3.1415;
|
||||
inUharmItem.actual = inUharmValue;
|
||||
} else {
|
||||
inUharmSingleData.value = inUharmValue;
|
||||
}
|
||||
inUharmSingleData.itemStyle = inUharmItem;
|
||||
inUharm[i] = inUharmSingleData;
|
||||
|
||||
|
||||
var flValue = Number(area[i].flicker);
|
||||
var flSingleData = {};
|
||||
flSingleData.areaIndex = area[i].areaIndex;
|
||||
var flItem = {};
|
||||
flItem.color = getColor(flValue);
|
||||
if (flValue < 3.1414) {
|
||||
flSingleData.value = 3.1415;
|
||||
flItem.actual = flValue;
|
||||
} else {
|
||||
flSingleData.value = flValue;
|
||||
}
|
||||
flSingleData.itemStyle = flItem;
|
||||
flicker[i] = flSingleData;
|
||||
|
||||
var ubValue = Number(area[i].uBalance);
|
||||
var ubSingleData = {};
|
||||
ubSingleData.areaIndex = area[i].areaIndex;
|
||||
var ubItem = {};
|
||||
ubItem.color = getColor(ubValue);
|
||||
if (ubValue < 3.1414) {
|
||||
ubSingleData.value = 3.1415;
|
||||
ubItem.actual = ubValue;
|
||||
} else {
|
||||
ubSingleData.value = ubValue;
|
||||
}
|
||||
ubSingleData.itemStyle = ubItem;
|
||||
uBalance[i] = ubSingleData;
|
||||
|
||||
var freValue = Number(area[i].frequency);
|
||||
var freSingleData = {};
|
||||
freSingleData.areaIndex = area[i].areaIndex;
|
||||
var freItem = {};
|
||||
freItem.color = getColor(freValue);
|
||||
if (freValue < 3.1414) {
|
||||
freSingleData.value = 3.1415;
|
||||
freItem.actual = freValue;
|
||||
} else {
|
||||
freSingleData.value = freValue;
|
||||
}
|
||||
freSingleData.itemStyle = freItem;
|
||||
frequency[i] = freSingleData;
|
||||
|
||||
|
||||
var volValue = Number(area[i].voltageDeviation);
|
||||
var volSingleData = {};
|
||||
volSingleData.areaIndex = area[i].areaIndex;
|
||||
var valItem = {};
|
||||
valItem.color = getColor(volValue);
|
||||
if (volValue < 3.1414) {
|
||||
volSingleData.value = 3.1415;
|
||||
valItem.actual = volValue;
|
||||
} else {
|
||||
volSingleData.value = volValue;
|
||||
}
|
||||
volSingleData.itemStyle = valItem;
|
||||
voltageDeviation[i] = volSingleData;
|
||||
}
|
||||
}
|
||||
var labelOption = {
|
||||
normal: {
|
||||
show: false,
|
||||
position: 'insideBottom',
|
||||
distance: 15,
|
||||
align: 'left',
|
||||
verticalAlign: 'middle',
|
||||
rotate: 90,
|
||||
formatter: '{c} {name|{a}}',
|
||||
fontSize: 16,
|
||||
rich: {
|
||||
name: {
|
||||
textBorderColor: '#fff'
|
||||
}
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '区域',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[i].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : ' + params[i].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[i].seriesName + ' : ' + params[i].value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '7%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '地区',
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
show: true,
|
||||
rotate: route,
|
||||
fontSize: 10
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '频率偏差',
|
||||
type: 'bar',
|
||||
barGap: 0.2,
|
||||
label: labelOption,
|
||||
barMaxWidth: barMax,
|
||||
data: frequency
|
||||
}, {
|
||||
name: '闪变',
|
||||
type: 'bar',
|
||||
label: labelOption,
|
||||
barMaxWidth: barMax,
|
||||
data: flicker
|
||||
},
|
||||
{
|
||||
name: '电压不平衡',
|
||||
type: 'bar',
|
||||
label: labelOption,
|
||||
barMaxWidth: barMax,
|
||||
data: uBalance
|
||||
}, {
|
||||
name: '谐波电压',
|
||||
type: 'bar',
|
||||
label: labelOption,
|
||||
barMaxWidth: barMax,
|
||||
data: harmVol
|
||||
}, {
|
||||
name: '电压偏差',
|
||||
type: 'bar',
|
||||
label: labelOption,
|
||||
barMaxWidth: barMax,
|
||||
data: voltageDeviation
|
||||
}, {
|
||||
name: '谐波电流',
|
||||
type: 'bar',
|
||||
label: labelOption,
|
||||
barMaxWidth: barMax,
|
||||
data: harmEle
|
||||
}, {
|
||||
name: '负序电流',
|
||||
type: 'bar',
|
||||
label: labelOption,
|
||||
barMaxWidth: barMax,
|
||||
data: iNeg
|
||||
}, {
|
||||
name: '间谐波电压含有率',
|
||||
type: 'bar',
|
||||
label: labelOption,
|
||||
barMaxWidth: barMax,
|
||||
data: inUharm
|
||||
}
|
||||
]
|
||||
};
|
||||
areaOption.setOption(option);
|
||||
endTime = getEndTime();
|
||||
startTime = getMonthStartTime(endTime);
|
||||
areaOption.on('click', function (params) {
|
||||
if (getRole("/pqs9000/area/steadytable") === 1) {
|
||||
window.top.addTab('/pqs9000/area/steadytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + params.data.areaIndex + '&interval=月份', '稳态合格率列表')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//画指定指标的区域图
|
||||
function drawAreaPic(steadyData, urlPart) {
|
||||
var area;
|
||||
if (steadyData === null) {
|
||||
area = null;
|
||||
} else {
|
||||
area = steadyData.area;
|
||||
}
|
||||
$("#area").css("height", picHeight);
|
||||
var areaOption = echarts.init($("#area")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
var route;
|
||||
var lineFeedBar;
|
||||
if (area.length > barUpperLimit12) {
|
||||
route = barRouteIncline;
|
||||
lineFeedBar = noLineFeed;
|
||||
} else {
|
||||
route = barRouteZero;
|
||||
lineFeedBar = lineFeed;
|
||||
}
|
||||
if (null != area) {
|
||||
for (var i = 0; i < area.length; i++) {
|
||||
areas[i] = area[i].name + lineFeedBar + "(" + area[i].monitors + ")";
|
||||
var integralityRate = getSteady(area[i], urlPart);
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if (integralityRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
} else {
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '区域',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '7%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '地区\n(监测点数)\n',
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
show: true,
|
||||
rotate: route,
|
||||
fontSize: 10
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '合格率',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
areaOption.setOption(option);
|
||||
}
|
||||
|
||||
//画指定指标的电压等级图
|
||||
function drawVoltagePic(steadyData, urlPart) {
|
||||
var vol;
|
||||
if (steadyData === null) {
|
||||
vol = null;
|
||||
} else {
|
||||
vol = steadyData.vol;
|
||||
}
|
||||
$("#voltage").css("height", picHeight);
|
||||
var volOption = echarts.init($("#voltage")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
if (null != vol) {
|
||||
for (var i = 0; i < vol.length; i++) {
|
||||
areas[i] = vol[i].name + "\n(" + vol[i].monitors + ")";
|
||||
var integralityRate = getSteady(vol[i], urlPart);
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if (integralityRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
} else {
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '电压等级',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '13%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '电压等级\n(监测点数)\n',
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
show: true,
|
||||
fontSize: 10
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '合格率',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
volOption.setOption(option);
|
||||
}
|
||||
|
||||
//画指定指标的监测点对象类型图
|
||||
function drawLoadTypePic(steadyData, urlPart) {
|
||||
var loadType;
|
||||
if (steadyData === null) {
|
||||
loadType = null;
|
||||
} else {
|
||||
loadType = steadyData.loadType;
|
||||
}
|
||||
$("#loadType").css("height", picHeight);
|
||||
var comOption = echarts.init($("#loadType")[0]);
|
||||
var inte = [];
|
||||
var areas = [];
|
||||
if (null != loadType) {
|
||||
for (var i = 0; i < loadType.length; i++) {
|
||||
areas[i] = loadType[i].name + "\n(" + loadType[i].monitors + ")";
|
||||
var integralityRate = getSteady(loadType[i], urlPart);
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(integralityRate);
|
||||
if (integralityRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = integralityRate;
|
||||
} else {
|
||||
singleData.value = integralityRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
inte[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '干扰源类型',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
for (var i = 0; i < params.length; i++) {
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[i].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '3%',
|
||||
right: '13%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: '干扰源类型\n(监测点数)\n',
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
show: true,
|
||||
fontSize: 10
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '合格率',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
comOption.setOption(option);
|
||||
|
||||
}
|
||||
|
||||
//初始化表格
|
||||
function initTable(data) {
|
||||
var area;
|
||||
if (null == data) {
|
||||
area = null;
|
||||
} else {
|
||||
area = data.area;
|
||||
}
|
||||
var height = picHeight - 40;
|
||||
$("#areaTable").DataTable({
|
||||
data: area,
|
||||
autoWidth: false,
|
||||
columnDefs: [{
|
||||
orderable: false,
|
||||
targets: [0]
|
||||
}],
|
||||
order: [1, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
pageLength: 100,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{
|
||||
data: 'name'
|
||||
},
|
||||
{
|
||||
data: 'frequency', type: "special-fate", render: function (data, type, full, meta) {
|
||||
return getValue(data);
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'flicker', type: "special-fate", render: function (data, type, full, meta) {
|
||||
return getValue(data);
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'uBalance', type: "special-fate", render: function (data, type, full, meta) {
|
||||
return getValue(data);
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'harmVoltage', type: "special-fate", render: function (data, type, full, meta) {
|
||||
return getValue(data);
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'voltageDeviation', type: "special-fate", render: function (data, type, full, meta) {
|
||||
return getValue(data);
|
||||
}
|
||||
},
|
||||
|
||||
{
|
||||
data: 'harmElec', type: "special-fate", render: function (data, type, full, meta) {
|
||||
return getValue(data);
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'iNeg', type: "special-fate", render: function (data, type, full, meta) {
|
||||
return getValue(data);
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'inUharm', type: "special-fate", render: function (data, type, full, meta) {
|
||||
return getValue(data);
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'inUharm', render: function (data, type, full, meta) {
|
||||
var innerContent = getValue(data);
|
||||
var button;
|
||||
if (innerContent === "(暂无数据)" | innerContent === "/") {
|
||||
button = "<button type='button' class='btn themeBGDisableColor' style='margin-right:10px;' href='javascript:void(0);' disabled='disabled' >越限详情</button>";
|
||||
} else {
|
||||
button = "<button type='button' class='btn themeBGColor' style='margin-right:10px;' onclick='viewDetailData(\"" + full.areaIndex + "\",\"" + full.name + "\")' >越限详情</button>";
|
||||
}
|
||||
return button;
|
||||
}
|
||||
},
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
//获取layer打开新页面后,在标题添加内容并向右浮动
|
||||
function getTitleInfo(startTime, endTime, target, name) {
|
||||
startTime = startTime.replace(/-/g, '/');
|
||||
endTime = endTime.replace(/-/g, '/');
|
||||
return "<span class='fr font12' ><span class='info'><span class='inB bg-info smallBlock'></span> 合格率≥90%</span><span class='warn''> <span class='inB bg-warn smallBlock'></span> 60%≤合格率<90% </span><span class='error'> <span class='inB bg-error smallBlock'></span> 合格率<60%</span></span><span class='fr font25'> | </span><span class='fr font12'>统计时间:<span class='fontBold' >" + startTime + "-" + endTime + "</span></span><span class='fr font12'> 统计区域:<span class='fontBold ' id='target' style='cursor:pointer;margin-right: 10px !important;' >" + name + "</span></span>";
|
||||
}
|
||||
|
||||
|
||||
//查看越线详情
|
||||
function viewDetailData(areaIndex, name) {
|
||||
endTime = getEndTime();
|
||||
startTime = getMonthStartTime(endTime);
|
||||
var title = getTitleInfo(startTime, endTime, "稳态越限详情", name);
|
||||
parent.layer.open({
|
||||
id: 'steady',
|
||||
type: 2,
|
||||
title: "稳态越限详情" + title,
|
||||
maxmin: false,
|
||||
resize: false,
|
||||
shadeClose: true, //点击遮罩关闭层
|
||||
area: ['100%', '100%'],
|
||||
content: '/pqs9000/area/outOfLimitDetailView?startTime=' + startTime + "&endTime=" + endTime + "&areaIndex=" + areaIndex,
|
||||
scrollbar: false
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//根据值返回需要的数据
|
||||
function getValue(value) {
|
||||
if (value === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else if (value === 3.1415) {
|
||||
return "/";
|
||||
} else {
|
||||
return value;
|
||||
}
|
||||
}
|
||||
|
||||
//根据url获取指标合格率
|
||||
function getSteady(data, urlPart) {
|
||||
var integralityRate;
|
||||
if (urlPart === "frequency") {
|
||||
integralityRate = Number(data.frequency);
|
||||
} else if (urlPart === "flicker") {
|
||||
integralityRate = Number(data.flicker);
|
||||
} else if (urlPart === "uBalance") {
|
||||
integralityRate = Number(data.uBalance);
|
||||
} else if (urlPart === "harmVoltage") {
|
||||
integralityRate = Number(data.harmVoltage);
|
||||
} else if (urlPart === "voltageDeviation") {
|
||||
integralityRate = Number(data.voltageDeviation);
|
||||
} else if (urlPart === "harmElec") {
|
||||
integralityRate = Number(data.harmElec);
|
||||
} else if (urlPart === "iNeg") {
|
||||
integralityRate = Number(data.iNeg);
|
||||
} else if (urlPart === "inUharm") {
|
||||
integralityRate = Number(data.inUharm);
|
||||
}
|
||||
return integralityRate;
|
||||
}
|
||||
449
pqs9000/src/main/webapp/jspJS/overview/onlineRate.js
Normal file
449
pqs9000/src/main/webapp/jspJS/overview/onlineRate.js
Normal file
@@ -0,0 +1,449 @@
|
||||
var picHeight, endTime, startTime;
|
||||
var tiggleValue = "系统";
|
||||
var areaResult = null;
|
||||
var companyResult = null;
|
||||
var areLength;//区域的个数
|
||||
var companyLength;//厂家个数
|
||||
$(function () {
|
||||
//开关初始化
|
||||
$(".wanzheng").bootstrapSwitch({
|
||||
onText: "系统", // 设置ON文本
|
||||
offText: "网公司", // 设置OFF文本
|
||||
onColor: "primary",// 设置ON文本颜色 (info/success/warning/danger/primary)
|
||||
offColor: "primary", // 设置OFF文本颜色 (info/success/warning/danger/primary)
|
||||
size: "small", // 设置控件大小,从小到大 (mini/small/normal/large)
|
||||
handleWidth: "40",//设置控件宽度
|
||||
// 当开关状态改变时触发
|
||||
onSwitchChange: function (event, state) {
|
||||
if (state == true) {
|
||||
tiggleValue = "系统";
|
||||
} else {
|
||||
tiggleValue = "网公司";
|
||||
}
|
||||
//重新画图
|
||||
reDrawAllPic();
|
||||
}
|
||||
});
|
||||
var i;
|
||||
picHeight = $(window).height() * 0.5 - 5;
|
||||
endTime = getEndTime();
|
||||
startTime = getMonthStartTime(endTime);
|
||||
$.ajax({
|
||||
url: '/pqs9000/overview/onlineRate',
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
type: 'post',
|
||||
dataType: 'json',
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code === 500 | data.body === null) {
|
||||
drawAreaPic(null);
|
||||
drawCompanyPic(null);
|
||||
initAreaTable(null);
|
||||
initCompanyTable(null);
|
||||
} else {
|
||||
areLength = data.body.area === null ? 0 : data.body.area.length;
|
||||
companyLength = data.body.interval === null ? 0 : data.body.interval.length;
|
||||
if (parseInt(areLength) > parseInt(barspaclength)) {
|
||||
drawAreaPic(data.body.area, 1);
|
||||
} else {
|
||||
drawAreaPic(data.body.area, 0);
|
||||
}
|
||||
if (parseInt(companyLength) > parseInt(barspaclength)) {
|
||||
drawCompanyPic(data.body.interval, 1);
|
||||
} else {
|
||||
drawCompanyPic(data.body.interval, 0);
|
||||
}
|
||||
companyResult = data.body.interval;
|
||||
areaResult = data.body.area;
|
||||
|
||||
initAreaTable(data.body.area);
|
||||
initCompanyTable(data.body.interval);
|
||||
}
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
})
|
||||
|
||||
//描绘区域图
|
||||
function drawAreaPic(area, intervals) {
|
||||
var xTip;
|
||||
if (tiggleValue === "系统") {
|
||||
xTip = '地区\n(终端数)\n';
|
||||
} else {
|
||||
xTip = '地区\n(监测点数)\n';
|
||||
}
|
||||
$("#area").css("height", picHeight);
|
||||
var areaOption = echarts.init($("#area")[0]);
|
||||
var rate = [];
|
||||
var areas = [];
|
||||
if (null != area) {
|
||||
for (var i = 0; i < area.length; i++) {
|
||||
var onlineRate;
|
||||
if (tiggleValue === "系统") {
|
||||
areas[i] = area[i].name + "\n(" + area[i].amounts + ")";
|
||||
onlineRate = Number(area[i].online);
|
||||
} else {
|
||||
areas[i] = area[i].name + "\n(" + area[i].gwamounts + ")";
|
||||
onlineRate = Number(area[i].gwonline);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(onlineRate);
|
||||
if (onlineRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = onlineRate;
|
||||
} else {
|
||||
singleData.value = onlineRate;
|
||||
}
|
||||
singleData.areaIndex = area[i].deptsIndex;
|
||||
singleData.itemStyle = item;
|
||||
rate[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '区域',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '10%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: xTip,
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: intervals
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: rate
|
||||
}]
|
||||
};
|
||||
areaOption.setOption(option);
|
||||
areaOption.on('click', function (params) {
|
||||
if (getRole("/pqs9000/area/onlineratetable") == 1) {
|
||||
var city = params.data.areaIndex;
|
||||
window.top.addTab('/pqs9000/area/onlineratetable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + city + '&interval=月份', '在线率列表')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//填充区域表格
|
||||
function initAreaTable(data) {
|
||||
var height = picHeight - 50;
|
||||
if (data == null) {
|
||||
data = [];
|
||||
}
|
||||
$("#areaTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
columnDefs: [
|
||||
{"width": "33%", "targets": 0},
|
||||
{"width": "33%", "targets": 1},
|
||||
{"width": "33%", "targets": 2}
|
||||
],
|
||||
order: [2, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{
|
||||
data: 'amounts', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
return full.amounts;
|
||||
} else {
|
||||
return full.gwamounts;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'online', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
data = full.online;
|
||||
} else {
|
||||
data = full.gwonline;
|
||||
}
|
||||
if (Number(data) === 3.1415) {
|
||||
return "/";
|
||||
} else if (Number(data) === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//描绘终端厂家图
|
||||
function drawCompanyPic(company, intervals) {
|
||||
var xTip;
|
||||
if (tiggleValue === "系统") {
|
||||
xTip = '终端厂家\n(终端数)\n';
|
||||
} else {
|
||||
xTip = '终端厂家\n(监测点数)\n';
|
||||
}
|
||||
$("#company").css("height", picHeight);
|
||||
var comOption = echarts.init($("#company")[0]);
|
||||
var rate = [];
|
||||
var areas = [];
|
||||
if (null != company) {
|
||||
for (var i = 0; i < company.length; i++) {
|
||||
var onlineRate;
|
||||
if (tiggleValue === "系统") {
|
||||
areas[i] = company[i].name + "\n(" + company[i].amounts + ")";
|
||||
onlineRate = Number(company[i].online);
|
||||
} else {
|
||||
areas[i] = company[i].name + "\n(" + company[i].gwamounts + ")";
|
||||
onlineRate = Number(company[i].gwonline);
|
||||
}
|
||||
var singleData = {};
|
||||
var item = {};
|
||||
item.color = getColor(onlineRate);
|
||||
if (onlineRate < 3.1414) {
|
||||
singleData.value = 3.1415;
|
||||
item.actual = onlineRate;
|
||||
} else {
|
||||
singleData.value = onlineRate;
|
||||
}
|
||||
singleData.itemStyle = item;
|
||||
rate[i] = singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
title: {
|
||||
text: '终端厂家',
|
||||
x: 'center'
|
||||
},
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color = params[0].color;
|
||||
var tips = "";
|
||||
tips += params[0].name;
|
||||
if (color === noMonitor) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : /';
|
||||
} else if (color === noData) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : (暂无数据)';
|
||||
} else {
|
||||
if (params[0].data.itemStyle.actual !== undefined) {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].data.itemStyle.actual;
|
||||
} else {
|
||||
tips += '<br/>' + params[0].seriesName + ' : ' + params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
left: '1%',
|
||||
right: '10%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
name: xTip,
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
axisLabel: {
|
||||
show: true,
|
||||
interval: intervals
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
name: '%',
|
||||
min: '0',
|
||||
max: '100'
|
||||
}],
|
||||
series: [{
|
||||
name: '在线率',
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: rate
|
||||
}]
|
||||
};
|
||||
comOption.setOption(option);
|
||||
comOption.on('click', function (params) {
|
||||
if (getRole("/pqs9000/area/onlineratetable") == 1) {
|
||||
window.top.addTab('/pqs9000/area/onlineratetable?startTime=' + startTime + '&endTime=' + endTime + '&interval=月份', '在线率列表')
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//填充终端厂家表格
|
||||
function initCompanyTable(data) {
|
||||
var height = picHeight - 50;
|
||||
if (data == null) {
|
||||
data = [];
|
||||
}
|
||||
$("#companyTable").DataTable({
|
||||
data: data,
|
||||
autoWidth: false,
|
||||
columnDefs: [
|
||||
{"width": "33%", "targets": 0},
|
||||
{"width": "33%", "targets": 1},
|
||||
{"width": "33%", "targets": 2}
|
||||
],
|
||||
order: [2, "desc"],
|
||||
paging: false,
|
||||
lengthChange: false,
|
||||
searching: false,
|
||||
destroy: true,
|
||||
scrollY: height,
|
||||
info: false,
|
||||
language: {
|
||||
url: '/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{data: 'name'},
|
||||
{
|
||||
data: 'amounts', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
return full.amounts;
|
||||
} else {
|
||||
return full.gwamounts;
|
||||
}
|
||||
}
|
||||
},
|
||||
{
|
||||
data: 'online', render: function (data, type, full, meta) {
|
||||
if (tiggleValue === "系统") {
|
||||
data = full.online;
|
||||
} else {
|
||||
data = full.gwonline;
|
||||
}
|
||||
if (Number(data) === 3.1415) {
|
||||
return "/";
|
||||
} else if (Number(data) === 3.14159) {
|
||||
return "(暂无数据)";
|
||||
} else {
|
||||
return data;
|
||||
}
|
||||
}
|
||||
}
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取指定区域下终端的在线率具体数据(最多10条)
|
||||
*/
|
||||
function showDetailData(content, title) {
|
||||
layer.open({
|
||||
type: 2,
|
||||
title: title + '终端在线率详情(前10)',
|
||||
shadeClose: true,
|
||||
resize: false,
|
||||
area: '650px',
|
||||
scrollbar: false,
|
||||
content: content
|
||||
})
|
||||
}
|
||||
|
||||
//开关触发图片更新
|
||||
function reDrawAllPic() {
|
||||
if (tiggleValue === "系统") {
|
||||
$("#typeTitle").html("终端数");
|
||||
$("#typeTitle1").html("终端数");
|
||||
} else {
|
||||
$("#typeTitle").html("监测点数");
|
||||
$("#typeTitle1").html("监测点数");
|
||||
}
|
||||
|
||||
if (areaResult === null) {
|
||||
drawAreaPic(null);
|
||||
initAreaTable(null);
|
||||
} else {
|
||||
drawAreaPic(areaResult);
|
||||
initAreaTable(areaResult);
|
||||
}
|
||||
if (companyResult === null) {
|
||||
drawCompanyPic(null);
|
||||
initCompanyTable(null);
|
||||
} else {
|
||||
drawCompanyPic(companyResult);
|
||||
initCompanyTable(companyResult);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
//根据在线率获取颜色
|
||||
function getColor(data) {
|
||||
if (data >= 90) {
|
||||
return green;
|
||||
} else if (data === 3.1415) {
|
||||
return noMonitor;
|
||||
} else if (data === 3.14159) {
|
||||
return noData;
|
||||
} else if (data < 60) {
|
||||
return red;
|
||||
} else {
|
||||
return yellow;
|
||||
}
|
||||
}
|
||||
548
pqs9000/src/main/webapp/jspJS/overview/powerQuality.js
Normal file
548
pqs9000/src/main/webapp/jspJS/overview/powerQuality.js
Normal file
@@ -0,0 +1,548 @@
|
||||
var picHeight,endTime,startTime,powerQualityData;
|
||||
var powerName="综合";
|
||||
var powerLength = 0;//长度
|
||||
$(function () {
|
||||
picHeight=($(window).height()-51);
|
||||
$("#map").css("height",picHeight);
|
||||
$("#bar").css("height",picHeight*0.5);
|
||||
endTime=getEndTime();
|
||||
startTime=getMonthStartTime(endTime);
|
||||
//获取频率偏差
|
||||
powerQualityVol(startTime,endTime);
|
||||
})
|
||||
|
||||
function powerQualityVol(startTime,endTime) {
|
||||
var i;
|
||||
$.ajax({
|
||||
url:'/pqs9000/overview/powerQualityVol',
|
||||
type:'post',
|
||||
data:{
|
||||
startTime:startTime,
|
||||
endTime:endTime
|
||||
},
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
if (data.body===null){
|
||||
powerQualityData=null;
|
||||
}else{
|
||||
powerLength = data.body.length;
|
||||
powerQualityData=data.body;
|
||||
}
|
||||
startQuery()
|
||||
//***********关闭loading
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function initMap(quentityData,name,max,temp,unit,lineFeed,route){
|
||||
powerName=name;
|
||||
$("#norm").html(name+unit)
|
||||
//地图容器
|
||||
mapEvent = echarts.init(document.getElementById('map'));
|
||||
var pNode,node;
|
||||
$.ajax({
|
||||
url:'/pqs9000/area/getMapInfo',
|
||||
type:'post',
|
||||
data:{
|
||||
area:"overview"
|
||||
},
|
||||
async:false,
|
||||
dataType:'json',
|
||||
success:function (data) {
|
||||
pNode=data.body.name;
|
||||
node=data.body.subName;
|
||||
}
|
||||
})
|
||||
if(quentityData==null){
|
||||
//获取地图数据
|
||||
var geoJson = getFullMapData(pNode,node);
|
||||
d = [];
|
||||
//注册地图
|
||||
echarts.registerMap('电能质量', geoJson);
|
||||
//绘制地图
|
||||
drawMap(d,name);
|
||||
}else{
|
||||
if(quentityData.length>1){
|
||||
var geoJson = getFullMapData(pNode,node);
|
||||
var d = [];
|
||||
for( var i=0;i<quentityData.length;i++ ){
|
||||
//根据level获取等级颜色
|
||||
var color;
|
||||
if(name==="综合评估"){
|
||||
color=getColorByLevelAllData(quentityData[i].level);
|
||||
}else{
|
||||
color=getColorByLevel(quentityData[i].level);
|
||||
}
|
||||
var dataTemp;
|
||||
if(quentityData[i].data===3.1415){
|
||||
dataTemp="/";
|
||||
}else if(quentityData[i].data===3.14159){
|
||||
dataTemp="(暂无数据)";
|
||||
}else{
|
||||
dataTemp = quentityData[i].data
|
||||
}
|
||||
d.push({
|
||||
name:quentityData[i].name,
|
||||
value:dataTemp,
|
||||
emphasis:{itemStyle:{areaColor: color,borderColor:"white",borderWidth:"1"}}
|
||||
})
|
||||
}
|
||||
|
||||
//注册地图
|
||||
echarts.registerMap('电能质量', geoJson);
|
||||
drawMap(d,name);
|
||||
}else{
|
||||
var d = [];
|
||||
var color;
|
||||
var dataTemp;
|
||||
if(name==="综合评估"){
|
||||
color=getColorByLevelAllData(quentityData[0].level);
|
||||
}else{
|
||||
color=getColorByLevel(quentityData[0].level);
|
||||
}
|
||||
if(quentityData[0].data===3.1415){
|
||||
dataTemp="/";
|
||||
}else if(quentityData[0].data===3.14159){
|
||||
dataTemp="(暂无数据)";
|
||||
}else{
|
||||
dataTemp = quentityData[0].data
|
||||
}
|
||||
var data = getFullMapData(pNode,node);
|
||||
if(data!==null){
|
||||
d.push({
|
||||
name:quentityData[0].name,
|
||||
value:dataTemp,
|
||||
emphasis:{itemStyle:{areaColor: color,borderColor:"white",borderWidth:"1"}}
|
||||
});
|
||||
//获取地图数据
|
||||
//注册地图
|
||||
echarts.registerMap('电能质量', data);
|
||||
drawMap(d,name);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
//绘制柱状图
|
||||
var barOption = echarts.init($("#bar")[0]);
|
||||
var inte=[];
|
||||
var areas=[];
|
||||
if(null!=quentityData){
|
||||
//判断内部数据有没有大于max的,重新赋值max
|
||||
//判断内部数据有没有大于max的,重新赋值max
|
||||
max=getMaxValue(max,quentityData,temp);
|
||||
//具体情况具体分析,分析出间隔区间interval
|
||||
var intTemp=max/5;
|
||||
if(intTemp>1){
|
||||
interval=intTemp.toFixed(0);
|
||||
if(interval<intTemp){
|
||||
interval=Number(interval)+1;
|
||||
}
|
||||
max=interval*5;
|
||||
max=max.toFixed(0);
|
||||
}else if(intTemp>0.1){
|
||||
interval=intTemp.toFixed(1);
|
||||
if(interval<intTemp){
|
||||
interval=Number(interval)+0.1;
|
||||
}
|
||||
max=interval*5;
|
||||
max=max.toFixed(1);
|
||||
}else{
|
||||
interval=intTemp.toFixed(2);
|
||||
if(interval<intTemp){
|
||||
interval=Number(interval)+0.01;
|
||||
}
|
||||
max=interval*5;
|
||||
max=max.toFixed(2);
|
||||
}
|
||||
for(var i=0;i<quentityData.length;i++){
|
||||
areas[i]=quentityData[i].name+lineFeed+"("+quentityData[i].monitor+")";
|
||||
var singleData={};
|
||||
var item={};
|
||||
if(quentityData[i].data===3.1415){
|
||||
dataTemp=max*0.03;
|
||||
singleData.value=dataTemp;
|
||||
item.color=noMonitor;
|
||||
singleData.itemStyle=item;
|
||||
}else if(quentityData[i].data===3.14159){
|
||||
dataTemp=max*0.03;
|
||||
singleData.value=dataTemp;
|
||||
item.color=noData;
|
||||
singleData.itemStyle=item;
|
||||
}else if(quentityData[i].data<max*0.03){
|
||||
dataTemp=max*0.03;
|
||||
singleData.value=dataTemp;
|
||||
item.color="#2E8B57";
|
||||
item.actual=quentityData[i].data;
|
||||
singleData.itemStyle=item;
|
||||
}else{
|
||||
singleData.value=quentityData[i].data;
|
||||
var level=quentityData[i].level;
|
||||
if(name==="综合评估"){
|
||||
item.color=getColorByLevelAllData(level);
|
||||
}else{
|
||||
item.color=getColorByLevel(level);
|
||||
}
|
||||
singleData.itemStyle=item;
|
||||
}
|
||||
inte[i]=singleData;
|
||||
}
|
||||
}
|
||||
var option = {
|
||||
backgroundColor: canvasBG,//背景色
|
||||
tooltip: {
|
||||
trigger: 'axis',
|
||||
axisPointer: {
|
||||
type: 'shadow'
|
||||
},
|
||||
formatter: function (params) {
|
||||
var color=params[0].color;
|
||||
var tips="";
|
||||
tips+=params[0].name;
|
||||
if(color===noMonitor){
|
||||
tips+='<br/>'+params[0].seriesName+' : /';
|
||||
}else if(color===noData){
|
||||
tips+='<br/>'+params[0].seriesName+' : (暂无数据)';
|
||||
}else{
|
||||
if(params[0].data.itemStyle.actual!==undefined){
|
||||
tips+='<br/>'+params[0].seriesName+' : '+params[0].data.itemStyle.actual;
|
||||
}else{
|
||||
tips+='<br/>'+params[0].seriesName+' : '+params[0].value;
|
||||
}
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
},
|
||||
//控制图标在dataroom中的位置大小
|
||||
grid: {
|
||||
top:'12%',
|
||||
left: '4%',
|
||||
right: '10%',
|
||||
bottom: '3%',
|
||||
containLabel: true
|
||||
},
|
||||
xAxis: [{
|
||||
type: 'category',
|
||||
data: areas,
|
||||
splitLine: {
|
||||
show: false
|
||||
},
|
||||
name: '地区\n(监测点数)',
|
||||
axisLabel: {
|
||||
interval: 0,
|
||||
show: true,
|
||||
rotate:route,
|
||||
fontSize:10
|
||||
}
|
||||
}],
|
||||
yAxis: [{
|
||||
type: 'value',
|
||||
min:'0',
|
||||
name:unit,
|
||||
nameLocation:'center',
|
||||
nameTextStyle:{
|
||||
padding:[3, 7, 16, 1]
|
||||
},
|
||||
max:max
|
||||
}],
|
||||
series: [{
|
||||
name:name,
|
||||
type: 'bar',
|
||||
barMaxWidth: barMax,
|
||||
data: inte
|
||||
}]
|
||||
};
|
||||
barOption.setOption(option);
|
||||
//填充表格
|
||||
var height=picHeight*0.5-45;
|
||||
if(quentityData==null){
|
||||
quentityData=[];
|
||||
}
|
||||
$("#areaTable").DataTable({
|
||||
data: quentityData,
|
||||
autoWidth:false,
|
||||
order:[],
|
||||
columnDefs : [
|
||||
{ "width": "33%", "targets": 0 },
|
||||
{ "width": "33%", "targets": 1 },
|
||||
{ "width": "33%", "targets": 2 }
|
||||
],
|
||||
paging:false,
|
||||
lengthChange: false,
|
||||
searching:false,
|
||||
destroy : true,
|
||||
scrollY: height,
|
||||
info:false,
|
||||
pageLength:100,
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json',
|
||||
},
|
||||
columns: [
|
||||
{ data: 'name' },
|
||||
{ data: 'data',render:function (data, type, full, meta) {
|
||||
if(Number(data)===3.1415){
|
||||
return "/";
|
||||
}else if(Number(data)===3.14159){
|
||||
return "(暂无数据)";
|
||||
}else{
|
||||
return data;
|
||||
}
|
||||
}},
|
||||
{data:'level'}
|
||||
],
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
function renderMapEvent(data,f1,f2,f3,f4,f5,f6,f7,f8){
|
||||
//初始化绘制全国地图配置
|
||||
var optionEvent = {
|
||||
backgroundColor: canvasBG,
|
||||
title : {
|
||||
text: powerName+'评估',
|
||||
left: 'center'
|
||||
},
|
||||
animationDuration:1000,
|
||||
animationEasing:'cubicOut',
|
||||
animationDurationUpdate:1000,
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter:function(params){
|
||||
var tips="";
|
||||
tips +='<font style=\'color:'+white+'\'>'+params.name+'</font>';
|
||||
if(isNaN(params.value)){
|
||||
tips +='<font style=\'color:'+white+'\'>暂无数据</font><br/>';
|
||||
}else{
|
||||
tips +='<font style=\'color:'+white+'\'>:'+params.value+'</font><br/>';
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
}
|
||||
};
|
||||
optionEvent.visualMap= {
|
||||
type: 'piecewise',
|
||||
pieces: [
|
||||
{gt: f8,label: '极度污染'},
|
||||
{gt: f7, lte: f8,label: '重度污染'},
|
||||
{gt: f6, lte: f7,label: '中度污染'},
|
||||
{gt: f5, lte: f6,label: '轻度污染'},
|
||||
{gt: f4, lte:f5,label: '良好'},
|
||||
{gt: f3, lte: f4,label: '优良'},
|
||||
{gt: f2, lte: f3,label: '优质'},
|
||||
{gte: f1, lte: f2,label: '特质'}
|
||||
],
|
||||
color: [red,yellow,green],
|
||||
inverse:true
|
||||
};
|
||||
optionEvent.series = [
|
||||
{
|
||||
// name: map,
|
||||
type: 'map',
|
||||
mapType: '电能质量',
|
||||
roam: true,
|
||||
label: {
|
||||
normal:{
|
||||
show:true,
|
||||
textStyle:{
|
||||
ccolor:'black',
|
||||
fontSize:10
|
||||
}
|
||||
},
|
||||
emphasis: {
|
||||
show: true,
|
||||
textStyle:{
|
||||
color:'#fff',
|
||||
fontSize:10
|
||||
}
|
||||
}
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
areaColor: '#CCCCCC',
|
||||
borderColor: 'dodgerblue'
|
||||
},
|
||||
emphasis: {
|
||||
areaColor: '#B6B5B5'
|
||||
}
|
||||
},
|
||||
data:data
|
||||
}
|
||||
];
|
||||
mapEvent.dispatchAction({
|
||||
type: 'restore'
|
||||
})
|
||||
//渲染地图
|
||||
mapEvent.setOption(optionEvent);
|
||||
}
|
||||
|
||||
function renderMapEventAll(data,f1,f2,f3,f4,f5,f6){
|
||||
//初始化绘制全国地图配置
|
||||
var optionEvent = {
|
||||
backgroundColor: canvasBG,
|
||||
title : {
|
||||
text: powerName,
|
||||
left: 'center'
|
||||
},
|
||||
animationDuration:1000,
|
||||
animationEasing:'cubicOut',
|
||||
animationDurationUpdate:1000,
|
||||
tooltip: {
|
||||
trigger: 'item',
|
||||
formatter:function(params){
|
||||
var tips="";
|
||||
if(isNaN(params.value)){
|
||||
if(params.data===undefined||params.data.value===undefined){
|
||||
tips +='<font style=\'color:'+white+'\'>暂无数据</font><br/>';
|
||||
}else if(params.data.value==="/"|params.data.value==="(暂无数据)"){
|
||||
tips +='<font style=\'color:'+white+'\'>'+params.name+'</font></br>';
|
||||
tips +=powerName+'<font style=\'color:'+white+'\'>:'+params.data.value+'</font><br/>';
|
||||
}
|
||||
}else{
|
||||
tips +='<font style=\'color:'+white+'\'>'+params.name+'</font></br>';
|
||||
tips +=powerName+'<font style=\'color:'+white+'\'>:'+params.value+'</font><br/>';
|
||||
}
|
||||
return tips;
|
||||
}
|
||||
}
|
||||
};
|
||||
optionEvent.visualMap= {
|
||||
type: 'piecewise',
|
||||
pieces: [
|
||||
{gte: f5, lte: f6, label: '优质'},
|
||||
{gte: f4, lt: f5, label: '良好'},
|
||||
{gte: f3, lt: f4, label: '合格'},
|
||||
{gte: f2, lt: f3, label: '较差'},
|
||||
{gte: f1, lt: f2, label: '极差'}
|
||||
],
|
||||
color: [green,yellow,red],
|
||||
inverse:false
|
||||
};
|
||||
optionEvent.series = [
|
||||
{
|
||||
// name: map,
|
||||
type: 'map',
|
||||
mapType: '电能质量',
|
||||
roam: true,
|
||||
label: {
|
||||
normal:{
|
||||
show:true,
|
||||
textStyle:{
|
||||
color:'black',
|
||||
fontSize:10
|
||||
}
|
||||
},
|
||||
emphasis: {
|
||||
show: true,
|
||||
textStyle:{
|
||||
color:'black',
|
||||
fontSize:10
|
||||
}
|
||||
}
|
||||
},
|
||||
itemStyle: {
|
||||
normal: {
|
||||
areaColor: '#CCCCCC',
|
||||
borderColor: 'dodgerblue'
|
||||
},
|
||||
emphasis: {
|
||||
areaColor: '#B6B5B5'
|
||||
}
|
||||
},
|
||||
data:data
|
||||
}
|
||||
];
|
||||
mapEvent.dispatchAction({
|
||||
type: 'restore'
|
||||
})
|
||||
//渲染地图
|
||||
mapEvent.setOption(optionEvent);
|
||||
}
|
||||
|
||||
function divdangerMouseOver() {
|
||||
var tab = parent.$("#target").text()
|
||||
if(tab==="综合评估"){
|
||||
initTipTableAll([["等级","1","2","3","4","5"],["综合评估","[1,2]","(2,3]","(3,4]","(4,4.5]","(4.5,5]"]]);
|
||||
$("#tipsAll").css("display","block");
|
||||
}else{
|
||||
if(tab==="电压偏差"){
|
||||
initTipTable([["等级","1","2","3","4","5","6","7","8"],["电压偏差(≤10%)","[0,2.5]","(2.5,5]","(5,7.5]","(7.5,10]","(10,12.5]","(12.5,15]","(15,17.5]","(17.5,+∞)"]]);
|
||||
}else if(tab==="电压闪变"){
|
||||
initTipTable([["等级","1","2","3","4","5","6","7","8"],["电压闪变(≤0.6)","[0,0.15]","(0.15,0.3]","(0.3,0.45]","(0.45,0.60]","(0.6,0.75]","(0.75,0.90]","(0.90,1.05]","(1.05,+∞)"]]);
|
||||
}else if(tab==="谐波含量"){
|
||||
initTipTable([["等级","1","2","3","4","5","6","7","8"],["谐波含量(≤2.00%)","[0,0.5]","(0.5,1]","(1,1.5]","(1.5,2]","(2,2.5]","(2.5,3]","(3,3.5]","(3.5,+∞)"]]);
|
||||
}else if(tab==="频率偏差"){
|
||||
initTipTable([["等级","1","2","3","4","5","6","7","8"],["频率偏差(≤±0.2Hz)","[0,0.05]","(0.05,0.10]","(0.10,0.15]","(0.15,0.20]","(0.20,0.25]","(0.25,0.30]","(0.30,0.35]","(0.35,+∞)"]]);
|
||||
}else if(tab==="三相电压不平衡度"){
|
||||
initTipTable([["等级","1","2","3","4","5","6","7","8"],["三相电压不平衡度(≤2.0%)","[0,0.5]","(0.5,1]","(1,1.5]","(1.5,2]","(2,2.5]","(2.5,3]","(3,3.5]","(3.5,+∞)"]]);
|
||||
}
|
||||
$("#tips").css("display","block");
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
function divdangerMouseOut() {
|
||||
$("#tips").css("display","none");
|
||||
$("#tipsAll").css("display","none");
|
||||
}
|
||||
|
||||
function initTipTable(data) {
|
||||
$("#tipTable").DataTable({
|
||||
data: data,
|
||||
autoWidth:false,
|
||||
ordering:false,
|
||||
paging:false,
|
||||
lengthChange: false,
|
||||
searching:false,
|
||||
destroy : true,
|
||||
info:false,
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json',
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
function initTipTableAll(data) {
|
||||
$("#tipTableAll").DataTable({
|
||||
data: data,
|
||||
autoWidth:false,
|
||||
ordering:false,
|
||||
paging:false,
|
||||
lengthChange: false,
|
||||
searching:false,
|
||||
destroy : true,
|
||||
info:false,
|
||||
language : {
|
||||
url:'/pqs9000/json/chine.json',
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
//特殊处理,表头紧缩问题--start
|
||||
var it=null;
|
||||
function startQuery() {
|
||||
//实时刷新时间单位为毫秒
|
||||
it= setInterval('refreshQuery()',100);
|
||||
|
||||
}
|
||||
/* 刷新查询 */
|
||||
function refreshQuery(){
|
||||
var width=$("#table").width();
|
||||
if(width>100){
|
||||
if (powerQualityData===null){
|
||||
initMap(null,'综合评估',5,1,'',lineFeed,barRouteZero)
|
||||
}else{
|
||||
var powerLength=powerQualityData.synData==null?0:powerQualityData.synData.length;
|
||||
if(parseInt(powerLength)>parseInt(barUpperLimit6)){
|
||||
initMap(powerQualityData.synData,'综合评估',5,1,'',noLineFeed,barRouteIncline)
|
||||
}else {
|
||||
initMap(powerQualityData.synData,'综合评估',5,1,'',lineFeed,barRouteZero)
|
||||
}
|
||||
}
|
||||
window.clearInterval(it)
|
||||
}
|
||||
}
|
||||
//特殊处理,表头紧缩问题--end
|
||||
1433
pqs9000/src/main/webapp/jspJS/report/excel.js
Normal file
1433
pqs9000/src/main/webapp/jspJS/report/excel.js
Normal file
File diff suppressed because it is too large
Load Diff
72
pqs9000/src/main/webapp/jspJS/report/percent.js
Normal file
72
pqs9000/src/main/webapp/jspJS/report/percent.js
Normal file
@@ -0,0 +1,72 @@
|
||||
$(function () {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
|
||||
$("#export").click(function () {
|
||||
getPercentData();
|
||||
});
|
||||
});
|
||||
|
||||
|
||||
function getTimeType() {
|
||||
var interval = $("#interval").val();
|
||||
if (interval === "年份") {
|
||||
return 1;
|
||||
} else if (interval === "季度") {
|
||||
return 2;
|
||||
} else if (interval === "月份") {
|
||||
return 3;
|
||||
} else /*if (interval === "周") {
|
||||
return 4;
|
||||
} else */{
|
||||
return 4;
|
||||
}
|
||||
}
|
||||
|
||||
function getPercentData() {
|
||||
var startTime = $("#startTime").val();
|
||||
var endTime = $("#endTime").val();
|
||||
var timeType = getTimeType();
|
||||
var pointNode = getTreeSelected(1);
|
||||
|
||||
if (0 === pointNode.length) {
|
||||
layer.msg('请选择一个监测点.');
|
||||
return;
|
||||
}
|
||||
|
||||
var points = '';
|
||||
var pointName = '';
|
||||
var lineName = '';
|
||||
var factory = '';
|
||||
var factorys = '';
|
||||
factory = pointNode[0].getParentNode().getParentNode().getParentNode().getParentNode().name;
|
||||
|
||||
for (var i = 0; i < pointNode.length; i++) {
|
||||
points += pointNode[i].nodeIndex + ",";
|
||||
pointName += pointNode[i].name + ",";
|
||||
lineName += pointNode[i].getParentNode().name + ",";
|
||||
factorys = pointNode[i].getParentNode().getParentNode().getParentNode().getParentNode().name;
|
||||
|
||||
if (factory != factorys) {
|
||||
layer.msg('请不要跨省选择');
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
$.post("/pqs9000/percent/createPercent", {
|
||||
"startTime": startTime,
|
||||
"endTime": endTime,
|
||||
"timeType": timeType,
|
||||
"list": points,
|
||||
"lineName": lineName,
|
||||
"listPointName": pointName,
|
||||
"factory": factory
|
||||
}, function (data) {
|
||||
if (data.code === 200) {
|
||||
window.location.href = "/pqs9000/percent/exportPercent";
|
||||
} else {
|
||||
layer.msg("报表生成失败");
|
||||
}
|
||||
}
|
||||
);
|
||||
}
|
||||
51
pqs9000/src/main/webapp/jspJS/responsibility/counts.js
Normal file
51
pqs9000/src/main/webapp/jspJS/responsibility/counts.js
Normal file
@@ -0,0 +1,51 @@
|
||||
var timesData=[
|
||||
{"2":"2"},
|
||||
{"3":"3"},
|
||||
{"4":"4"},
|
||||
{"5":"5"},
|
||||
{"6":"6"},
|
||||
{"7":"7"},
|
||||
{"8":"8"},
|
||||
{"9":"9"},
|
||||
{"10":"10"},
|
||||
{"11":"11"},
|
||||
{"12":"12"},
|
||||
{"13":"13"},
|
||||
{"14":"14"},
|
||||
{"15":"15"},
|
||||
{"16":"16"},
|
||||
{"17":"17"},
|
||||
{"18":"18"},
|
||||
{"19":"19"},
|
||||
{"20":"20"},
|
||||
{"21":"21"},
|
||||
{"22":"22"},
|
||||
{"23":"23"},
|
||||
{"24":"24"},
|
||||
{"25":"25"},
|
||||
{"26":"26"},
|
||||
{"27":"27"},
|
||||
{"28":"28"},
|
||||
{"29":"29"},
|
||||
{"30":"30"},
|
||||
{"31":"31"},
|
||||
{"32":"32"},
|
||||
{"33":"33"},
|
||||
{"34":"34"},
|
||||
{"35":"35"},
|
||||
{"36":"36"},
|
||||
{"37":"37"},
|
||||
{"38":"38"},
|
||||
{"39":"39"},
|
||||
{"40":"40"},
|
||||
{"41":"41"},
|
||||
{"42":"42"},
|
||||
{"43":"43"},
|
||||
{"44":"44"},
|
||||
{"45":"45"},
|
||||
{"46":"46"},
|
||||
{"47":"47"},
|
||||
{"48":"48"},
|
||||
{"49":"49"},
|
||||
{"50":"50"},
|
||||
];
|
||||
299
pqs9000/src/main/webapp/jspJS/responsibility/tree.js
Normal file
299
pqs9000/src/main/webapp/jspJS/responsibility/tree.js
Normal file
@@ -0,0 +1,299 @@
|
||||
var treeObj = null;
|
||||
var loadColor;
|
||||
|
||||
function getMonitorType() {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
data: {},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
var name = data.body.name + "上报";
|
||||
loadColor = data.body.value;
|
||||
var option = $("<option value='4'>"
|
||||
+ name + "</option>");
|
||||
$('#datatype').append(option);
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
//*********************左边树内容start
|
||||
//文档流完毕后,开始获取树结构
|
||||
$(document).ready(function () {
|
||||
getMonitorType();
|
||||
//文档流加载完成后,给设备树一个高度,同时给个border边框
|
||||
var treeHeight = $(window).height() - 35;
|
||||
$("#tree").css("height", treeHeight);
|
||||
$("#leftContainer").css("border-right", "solid 1px");
|
||||
$("#fileDiv").css("height", treeHeight - 60);
|
||||
getTree();
|
||||
});
|
||||
//树的基础配置
|
||||
var setting = {
|
||||
check: {
|
||||
enable: true,
|
||||
chkDisabledInherit: true
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable: true
|
||||
}
|
||||
},
|
||||
view: {
|
||||
fontCss: setHighlight // 高亮一定要设置,setHighlight是自定义方法
|
||||
},
|
||||
callback: {
|
||||
onClick: zTreeOnClick
|
||||
}
|
||||
};
|
||||
|
||||
// 设置高亮字体
|
||||
function setHighlight(treeId, treeNode) {
|
||||
return (!!treeNode.highlight) ? {
|
||||
color: "#000",
|
||||
"font-weight": "bold"
|
||||
} : {
|
||||
color: "#999",
|
||||
"font-weight": "normal"
|
||||
};
|
||||
}
|
||||
|
||||
//获取设备树
|
||||
function getTree() {
|
||||
var loadingIndex
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/nodeplatetree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
loadingIndex = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
initTree(data.body);
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(loadingIndex);
|
||||
}
|
||||
});
|
||||
|
||||
// $.ajax({
|
||||
// type: 'POST',
|
||||
// url: '/pqs9000/device/deviceTree',
|
||||
// beforeSend: function () {
|
||||
// loadingIndex = ityzl_SHOW_LOAD_LAYER();
|
||||
// },
|
||||
// error: function () {
|
||||
// //console.log("获取设备树内容失败!");
|
||||
// },
|
||||
// dataType: "json",
|
||||
// success: function (zNodes) {
|
||||
// for (var index = 0; index < zNodes.length; index++) {
|
||||
// if (zNodes[index].nodeType === 1) {
|
||||
// zNodes[index].icon = "../images/img/base.png";
|
||||
// } else if (zNodes[index].nodeType === 2) {
|
||||
// zNodes[index].icon = "../images/img/power.png";
|
||||
// } else if (zNodes[index].nodeType === 3) {
|
||||
// zNodes[index].icon = "../images/img/substation.png";
|
||||
// } else if (zNodes[index].nodeType === 4) {
|
||||
// zNodes[index].icon = "../images/img/device.png";
|
||||
// } else if (zNodes[index].nodeType === 5) {
|
||||
// zNodes[index].icon = "../images/img/subvstation.png";
|
||||
// } else if (zNodes[index].nodeType === 6) {
|
||||
// zNodes[index].icon = "../images/img/gray.png";
|
||||
// }
|
||||
// }
|
||||
// treeObj = $.fn.zTree.init($("#tree"), setting, zNodes);
|
||||
// //展开第一层级
|
||||
// var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
// var nodes = zTree.getNodes();
|
||||
// zTree.expandNode(nodes[0], true);
|
||||
// checkedTree(zTree);
|
||||
// //***********关闭loading
|
||||
// ityzl_CLOSE_LOAD_LAYER(loadingIndex);
|
||||
// }
|
||||
// });
|
||||
}
|
||||
|
||||
// 初始化终端树
|
||||
function initTree(treeData) {
|
||||
if (treeData.length == 0) {
|
||||
layer.msg("数据库数据为空,终端树加载失败.");
|
||||
return;
|
||||
}
|
||||
|
||||
var datalist = [];
|
||||
for (var i = 0; i < treeData.length; i++) {
|
||||
var str = '';
|
||||
|
||||
str += '{' + "id:" + treeData[i].id;
|
||||
str += ',' + "name:'" + treeData[i].name + "'";
|
||||
str += ',' + "nodeIndex:" + treeData[i].nodeIndex;
|
||||
str += ',' + "nodeType:" + treeData[i].nodeType;
|
||||
str += ',' + "ppId:" + treeData[i].ppId;
|
||||
if (treeData[i].nodeType == "0") {
|
||||
str += ',' + "open:" + true;
|
||||
} else {
|
||||
str += ',' + "open:" + false;
|
||||
}
|
||||
str += ',' + "state:" + treeData[i].state;
|
||||
str += ',' + "status:" + treeData[i].status;
|
||||
str += ',' + "powerType:" + treeData[i].powerType;
|
||||
str += ',' + "pttype:" + treeData[i].pttype;
|
||||
str += ',' + "pId:" + treeData[i].pId + '}';
|
||||
datalist.push(str);
|
||||
}
|
||||
|
||||
datalist = eval('[' + datalist + ']');// string->json数组
|
||||
var zNodes = datalist;
|
||||
|
||||
for (var index = 0; index < zNodes.length; index++) {
|
||||
if (zNodes[index].nodeType == 0) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwbase.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwbase.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 1) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwprovince.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwprovince.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 2) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwpower.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwpower.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 3) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwsubstation.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwsubstation.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 4) {
|
||||
if (zNodes[index].state == 2) {
|
||||
zNodes[index].icon = "../images/img/gray.png";
|
||||
} else if (zNodes[index].state == 1) {
|
||||
zNodes[index].icon = "../images/img/yellow.png";
|
||||
} else {
|
||||
if (zNodes[index].status == 0) {
|
||||
zNodes[index].icon = "../images/img/red.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/green.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
treeObj = $.fn.zTree.init($("#tree"), setting, zNodes);
|
||||
|
||||
//展开第一层级
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getNodes();
|
||||
zTree.expandNode(nodes[0], true);
|
||||
checkedTree(zTree);
|
||||
}
|
||||
|
||||
//默认选中某个节点
|
||||
function checkedTree(zTree) {
|
||||
if (zTree != null) {
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].name === "测试1") {
|
||||
var devName = nodes[i].getParentNode().getParentNode();
|
||||
var subvName = nodes[i].getParentNode();
|
||||
$("#lineIndex").val(nodes[i].nodeIndex);
|
||||
$("#monitorInfo").text(devName.name + '->' + subvName.name + '->' + nodes[i].name);
|
||||
//高亮
|
||||
zTree.expandNode(nodes[i].getParentNode().getParentNode().getParentNode().getParentNode(), true);
|
||||
zTree.expandNode(nodes[i].getParentNode().getParentNode().getParentNode(), true);
|
||||
zTree.expandNode(nodes[i].getParentNode().getParentNode(), true);
|
||||
zTree.expandNode(nodes[i].getParentNode(), true);
|
||||
zTree.expandNode(nodes[i], true);
|
||||
nodes[i].highlight = true;
|
||||
zTree.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
}
|
||||
}
|
||||
// 高亮并展开搜索到的节点
|
||||
// for (var i = 0; i < nodes.length; i++) {
|
||||
// nodes[i].highlight = true;
|
||||
// treeObj.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
// }
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
//树节点点击效果
|
||||
function zTreeOnClick() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
if (zTree != null) {
|
||||
var nodes = zTree.getSelectedNodes(); //获取树控件选中对象集合
|
||||
// 关闭所有节点的高亮
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());
|
||||
for (var i = 0; i < allNodes.length; i++) {
|
||||
allNodes[i].highlight = false;
|
||||
treeObj.updateNode(allNodes[i]);
|
||||
}
|
||||
// 高亮并展开搜索到的节点
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].highlight = true;
|
||||
treeObj.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
}
|
||||
if (nodes[0].level === 4) { //如果选中监测点信息则进行处理,其他信息不处理
|
||||
var devName = nodes[0].getParentNode().getParentNode();
|
||||
var subvName = nodes[0].getParentNode();
|
||||
$("#lineIndex").val(nodes[0].nodeIndex);
|
||||
$("#monitorInfo").text(devName.name + '->' + subvName.name + '->' + nodes[0].name);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//搜索框内值变化触发函数
|
||||
function valueChange(value) {
|
||||
if (value == '') {
|
||||
closeHigh();
|
||||
}
|
||||
}
|
||||
|
||||
// 关闭所有高亮节点
|
||||
function closeHigh() {
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());// 关闭所有节点的高亮
|
||||
|
||||
for (var i = 0; i < allNodes.length; i++) {
|
||||
allNodes[i].highlight = false;
|
||||
treeObj.updateNode(allNodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// 模糊搜索name满足条件的节点
|
||||
function searchNode(value) {
|
||||
if (value === "")
|
||||
return;
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = treeObj.getNodesByParamFuzzy("name", value);// 获取搜索的节点
|
||||
closeHigh();
|
||||
treeObj.expandAll(false);// 展开第一层节点
|
||||
treeObj.expandNode(treeObj.getNodes()[0], true);
|
||||
// 高亮并展开搜索到的节点
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].highlight = true;
|
||||
treeObj.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
treeObj.expandNode(nodes[i].getParentNode(), true);
|
||||
}
|
||||
}
|
||||
|
||||
//*********************左边树内容end
|
||||
3722
pqs9000/src/main/webapp/jspJS/sm2.js
Normal file
3722
pqs9000/src/main/webapp/jspJS/sm2.js
Normal file
File diff suppressed because it is too large
Load Diff
255
pqs9000/src/main/webapp/jspJS/sm3.js
Normal file
255
pqs9000/src/main/webapp/jspJS/sm3.js
Normal file
@@ -0,0 +1,255 @@
|
||||
/**
|
||||
* 国密摘要算法(SM3)
|
||||
* @param str:raw string
|
||||
* @return the 256-bit hex string produced by SM3 from a raw string
|
||||
*/
|
||||
function sm3Digest(str) {
|
||||
//1. 转换为二进制数组
|
||||
var binArr = str2bin(str2rstr_utf8(str));
|
||||
//2. 填充
|
||||
var groupNum = alignSM3(binArr, str.length);
|
||||
//3. 迭代压缩
|
||||
var v = new Array(8);//初始值
|
||||
v[0] = 0x7380166f;
|
||||
v[1] = 0x4914b2b9;
|
||||
v[2] = 0x172442d7;
|
||||
v[3] = 0xda8a0600;
|
||||
v[4] = 0xa96f30bc;
|
||||
v[5] = 0x163138aa;
|
||||
v[6] = 0xe38dee4d;
|
||||
v[7] = 0xb0fb0e4e;
|
||||
//按 512bit 分组进行压缩
|
||||
for (var i = 0; i < groupNum; i++) {
|
||||
v = compress(v, binArr, i);
|
||||
}
|
||||
return word2str(v, '');
|
||||
}
|
||||
|
||||
/**
|
||||
* 将数组转换为字符串。数组长度不定,每个元素为 32bit 的数字。
|
||||
* @param words:数组,每个元素为 32bit 的数字
|
||||
* @param seperator:在每个数组元素转换得到的字符串之间的分隔符
|
||||
*/
|
||||
function word2str(words, seperator) {
|
||||
var prefix = Array(8).join('0');
|
||||
for (var i = 0; i < words.length; i++) {
|
||||
//若 hex 不足 8 位,则高位补 0
|
||||
words[i] = (prefix + (words[i] >>> 0).toString(16)).slice(-8);
|
||||
}
|
||||
|
||||
return words.join(seperator);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将字符串转换为二进制数组,默认字符串编码为 UTF-8,且范围在 0x00~0xFF 内。
|
||||
* 若某些字符的编码超过此范围,则会只保留最低字节。加密可正常进行,但加密结果有误。
|
||||
* 每个数组元素包含 4 个字符,即 32 bit。
|
||||
* @param 字符串
|
||||
* @return 数组,长度为(字符串长度 / 4),每个元素为 32bit 的数字
|
||||
*/
|
||||
function str2bin(str) {
|
||||
var binary = new Array(str.length >> 2);
|
||||
for (var i = 0; i < str.length * 8; i += 8) {
|
||||
binary[i >> 5] |= (str.charCodeAt(i / 8) & 0xFF) << (24 - i % 32);
|
||||
}
|
||||
return binary;
|
||||
}
|
||||
|
||||
/**
|
||||
* 对明文的二进制串进行填充
|
||||
* <pre>
|
||||
* | 满足 mod 512 = 448 | 固定 64 位 |
|
||||
* | 明文二进制 |填充部分|明文二进制串的长度的二进制表示|
|
||||
* xxxxxxxxxxxx 10.....0 0...........................xx
|
||||
* </pre>
|
||||
* @param arr:数组,每个元素为 32bit 的数字
|
||||
* @param strLen:明文字符串长度
|
||||
* @return 数组,每个元素为 32bit 的数字,数组长度为 16 的倍数(包括 16)
|
||||
*/
|
||||
function alignSM3(arr, strLen) {
|
||||
//在明文二进制串后面拼接 1000 0000
|
||||
arr[strLen >> 2] |= 0x80 << (24 - strLen % 4 * 8);
|
||||
var groupNum = ((strLen + 8) >> 6) + 1;//以 512bit 为一组,总的组数
|
||||
var wordNum = groupNum * 16;//一个 word 32bit,总的 word 数
|
||||
|
||||
for (var i = (strLen >> 2) + 1; i < wordNum; i++) {
|
||||
arr[i] = 0;
|
||||
}
|
||||
arr[wordNum - 1] = strLen * 8;//在末尾填上明文的二进制长度
|
||||
|
||||
return groupNum;
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数中的置换函数
|
||||
*/
|
||||
function p0(x) {
|
||||
return x ^ bitRol(x, 9) ^ bitRol(x, 17);
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数中的置换函数
|
||||
*/
|
||||
function p1(x) {
|
||||
return x ^ bitRol(x, 15) ^ bitRol(x, 23);
|
||||
}
|
||||
|
||||
/**
|
||||
* 循环左移
|
||||
*/
|
||||
function bitRol(input, n) {
|
||||
return (input << n) | (input >>> (32 - n));
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数
|
||||
*/
|
||||
function compress(v, binArr, i) {
|
||||
//将消息分组扩展成 132 个字
|
||||
var w1 = new Array(68);
|
||||
var w2 = new Array(64);
|
||||
for (var j = 0; j < 68; j++) {
|
||||
if (j < 16) {
|
||||
w1[j] = binArr[i * 16 + j];
|
||||
} else {
|
||||
w1[j] = p1(w1[j-16] ^ w1[j-9] ^ bitRol(w1[j-3], 15)) ^ bitRol(w1[j-13], 7) ^ w1[j-6];
|
||||
}
|
||||
}
|
||||
for (var j = 0; j < 64; j++) {
|
||||
w2[j] = w1[j] ^ w1[j+4];
|
||||
}
|
||||
|
||||
//压缩
|
||||
var a = v[0];
|
||||
var b = v[1];
|
||||
var c = v[2];
|
||||
var d = v[3];
|
||||
var e = v[4];
|
||||
var f = v[5];
|
||||
var g = v[6];
|
||||
var h = v[7];
|
||||
var ss1;
|
||||
var ss2;
|
||||
var tt1;
|
||||
var tt2;
|
||||
for (var j = 0; j < 64; j++) {
|
||||
ss1 = bitRol(addAll(bitRol(a, 12) , e , bitRol(t(j), j)), 7);
|
||||
ss2 = ss1 ^ bitRol(a, 12);
|
||||
tt1 = addAll(ff(a, b, c, j) , d , ss2 , w2[j]);
|
||||
tt2 = addAll(gg(e, f, g, j) , h , ss1 , w1[j]);
|
||||
d = c;
|
||||
c = bitRol(b, 9);
|
||||
b = a;
|
||||
a = tt1;
|
||||
h = g;
|
||||
g = bitRol(f, 19);
|
||||
f = e;
|
||||
e = p0(tt2);
|
||||
}
|
||||
v[0] ^= a;
|
||||
v[1] ^= b;
|
||||
v[2] ^= c;
|
||||
v[3] ^= d;
|
||||
v[4] ^= e;
|
||||
v[5] ^= f;
|
||||
v[6] ^= g;
|
||||
v[7] ^= h;
|
||||
return v;
|
||||
}
|
||||
|
||||
/**
|
||||
* 常量 T 随 j 的不同而不同
|
||||
*/
|
||||
function t(j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return 0x79CC4519;
|
||||
} else if (j < 64) {
|
||||
return 0x7A879D8A;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 布尔函数,随 j 的变化取不同的表达式
|
||||
*/
|
||||
function ff(x, y, z, j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return x ^ y ^ z;
|
||||
} else if (j < 64) {
|
||||
return (x & y) | (x & z) | (y & z);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 布尔函数,随 j 的变化取不同的表达式
|
||||
*/
|
||||
function gg(x, y, z, j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return x ^ y ^ z;
|
||||
} else if (j < 64) {
|
||||
return (x & y) | (~x & z);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 两数相加
|
||||
* 避免某些 js 引擎的 32 位加法的 bug
|
||||
*/
|
||||
function safe_add(x, y) {
|
||||
var lsw = ( x & 0xFFFF ) + (y & 0xFFFF);
|
||||
var msw = ( x >> 16 ) + (y >> 16) + (lsw >> 16);
|
||||
return (msw << 16) | ( lsw & 0xFFFF );
|
||||
}
|
||||
|
||||
/**
|
||||
* 将所有参数相加
|
||||
*/
|
||||
function addAll() {
|
||||
var sum = 0;
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
sum = safe_add(sum, arguments[i]);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
/**
|
||||
* UTF-16 --> UTF-8
|
||||
*/
|
||||
function str2rstr_utf8(input) {
|
||||
var output = "" ;
|
||||
var i = -1 ;
|
||||
var x, y ;
|
||||
|
||||
while(++ i < input.length) {
|
||||
//按 UTF-16 解码
|
||||
x = input.charCodeAt(i);
|
||||
y = i + 1 < input.length ? input .charCodeAt (i + 1) : 0 ;
|
||||
if( 0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF ) {
|
||||
x = 0x10000 + ((x & 0x03FF) << 10 ) + (y & 0x03FF);
|
||||
i++;
|
||||
}
|
||||
|
||||
//按 UTF-8 编码
|
||||
if( x <= 0x7F ) {
|
||||
output += String.fromCharCode(x);
|
||||
}
|
||||
else if(x <= 0x7FF) {
|
||||
output += String.fromCharCode(
|
||||
0xC0 | ((x >>> 6 ) & 0x1F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
} else if(x <= 0xFFFF) {
|
||||
output += String.fromCharCode(
|
||||
0xE0 | ((x >>> 12) & 0x0F ),
|
||||
0x80 | ((x >>> 6 ) & 0x3F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
} else if(x <= 0x1FFFFF) {
|
||||
output += String.fromCharCode(
|
||||
0xF0 | ((x >>> 18) & 0x07 ),
|
||||
0x80 | ((x >>> 12) & 0x3F),
|
||||
0x80 | ((x >>> 6 ) & 0x3F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
38
pqs9000/src/main/webapp/jspJS/utils/barUtil.js
Normal file
38
pqs9000/src/main/webapp/jspJS/utils/barUtil.js
Normal file
@@ -0,0 +1,38 @@
|
||||
var barUpperLimit7;
|
||||
var barUpperLimit6;
|
||||
var barUpperLimit12;
|
||||
var barRouteZero=0;
|
||||
var barRouteIncline=30;
|
||||
var lineFeed="\n";
|
||||
var noLineFeed="";
|
||||
|
||||
if(screen.availWidth===1536){//####################1920*1080 125%
|
||||
barUpperLimit6=10;
|
||||
barUpperLimit7=11;
|
||||
barUpperLimit12=22;
|
||||
}else if(screen.availWidth===1920){//####################1920*1080 100%
|
||||
barUpperLimit6=12;
|
||||
barUpperLimit7=13;
|
||||
barUpperLimit12=25;
|
||||
}else if(1300<screen.availWidth&screen.availWidth<1500){//####################包括1366*768 1360*768 1680*1050的125%三种分辨率
|
||||
barUpperLimit6=9;
|
||||
barUpperLimit7=9;
|
||||
barUpperLimit12=22;
|
||||
}else if(screen.availWidth===1680){//####################1680*1050 100%
|
||||
barUpperLimit6=11;
|
||||
barUpperLimit7=12;
|
||||
barUpperLimit12=22;
|
||||
}else if(screen.availWidth===1600){//####################1600*900 100%
|
||||
barUpperLimit6=10;
|
||||
barUpperLimit7=11;
|
||||
barUpperLimit12=22;
|
||||
}else if(screen.availWidth===1280){//####################1280*1024 100%
|
||||
barUpperLimit6=9;
|
||||
barUpperLimit7=10;
|
||||
barUpperLimit12=20;
|
||||
barRouteIncline=40;
|
||||
}else{//其他分辨率暂时给默认值10
|
||||
barUpperLimit6=10;
|
||||
barUpperLimit7=10;
|
||||
barUpperLimit12=20;
|
||||
}
|
||||
76
pqs9000/src/main/webapp/jspJS/utils/common.js
Normal file
76
pqs9000/src/main/webapp/jspJS/utils/common.js
Normal file
@@ -0,0 +1,76 @@
|
||||
/**
|
||||
* 获取url参数
|
||||
* @param name 参数名
|
||||
* @returns 值
|
||||
*/
|
||||
function getQueryString(name) {
|
||||
var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)");
|
||||
var result = window.location.search.substr(1).match(reg);
|
||||
return result ? decodeURIComponent(result[2]) : '';
|
||||
}
|
||||
|
||||
/**
|
||||
* 格式化时间(需要Date类型)
|
||||
* @param name 参数名
|
||||
* @returns 值
|
||||
*/
|
||||
function formatTime(data,type) {
|
||||
if (data == null) {
|
||||
return '/';
|
||||
} else {
|
||||
var date = new Date(data);
|
||||
var y = date.getFullYear();// 年
|
||||
var MM = date.getMonth() + 1;// 月
|
||||
MM = MM < 10 ? ('0' + MM) : MM;
|
||||
var c = date.getDate();// 日
|
||||
c = c < 10 ? ('0' + c) : c;
|
||||
var h = date.getHours();// 时
|
||||
h = h < 10 ? ('0' + h) : h;
|
||||
var m = date.getMinutes();// 分
|
||||
m = m < 10 ? ('0' + m) : m;
|
||||
var s = date.getSeconds();// 秒
|
||||
s = s < 10 ? ('0' + s) : s;
|
||||
}
|
||||
if(type == 1){
|
||||
//精确到秒
|
||||
return y + '-' + MM + '-' + c + ' ' + h + ':' + m + ':' + s;
|
||||
}else {
|
||||
return y + '-' + MM + '-' + c;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
//验证输入框输入长度
|
||||
function valiteLength(value) {
|
||||
var i,sum;
|
||||
sum=0;
|
||||
for(i=0;i<value.length;i++){
|
||||
if ((value.charCodeAt(i)>=0) && (value.charCodeAt(i)<=64))
|
||||
sum=sum+1;
|
||||
else
|
||||
sum=sum+2;
|
||||
}
|
||||
if (sum > 64) {
|
||||
return '最多只能64个字符或者32个中文字';
|
||||
}else {
|
||||
return ''
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取当前年月
|
||||
*/
|
||||
|
||||
function getNowDate() {
|
||||
var myDate = new Date();
|
||||
var tYear = myDate.getFullYear();
|
||||
var tMonth = myDate.getMonth();
|
||||
|
||||
var m = tMonth + 1;
|
||||
if (m.toString().length == 1) {
|
||||
m = "0" + m;
|
||||
}
|
||||
|
||||
return tYear+"-"+m
|
||||
}
|
||||
967
pqs9000/src/main/webapp/jspJS/utils/devicePlateTree.js
Normal file
967
pqs9000/src/main/webapp/jspJS/utils/devicePlateTree.js
Normal file
@@ -0,0 +1,967 @@
|
||||
var path = window.location.href;// 获取界面路径
|
||||
path = filterXSS(path);
|
||||
var loadColor;
|
||||
|
||||
/*******************************************************************************
|
||||
* zTree操作deviceTree代码段
|
||||
******************************************************************************/
|
||||
// zTree属性配置
|
||||
var setting = {};
|
||||
var treeAllData;
|
||||
var pttype;
|
||||
var jcdxq;
|
||||
|
||||
function addDiyDom(treeId, treeNode) {
|
||||
if (treeNode.level != 4) {
|
||||
return;
|
||||
}
|
||||
var powerType = treeNode.powerType;
|
||||
if (powerType == 0) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/gw.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else if (powerType == 1) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/fgw.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else if (powerType == 2) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/newgw.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else if (powerType == 3) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/newfgw.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else if (powerType == 4) {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/ss.png'></input>";
|
||||
aObj.before(editStr);
|
||||
} else {
|
||||
var aObj = $("#" + treeNode.tId + "_a");
|
||||
var editStr = "<input type='image' src='../images/img/pcc.png'></input>";
|
||||
aObj.before(editStr);
|
||||
}
|
||||
}
|
||||
|
||||
function pointSelected() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getSelectedNodes();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
closeHigh();
|
||||
|
||||
if (nodes[0].level == 4 && path.indexOf("platereports") == -1) {
|
||||
nodes[0].highlight = !nodes[0].highlight;
|
||||
zTree.updateNode(nodes[0]);
|
||||
|
||||
var line_index = nodes[0].nodeIndex;
|
||||
pttype = nodes[0].pttype;
|
||||
|
||||
// if (path.indexOf("norm") != -1) {
|
||||
// document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
// }
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(nodes[0].name);
|
||||
var devname = nodes[0].getParentNode();
|
||||
var bdname = nodes[0].getParentNode().getParentNode();
|
||||
var gdname = nodes[0].getParentNode().getParentNode().getParentNode();
|
||||
jcdxq = gdname.name + '->' + bdname.name + devname.name + '->' + '->' + nodes[0].name;
|
||||
} else if (path.indexOf("platereports") != -1 && nodes[0].level == 4) {
|
||||
nodes[0].highlight = !nodes[0].highlight;
|
||||
zTree.updateNode(nodes[0]);
|
||||
|
||||
// 修改选中监测点的信息展示
|
||||
var devname = nodes[0].getParentNode();
|
||||
var bdname = nodes[0].getParentNode().getParentNode();
|
||||
var gdname = nodes[0].getParentNode().getParentNode().getParentNode();
|
||||
jcdxq = gdname.name + '->' + bdname.name + devname.name + '->' + '->' + nodes[0].name;
|
||||
|
||||
var line_index = nodes[0].nodeIndex;
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(nodes[0].name);
|
||||
|
||||
var status = nodes[0].status;
|
||||
var state = nodes[0].state;
|
||||
pttype = nodes[0].pttype;
|
||||
if (state == 2) {
|
||||
$("#image").val("gray");
|
||||
} else if (state == 1) {
|
||||
$("#image").val("yellow");
|
||||
} else {
|
||||
if (status == 1) {
|
||||
$("#image").val("green");
|
||||
} else {
|
||||
$("#image").val("red");
|
||||
}
|
||||
}
|
||||
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("年份", endTime);
|
||||
var middlesrc = $("#middlesrc").val();
|
||||
if (middlesrc == "yxzt") {
|
||||
document.getElementById("main_right").src = "yxzt";
|
||||
} else if (middlesrc == "wtzb") {
|
||||
document.getElementById("main_right").src = "wtzb";
|
||||
} else if (middlesrc == "wtqs") {
|
||||
document.getElementById("main_right").src = "wtqs";
|
||||
// document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
} else if (middlesrc == "zlpg") {
|
||||
document.getElementById("main_right").src = "zlpg";
|
||||
} else if (middlesrc == "sssj") {
|
||||
document.getElementById("main_right").src = "sssj";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function zTreeOnAsyncSuccess() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
|
||||
var nodes = zTree.getNodes();
|
||||
zTree.expandNode(nodes[0], true);
|
||||
|
||||
var childNodes = zTree.transformToArray(nodes[0]);
|
||||
|
||||
var i = 0;
|
||||
for (i = 0; i < childNodes.length; i++) {
|
||||
var type = childNodes[i].level;
|
||||
if (type == 4) {
|
||||
var devname = nodes[0].getParentNode();
|
||||
var bdname = nodes[0].getParentNode().getParentNode();
|
||||
var gdname = nodes[0].getParentNode().getParentNode().getParentNode();
|
||||
var proname = nodes[0].getParentNode().getParentNode().getParentNode().getParentNode();
|
||||
jcdxq = gdname.name + '->' + bdname.name + devname.name + '->' + '->' + nodes[0].name;
|
||||
|
||||
zTree.expandNode(gdname, true);
|
||||
zTree.expandNode(bdname, true);
|
||||
zTree.expandNode(devname, true);
|
||||
zTree.expandNode(childNodes[i], true);
|
||||
|
||||
var line_index = childNodes[i].nodeIndex;
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(childNodes[i].name);
|
||||
|
||||
var status = childNodes[i].status;
|
||||
var state = childNodes[i].state;
|
||||
pttype = childNodes[i].pttype;
|
||||
if (state == 2) {
|
||||
$("#image").val("gray");
|
||||
} else if (state == 1) {
|
||||
$("#image").val("yellow");
|
||||
} else {
|
||||
if (status == 1) {
|
||||
$("#image").val("green");
|
||||
} else {
|
||||
$("#image").val("red");
|
||||
}
|
||||
}
|
||||
|
||||
// 关闭所有节点的高亮
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());
|
||||
for (var n = 0; n < allNodes.length; n++) {
|
||||
allNodes[n].highlight = false;
|
||||
treeObj.updateNode(allNodes[n]);
|
||||
}
|
||||
|
||||
// 高亮并展开搜索到的节点
|
||||
childNodes[i].highlight = true;
|
||||
treeObj.updateNode(childNodes[i]); // 更新节点,让高亮生效
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
if (path.indexOf("monitor") != -1) {
|
||||
var rsrc = $("#middlesrc").val();
|
||||
rsrc = filterXSS(rsrc);
|
||||
document.getElementById("main_right").src = rsrc;
|
||||
if (rsrc == "wtqs") {
|
||||
document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
}
|
||||
} else {
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 选中之前验证是否超过约定上限 超过弹框提示并不选中节点
|
||||
******************************************************************************/
|
||||
var limitMax = 1;
|
||||
var arrVerify;
|
||||
|
||||
function doVerify() {
|
||||
arrVerify = getAllSelected();
|
||||
}
|
||||
|
||||
function getAllSelected() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
return zTree.getCheckedNodes(true);
|
||||
}
|
||||
|
||||
function onVerify() {
|
||||
var isPt = 3;
|
||||
var arrPoint = getTreeSelected(1);
|
||||
|
||||
if (0 === arrPoint.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
var arr = getAllSelected();
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
|
||||
closeHigh();
|
||||
|
||||
if (limitMax > 0 && arrPoint.length > limitMax) {
|
||||
if (arrVerify.length == 0) {
|
||||
zTree.checkAllNodes(false);
|
||||
} else {
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
var index = $.inArray(arr[i], arrVerify);
|
||||
|
||||
if (index === -1) {
|
||||
zTree.checkNode(arr[i], false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
layer.msg("最多选择" + limitMax + "个监测点.");
|
||||
} else {
|
||||
for (var j = 0; j < arrVerify.length; j++) {
|
||||
arrVerify[j].highlight = false;
|
||||
zTree.updateNode(arrVerify[j]);
|
||||
}
|
||||
|
||||
for (var i = 0; i < arrPoint.length; i++) {
|
||||
arrPoint[i].highlight = true;
|
||||
zTree.updateNode(arrPoint[i]);
|
||||
if (arrPoint[i].pttype < isPt) {
|
||||
isPt = arrPoint[i].pttype;
|
||||
}
|
||||
}
|
||||
|
||||
if (arrPoint.length > 1) {
|
||||
document.getElementById("main_right").contentWindow.changeTree(isPt);
|
||||
} else {
|
||||
document.getElementById("main_right").contentWindow.changeTree(isPt);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置高亮字体
|
||||
function setHighlight(treeId, treeNode) {
|
||||
return (!!treeNode.highlight) ? {
|
||||
color: "#000000",
|
||||
"font-weight": "bold"
|
||||
} : {
|
||||
color: "#666",
|
||||
"font-weight": "normal"
|
||||
};
|
||||
}
|
||||
|
||||
// 关闭所有高亮节点
|
||||
function closeHigh() {
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());// 关闭所有节点的高亮
|
||||
|
||||
for (var i = 0; i < allNodes.length; i++) {
|
||||
allNodes[i].highlight = false;
|
||||
treeObj.updateNode(allNodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// 模糊搜索name满足条件的节点
|
||||
function searchNode(value) {
|
||||
if (value == "")
|
||||
return;
|
||||
|
||||
var hiddenNodes = [];
|
||||
var ztreeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var keyword = $("#search_value").val();
|
||||
//显示上次搜索后隐藏的结点,注意:使用hideNodes()方法时需要引包jquery.ztree.exhide-3.5.min.js
|
||||
//ztreeObj.showNodes(hiddenNodes);
|
||||
//获取不符合条件的子父结点
|
||||
hiddenNodes = ztreeObj.getNodesByFilter(filterFunc);
|
||||
//隐藏不符合条件的子父结点,注意:使用hideNodes()方法时需要引包jquery.ztree.exhide-3.5.min.js
|
||||
ztreeObj.hideNodes(hiddenNodes);
|
||||
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = treeObj.getNodesByParamFuzzy("name", value);// 获取搜索的节点
|
||||
|
||||
closeHigh();
|
||||
|
||||
// treeObj.expandAll(false);// 展开第一层节点
|
||||
// treeObj.expandNode(treeObj.getNodes()[0], true);
|
||||
|
||||
// 高亮并展开搜索到的节点
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].highlight = true;
|
||||
treeObj.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
treeObj.expandNode(nodes[i].getParentNode(), true);
|
||||
}
|
||||
treeObj.selectNode(nodes[0]);
|
||||
|
||||
// treeObj.expandAll(true);
|
||||
|
||||
$("#serchB").css("display", "none");
|
||||
$("#resetB").css("display", "");
|
||||
}
|
||||
|
||||
/**
|
||||
* 查找子结点,如果匹配模糊查询的关键字则返回false,否则返回true
|
||||
*/
|
||||
function searchChildren(pNode, keyword) {
|
||||
var childs = pNode.children;
|
||||
var isexit = true;
|
||||
|
||||
for (var i = 0; i < childs.length; i++) {
|
||||
if (childs[i].name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
for (var i = 0; i < childs.length; i++) {
|
||||
if (childs[i].isParent) {
|
||||
isexit = searchChildren(childs[i], keyword);
|
||||
if (!isexit) {
|
||||
return isexit;
|
||||
}
|
||||
} else {
|
||||
if (childs[i].name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
}
|
||||
return isexit;
|
||||
}
|
||||
|
||||
function searchParent(pNode, keyword) {
|
||||
var parent = pNode.getParentNode();
|
||||
var isexit = true;
|
||||
if (parent.name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (parent.getParentNode()) {
|
||||
isexit = searchParent(parent, keyword);
|
||||
if (!isexit) {
|
||||
return isexit;
|
||||
}
|
||||
} else {
|
||||
if (parent.name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
return isexit;
|
||||
}
|
||||
|
||||
//查找不符合条件的结点
|
||||
//返回true表示需要隐藏,返回false表示不需要隐藏 。
|
||||
function filterFunc(node) {
|
||||
var keyword = $("#search_value").val();
|
||||
//如果当前结点或其子节点匹配模糊查询的关键字,则该结点不隐藏
|
||||
if (node.name.indexOf(keyword) != -1) {
|
||||
return false;
|
||||
}
|
||||
if (node.isParent) {
|
||||
var b = searchChildren(node, keyword);
|
||||
if (!b) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
if (node.getParentNode() != null) {
|
||||
var b = searchParent(node, keyword);
|
||||
if (!b) {
|
||||
return b;
|
||||
}
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* zTree操作deviceTree代码段结束
|
||||
******************************************************************************/
|
||||
// type-1:getCheckedNodes方法,type-2:getSelectedNodes方法
|
||||
function getTreeSelected(type) {
|
||||
var pointNodes = [];
|
||||
type = 2;
|
||||
if (type == 1) {
|
||||
var nodes = getAllSelected();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].level == 4) {
|
||||
pointNodes.push(nodes[i]);
|
||||
}
|
||||
}
|
||||
} else if (type == 2) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getSelectedNodes();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
if (nodes[0].level == 4) {
|
||||
pointNodes.push(nodes[0]);
|
||||
}
|
||||
}
|
||||
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
function valueChange(value) {
|
||||
if (value == '') {
|
||||
closeHigh();
|
||||
}
|
||||
}
|
||||
|
||||
$(function () {
|
||||
getMonitorType();
|
||||
|
||||
var treeHeight = $(window).height() - 70;
|
||||
$("#tree").css("min-height", treeHeight);
|
||||
$("#tree").css("max-height", treeHeight);
|
||||
|
||||
if (path.indexOf("monitor") != -1 || path.indexOf("expmodel") != -1) {
|
||||
setting = {
|
||||
check: {
|
||||
enable: true,
|
||||
nocheckInherit: true
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable: true
|
||||
}
|
||||
},
|
||||
view: {
|
||||
fontCss: setHighlight, // 高亮一定要设置,setHighlight是自定义方法
|
||||
addDiyDom: addDiyDom
|
||||
},
|
||||
callback: {
|
||||
onCheck: onVerify,
|
||||
beforeCheck: doVerify,
|
||||
onClick: pointSelected
|
||||
}
|
||||
};
|
||||
getNodeData(0);
|
||||
} else {
|
||||
setting = {
|
||||
check: {
|
||||
enable: true,
|
||||
nocheckInherit: true
|
||||
},
|
||||
data: {
|
||||
simpleData: {
|
||||
enable: true
|
||||
}
|
||||
},
|
||||
view: {
|
||||
fontCss: setHighlight // 高亮一定要设置,setHighlight是自定义方法
|
||||
},
|
||||
callback: {
|
||||
onCheck: onVerify,
|
||||
beforeCheck: doVerify,
|
||||
onClick: pointSelected
|
||||
}
|
||||
};
|
||||
initDiv();
|
||||
getData();
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
pointSelected();
|
||||
}
|
||||
});
|
||||
|
||||
function resetTree() {
|
||||
document.getElementById("search_value").value = "";
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
initTree(treeAllData);
|
||||
|
||||
if (path.indexOf("plateReports") != -1 || path.indexOf("expmodel") != -1) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (path.indexOf("percent") != -1) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (path.indexOf("normlimit") != -1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
} else {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
}
|
||||
|
||||
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
}
|
||||
|
||||
function initDiv() {
|
||||
document.getElementById("tree").style.height = document
|
||||
.getElementById("father").offsetHeight
|
||||
- document.getElementById("search").offsetHeight - 5 + "px";
|
||||
}
|
||||
|
||||
// 数据库获取终端树数据
|
||||
function getNodeData(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/nodeplatetree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取厂家终端树数据
|
||||
function getmancTree(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/mancPlateTree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取电压等级终端树数据
|
||||
function getscaleTree(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/scalePlateTree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取干扰源类型终端树数据
|
||||
function getloadTypeTree(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/loadTypePlateTree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取监测点性质终端树数据
|
||||
function getmonitorTree(type) {
|
||||
document.getElementById("search_value").value = "";
|
||||
$("#serchB").css("display", "");
|
||||
$("#resetB").css("display", "none");
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/monitorTree",
|
||||
type: "post",
|
||||
async: true,
|
||||
dataType: "json",
|
||||
beforeSend: function () {
|
||||
i = ityzl_SHOW_LOAD_LAYER();
|
||||
},
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
if (type == 0) {
|
||||
zTreeOnAsyncSuccess();
|
||||
} else if (type == 1) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
} else if (type == 2) {
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, 10);
|
||||
} else if (type == 3) {
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
triggerCheckBox(1);
|
||||
setTreeSelected(1, -1);
|
||||
}
|
||||
}
|
||||
|
||||
ityzl_CLOSE_LOAD_LAYER(i);
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
function getData() {
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
$.ajax({
|
||||
url: "/pqs9000/plate/platetree",
|
||||
type: "post",
|
||||
async: false,
|
||||
dataType: "json",
|
||||
data: {
|
||||
startTime: startTime,
|
||||
endTime: endTime
|
||||
},
|
||||
success: function (data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
treeAllData = data.body;
|
||||
initTree(data.body);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//获取装置类型设备树
|
||||
$("#datatype").on("change", function () {
|
||||
var i;
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime("月份", endTime);
|
||||
if (path.indexOf("platereports") != -1 || path.indexOf("expmodel") != -1) {
|
||||
if ($("option:selected", this).val() == 0) {
|
||||
getNodeData(0);
|
||||
} else if ($("option:selected", this).val() == 1) {
|
||||
getmancTree(0);
|
||||
} else if ($("option:selected", this).val() == 2) {
|
||||
getscaleTree(0);
|
||||
} else if ($("option:selected", this).val() == 3) {
|
||||
getloadTypeTree(0);
|
||||
} else if ($("option:selected", this).val() == 4) {
|
||||
getmonitorTree(0);
|
||||
}
|
||||
} else if (path.indexOf("percent") != -1) {
|
||||
if ($("option:selected", this).val() == 0) {
|
||||
getNodeData(2);
|
||||
} else if ($("option:selected", this).val() == 1) {
|
||||
getmancTree(2);
|
||||
} else if ($("option:selected", this).val() == 2) {
|
||||
getscaleTree(2);
|
||||
} else if ($("option:selected", this).val() == 3) {
|
||||
getloadTypeTree(2);
|
||||
} else if ($("option:selected", this).val() == 4) {
|
||||
getmonitorTree(2);
|
||||
}
|
||||
} else if (path.indexOf("normlimit") != -1) {
|
||||
if ($("option:selected", this).val() == 0) {
|
||||
getNodeData(3);
|
||||
} else if ($("option:selected", this).val() == 1) {
|
||||
getmancTree(3);
|
||||
} else if ($("option:selected", this).val() == 2) {
|
||||
getscaleTree(3);
|
||||
} else if ($("option:selected", this).val() == 3) {
|
||||
getloadTypeTree(3);
|
||||
} else if ($("option:selected", this).val() == 4) {
|
||||
getmonitorTree(3);
|
||||
}
|
||||
} else {
|
||||
if ($("option:selected", this).val() == 0) {
|
||||
getNodeData(1);
|
||||
} else if ($("option:selected", this).val() == 1) {
|
||||
getmancTree(1);
|
||||
} else if ($("option:selected", this).val() == 2) {
|
||||
getscaleTree(1);
|
||||
} else if ($("option:selected", this).val() == 3) {
|
||||
getloadTypeTree(1);
|
||||
} else if ($("option:selected", this).val() == 4) {
|
||||
getmonitorTree(1);
|
||||
}
|
||||
}
|
||||
})
|
||||
|
||||
/*******************************************************************************
|
||||
* 是否显示checkBox type-1:显示 type-2:不显示
|
||||
******************************************************************************/
|
||||
function triggerCheckBox(type) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
var isShow = true;
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].nocheck = isShow;
|
||||
zTree.updateNode(nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 初始化终端树时,设置其选中状态 如果传入的参数<=0,则全选 type-1:复选框 type-2:无复选框
|
||||
******************************************************************************/
|
||||
function setTreeSelected(type, selectNumber) {
|
||||
type = 2;
|
||||
var count = 0;
|
||||
//selectNumber = selectNumber <= 0 ? 1 : selectNumber;
|
||||
limitMax = selectNumber;
|
||||
|
||||
if (selectNumber < 0) {
|
||||
return;
|
||||
}
|
||||
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].level == 4) {
|
||||
zTree.selectNode(nodes[i]);
|
||||
|
||||
if (type == 1) {
|
||||
zTree.checkNode(nodes[i], true, true);
|
||||
}
|
||||
|
||||
nodes[i].highlight = true;
|
||||
zTree.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
count++;
|
||||
|
||||
if (selectNumber > 0 && count == selectNumber) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化终端树
|
||||
function initTree(treeData) {
|
||||
if (treeData.length == 0) {
|
||||
layer.msg("数据库数据为空,终端树加载失败.");
|
||||
return;
|
||||
}
|
||||
|
||||
var datalist = [];
|
||||
for (var i = 0; i < treeData.length; i++) {
|
||||
var str = '';
|
||||
|
||||
str += '{' + "id:" + treeData[i].id;
|
||||
str += ',' + "name:'" + treeData[i].name + "'";
|
||||
str += ',' + "nodeIndex:" + treeData[i].nodeIndex;
|
||||
str += ',' + "nodeType:" + treeData[i].nodeType;
|
||||
str += ',' + "ppId:" + treeData[i].ppId;
|
||||
if (treeData[i].nodeType == "0") {
|
||||
str += ',' + "open:" + true;
|
||||
} else {
|
||||
str += ',' + "open:" + false;
|
||||
}
|
||||
str += ',' + "state:" + treeData[i].state;
|
||||
str += ',' + "status:" + treeData[i].status;
|
||||
str += ',' + "powerType:" + treeData[i].powerType;
|
||||
str += ',' + "pttype:" + treeData[i].pttype;
|
||||
str += ',' + "pId:" + treeData[i].pId + '}';
|
||||
datalist.push(str);
|
||||
}
|
||||
|
||||
datalist = eval('[' + datalist + ']');// string->json数组
|
||||
var zNodes = datalist;
|
||||
|
||||
for (var index = 0; index < zNodes.length; index++) {
|
||||
if (zNodes[index].nodeType == 0) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwbase.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwbase.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 1) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwprovince.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwprovince.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 2) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwpower.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwpower.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 3) {
|
||||
if (loadColor == "#006565") {
|
||||
zNodes[index].icon = "../images/img/gwsubstation.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/nwsubstation.png";
|
||||
}
|
||||
} else if (zNodes[index].nodeType == 4) {
|
||||
if (zNodes[index].state == 2) {
|
||||
zNodes[index].icon = "../images/img/gray.png";
|
||||
} else if (zNodes[index].state == 1) {
|
||||
zNodes[index].icon = "../images/img/yellow.png";
|
||||
} else {
|
||||
if (zNodes[index].status == 0) {
|
||||
zNodes[index].icon = "../images/img/red.png";
|
||||
} else {
|
||||
zNodes[index].icon = "../images/img/green.png";
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$.fn.zTree.init($("#tree"), setting, zNodes);
|
||||
}
|
||||
|
||||
function getMonitorType() {
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getThemeInfo",
|
||||
async: false,
|
||||
data: {},
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
var name = data.body.name + "上报";
|
||||
loadColor = data.body.value;
|
||||
var option = $("<option value='4'>"
|
||||
+ name + "</option>");
|
||||
$('#datatype').append(option);
|
||||
}
|
||||
})
|
||||
}
|
||||
1047
pqs9000/src/main/webapp/jspJS/utils/deviceTree.js
Normal file
1047
pqs9000/src/main/webapp/jspJS/utils/deviceTree.js
Normal file
File diff suppressed because it is too large
Load Diff
38
pqs9000/src/main/webapp/jspJS/utils/getTime.js
Normal file
38
pqs9000/src/main/webapp/jspJS/utils/getTime.js
Normal file
@@ -0,0 +1,38 @@
|
||||
//获取当前日期,精确到日
|
||||
function getEndTime() {
|
||||
var now = new Date();
|
||||
var sep = "-";
|
||||
var year = now.getFullYear();
|
||||
var month = now.getMonth() + 1;
|
||||
if (month < 10) {
|
||||
month = "0" + month;
|
||||
}
|
||||
var date = now.getDate();
|
||||
if (date < 10) {
|
||||
date = "0" + date;
|
||||
}
|
||||
//拼接当前的日期
|
||||
var endTime = year + sep + month + sep + date;
|
||||
return endTime;
|
||||
}
|
||||
|
||||
//获取起始日期
|
||||
function getStartTime(endTime) {
|
||||
var sep = "-";
|
||||
var arr = endTime.split("-");
|
||||
var year = arr[0];
|
||||
var month = "01";
|
||||
var date = "01";
|
||||
var startTime = year + sep + month + sep + date;
|
||||
return startTime;
|
||||
}
|
||||
//获取起始日期
|
||||
function getMonthStartTime(endTime) {
|
||||
var sep = "-";
|
||||
var arr = endTime.split("-");
|
||||
var year = arr[0];
|
||||
var month = arr[1];
|
||||
var date = "01";
|
||||
var startTime = year + sep + month + sep + date;
|
||||
return startTime;
|
||||
}
|
||||
8
pqs9000/src/main/webapp/jspJS/utils/helper.js
Normal file
8
pqs9000/src/main/webapp/jspJS/utils/helper.js
Normal file
@@ -0,0 +1,8 @@
|
||||
function toHelper(parameter){
|
||||
window.top.addTab('userhelp', '帮助中心');
|
||||
|
||||
window.setTimeout(function () {
|
||||
window.top.document.getElementById('userhelp').contentWindow.zTreeOnAsyncSuccess(parameter);
|
||||
},500)
|
||||
}
|
||||
|
||||
360
pqs9000/src/main/webapp/jspJS/utils/historyUtils.js
Normal file
360
pqs9000/src/main/webapp/jspJS/utils/historyUtils.js
Normal file
@@ -0,0 +1,360 @@
|
||||
/*********************
|
||||
* add by yexb
|
||||
*主要对历史数据公共类抽取
|
||||
* ********************/
|
||||
// 右边统计类型tree节点增加数据(星型)
|
||||
var zNodes = [{
|
||||
id: 1,
|
||||
pId: 0,
|
||||
name: "电压趋势",
|
||||
open: true,
|
||||
checked: true,
|
||||
}, {
|
||||
id: 11,
|
||||
pId: 1,
|
||||
name: "相电压有效值",
|
||||
checked: true
|
||||
}, {
|
||||
id: 12,
|
||||
pId: 1,
|
||||
name: "线电压有效值"
|
||||
}, {
|
||||
id: 13,
|
||||
pId: 1,
|
||||
name: "电压偏差"
|
||||
}, {
|
||||
id: 15,
|
||||
pId: 1,
|
||||
name: "三相电压不平衡度"
|
||||
}, {
|
||||
id: 16,
|
||||
pId: 1,
|
||||
name: "电压不平衡"
|
||||
}, {
|
||||
id: 17,
|
||||
pId: 1,
|
||||
name: "电压总谐波畸变率"
|
||||
}, {
|
||||
id: 2,
|
||||
pId: 0,
|
||||
name: "电流趋势",
|
||||
}, {
|
||||
id: 21,
|
||||
pId: 2,
|
||||
name: "电流有效值",
|
||||
checked: true
|
||||
}, {
|
||||
id: 22,
|
||||
pId: 2,
|
||||
name: "电流总谐波畸变率"
|
||||
},{
|
||||
id: 23,
|
||||
pId: 2,
|
||||
name: "负序电流"
|
||||
}, {
|
||||
id: 3,
|
||||
pId: 0,
|
||||
name: "频率趋势",
|
||||
}, {
|
||||
id: 31,
|
||||
pId: 3,
|
||||
name: "频率"
|
||||
}, {
|
||||
id: 4,
|
||||
pId: 0,
|
||||
name: "谐波趋势",
|
||||
}, {
|
||||
id: 41,
|
||||
pId: 4,
|
||||
name: "谐波电压含有率"
|
||||
}, {
|
||||
id: 42,
|
||||
pId: 4,
|
||||
name: "谐波电流幅值"
|
||||
}, {
|
||||
id: 43,
|
||||
pId: 4,
|
||||
name: "间谐波电压含有率"
|
||||
},{
|
||||
id: 44,
|
||||
pId: 4,
|
||||
name: "谐波电压相角"
|
||||
},{
|
||||
id: 45,
|
||||
pId: 4,
|
||||
name: "谐波电流相角"
|
||||
},{
|
||||
id: 46,
|
||||
pId: 4,
|
||||
name: "谐波有功功率"
|
||||
},{
|
||||
id: 47,
|
||||
pId: 4,
|
||||
name: "谐波无功功率"
|
||||
},{
|
||||
id: 48,
|
||||
pId: 4,
|
||||
name: "谐波视在功率"
|
||||
}, {
|
||||
id: 5,
|
||||
pId: 0,
|
||||
name: "功率趋势",
|
||||
}, {
|
||||
id: 51,
|
||||
pId: 5,
|
||||
name: "三相有功功率"
|
||||
}, {
|
||||
id: 52,
|
||||
pId: 5,
|
||||
name: "三相无功功率"
|
||||
}, {
|
||||
id: 53,
|
||||
pId: 5,
|
||||
name: "三相视在功率"
|
||||
},{
|
||||
id: 54,
|
||||
pId: 5,
|
||||
name: "三相总有功功率"
|
||||
}, {
|
||||
id: 55,
|
||||
pId: 5,
|
||||
name: "三相总无功功率"
|
||||
}, {
|
||||
id: 56,
|
||||
pId: 5,
|
||||
name: "三相总视在功率"
|
||||
}, {
|
||||
id: 57,
|
||||
pId: 5,
|
||||
name: "视在功率因数"
|
||||
}, {
|
||||
id: 58,
|
||||
pId: 5,
|
||||
name: "位移功率因数"
|
||||
}, {
|
||||
id: 59,
|
||||
pId: 5,
|
||||
name: "总视在功率因数"
|
||||
}, {
|
||||
id: 60,
|
||||
pId: 5,
|
||||
name: "总位移功率因数"
|
||||
},{
|
||||
id: 6,
|
||||
pId: 0,
|
||||
name: "闪变趋势",
|
||||
}, {
|
||||
id: 61,
|
||||
pId: 6,
|
||||
name: "短时电压闪变"
|
||||
}, {
|
||||
id: 62,
|
||||
pId: 6,
|
||||
name: "长时电压闪变"
|
||||
}, {
|
||||
id: 63,
|
||||
pId: 6,
|
||||
name: "电压波动"
|
||||
}];
|
||||
// 右边统计类型tree节点增加数据(三角型和V)
|
||||
var zNode = [{
|
||||
id: 1,
|
||||
pId: 0,
|
||||
name: "电压趋势",
|
||||
open: true,
|
||||
checked: true,
|
||||
}, {
|
||||
id: 12,
|
||||
pId: 1,
|
||||
name: "线电压有效值",
|
||||
checked: true
|
||||
}, {
|
||||
id: 13,
|
||||
pId: 1,
|
||||
name: "电压偏差"
|
||||
}, {
|
||||
id: 17,
|
||||
pId: 1,
|
||||
name: "电压总谐波畸变率"
|
||||
}, {
|
||||
id: 2,
|
||||
pId: 0,
|
||||
name: "电流趋势",
|
||||
checked: true
|
||||
}, {
|
||||
id: 21,
|
||||
pId: 2,
|
||||
name: "电流有效值",
|
||||
checked: true
|
||||
}, {
|
||||
id: 22,
|
||||
pId: 2,
|
||||
name: "电流总谐波畸变率"
|
||||
},{
|
||||
id: 23,
|
||||
pId: 2,
|
||||
name: "负序电流"
|
||||
}, {
|
||||
id: 3,
|
||||
pId: 0,
|
||||
name: "频率趋势",
|
||||
}, {
|
||||
id: 31,
|
||||
pId: 3,
|
||||
name: "频率"
|
||||
}, {
|
||||
id: 4,
|
||||
pId: 0,
|
||||
name: "谐波趋势",
|
||||
}, {
|
||||
id: 41,
|
||||
pId: 4,
|
||||
name: "谐波电压含有率"
|
||||
}, {
|
||||
id: 42,
|
||||
pId: 4,
|
||||
name: "谐波电流幅值"
|
||||
}, {
|
||||
id: 43,
|
||||
pId: 4,
|
||||
name: "间谐波电压含有率"
|
||||
},{
|
||||
id: 44,
|
||||
pId: 4,
|
||||
name: "谐波电压相角"
|
||||
},{
|
||||
id: 45,
|
||||
pId: 4,
|
||||
name: "谐波电流相角"
|
||||
},{
|
||||
id: 46,
|
||||
pId: 4,
|
||||
name: "谐波有功功率"
|
||||
},{
|
||||
id: 47,
|
||||
pId: 4,
|
||||
name: "谐波无功功率"
|
||||
},{
|
||||
id: 48,
|
||||
pId: 4,
|
||||
name: "谐波视在功率"
|
||||
}, {
|
||||
id: 5,
|
||||
pId: 0,
|
||||
name: "功率趋势",
|
||||
}, {
|
||||
id: 54,
|
||||
pId: 5,
|
||||
name: "三相总有功功率"
|
||||
}, {
|
||||
id: 55,
|
||||
pId: 5,
|
||||
name: "三相总无功功率"
|
||||
}, {
|
||||
id: 56,
|
||||
pId: 5,
|
||||
name: "三相总视在功率"
|
||||
}, {
|
||||
id: 57,
|
||||
pId: 5,
|
||||
name: "视在功率因数"
|
||||
}, {
|
||||
id: 58,
|
||||
pId: 5,
|
||||
name: "位移功率因数"
|
||||
}, {
|
||||
id: 59,
|
||||
pId: 5,
|
||||
name: "总视在功率因数"
|
||||
}, {
|
||||
id: 60,
|
||||
pId: 5,
|
||||
name: "总位移功率因数"
|
||||
}, {
|
||||
id: 6,
|
||||
pId: 0,
|
||||
name: "闪变趋势",
|
||||
}, {
|
||||
id: 61,
|
||||
pId: 6,
|
||||
name: "短时电压闪变"
|
||||
}, {
|
||||
id: 62,
|
||||
pId: 6,
|
||||
name: "长时电压闪变"
|
||||
}, {
|
||||
id: 63,
|
||||
pId: 6,
|
||||
name: "电压波动"
|
||||
}];
|
||||
|
||||
/*********************
|
||||
* 开始时间与结束时间比较
|
||||
* 开始时间大于结束时间返回false
|
||||
* 开始时间小于结束时间返回true
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @returns
|
||||
********************/
|
||||
function compareTime(startTime, endTime) {
|
||||
if (startTime > endTime) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据两个日期,判断相差天数
|
||||
* @param sDate1 开始日期 如:2016-11-01
|
||||
* @param sDate2 结束日期 如:2016-11-02
|
||||
* @returns {number} 返回相差天数
|
||||
*/
|
||||
function daysBetween(sDate1, sDate2) {
|
||||
//Date.parse() 解析一个日期时间字符串,并返回1970/1/1 午夜距离该日期时间的毫秒数
|
||||
var time1 = Date.parse(new Date(sDate1.replace(/-/g, "/")));
|
||||
var time2 = Date.parse(new Date(sDate2.replace(/-/g, "/")));
|
||||
var nDays = Math.abs(Math.ceil(parseFloat(time2 - time1).toFixed(2) / (1000 * 3600 * 24)));
|
||||
return nDays;
|
||||
};
|
||||
|
||||
function dataAddOneDay(dataEnd) {
|
||||
var strdate = dataEnd; //日期字符串
|
||||
var isdate = new Date(strdate.replace(/-/g, "/")); //把日期字符串转换成日期格式
|
||||
isdate = new Date((isdate / 1000 + 86400) * 1000); //日期加1天
|
||||
// 把日期格式转换成字符串
|
||||
var year = isdate.getFullYear();
|
||||
var month = (isdate.getMonth() + 1).toString();
|
||||
var day = (isdate.getDate()).toString();
|
||||
if (month.length == 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (day.length == 1) {
|
||||
day = "0" + day;
|
||||
}
|
||||
var pdate = year + "-" + month + "-" + day;
|
||||
return pdate;
|
||||
}
|
||||
|
||||
//日期加天数的方法
|
||||
//dataStr日期字符串
|
||||
//dayCount 要增加的天数
|
||||
//return 增加n天后的日期字符串
|
||||
function dateAddDays(dataStr, dayCount) {
|
||||
var strdate = dataStr; //日期字符串
|
||||
var isdate = new Date(strdate.replace(/-/g, "/")); //把日期字符串转换成日期格式
|
||||
isdate = new Date((isdate / 1000 + (86400 * (dayCount - 1))) * 1000); //日期加1天
|
||||
// 把日期格式转换成字符串
|
||||
var year = isdate.getFullYear();
|
||||
var month = (isdate.getMonth() + 1).toString();
|
||||
var day = (isdate.getDate()).toString();
|
||||
if (month.length == 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (day.length == 1) {
|
||||
day = "0" + day;
|
||||
}
|
||||
var pdate = year + "-" + month + "-" + day;
|
||||
return pdate;
|
||||
}
|
||||
|
||||
|
||||
301
pqs9000/src/main/webapp/jspJS/utils/judgeAjaxStatus.js
Normal file
301
pqs9000/src/main/webapp/jspJS/utils/judgeAjaxStatus.js
Normal file
@@ -0,0 +1,301 @@
|
||||
$(document).ajaxSend(function(event, jqxhr, settings) {
|
||||
var url = settings.url;
|
||||
var index=url.indexOf('?');
|
||||
if(index!==-1){
|
||||
url=url.substring(0,index);
|
||||
}
|
||||
var timestamp=new Date().getTime();
|
||||
jqxhr.setRequestHeader('AuthToken', sm3Digest(url+timestamp));
|
||||
jqxhr.setRequestHeader('cnsjt', timestamp);
|
||||
});
|
||||
|
||||
$.ajax({
|
||||
type: "POST",
|
||||
url: "/pqs9000/theme/getColor",
|
||||
async: false,
|
||||
dataType: 'json',
|
||||
success: function (data) {
|
||||
var root = document.querySelector(':root');
|
||||
root.setAttribute('style', '--primarycolor:' + data.body);
|
||||
}
|
||||
})
|
||||
$(document).ajaxError(
|
||||
function (event, xhr, options, exc) {
|
||||
if (xhr.status === 'undefined') {
|
||||
return;
|
||||
}
|
||||
switch (xhr.status) {
|
||||
case 300:
|
||||
// 未授权异常
|
||||
window.top.location.href = '/pqs9000/user/unauthorized';
|
||||
break;
|
||||
case 301:
|
||||
//被踢下线处理
|
||||
window.top.location.href = '/sso';
|
||||
break;
|
||||
case 404:
|
||||
window.top.location.href = '/pqs9000/business/404';
|
||||
break;
|
||||
case 501:
|
||||
window.top.location.href = '/sso/auth/urlXssError';
|
||||
break;
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
/**
|
||||
* 国密摘要算法(SM3)
|
||||
* @param str:raw string
|
||||
* @return the 256-bit hex string produced by SM3 from a raw string
|
||||
*/
|
||||
function sm3Digest(str) {
|
||||
//1. 转换为二进制数组
|
||||
var binArr = str2bin(str2rstr_utf8(str));
|
||||
//2. 填充
|
||||
var groupNum = alignSM3(binArr, str.length);
|
||||
//3. 迭代压缩
|
||||
var v = new Array(8);//初始值
|
||||
v[0] = 0x7380166f;
|
||||
v[1] = 0x4914b2b9;
|
||||
v[2] = 0x172442d7;
|
||||
v[3] = 0xda8a0600;
|
||||
v[4] = 0xa96f30bc;
|
||||
v[5] = 0x163138aa;
|
||||
v[6] = 0xe38dee4d;
|
||||
v[7] = 0xb0fb0e4e;
|
||||
//按 512bit 分组进行压缩
|
||||
for (var i = 0; i < groupNum; i++) {
|
||||
v = compress(v, binArr, i);
|
||||
}
|
||||
return word2str(v, '');
|
||||
}
|
||||
|
||||
/**
|
||||
* 将数组转换为字符串。数组长度不定,每个元素为 32bit 的数字。
|
||||
* @param words:数组,每个元素为 32bit 的数字
|
||||
* @param seperator:在每个数组元素转换得到的字符串之间的分隔符
|
||||
*/
|
||||
function word2str(words, seperator) {
|
||||
var prefix = Array(8).join('0');
|
||||
for (var i = 0; i < words.length; i++) {
|
||||
//若 hex 不足 8 位,则高位补 0
|
||||
words[i] = (prefix + (words[i] >>> 0).toString(16)).slice(-8);
|
||||
}
|
||||
|
||||
return words.join(seperator);
|
||||
}
|
||||
|
||||
/**
|
||||
* 将字符串转换为二进制数组,默认字符串编码为 UTF-8,且范围在 0x00~0xFF 内。
|
||||
* 若某些字符的编码超过此范围,则会只保留最低字节。加密可正常进行,但加密结果有误。
|
||||
* 每个数组元素包含 4 个字符,即 32 bit。
|
||||
* @param 字符串
|
||||
* @return 数组,长度为(字符串长度 / 4),每个元素为 32bit 的数字
|
||||
*/
|
||||
function str2bin(str) {
|
||||
var binary = new Array(str.length >> 2);
|
||||
for (var i = 0; i < str.length * 8; i += 8) {
|
||||
binary[i >> 5] |= (str.charCodeAt(i / 8) & 0xFF) << (24 - i % 32);
|
||||
}
|
||||
return binary;
|
||||
}
|
||||
|
||||
/**
|
||||
* 对明文的二进制串进行填充
|
||||
* <pre>
|
||||
* | 满足 mod 512 = 448 | 固定 64 位 |
|
||||
* | 明文二进制 |填充部分|明文二进制串的长度的二进制表示|
|
||||
* xxxxxxxxxxxx 10.....0 0...........................xx
|
||||
* </pre>
|
||||
* @param arr:数组,每个元素为 32bit 的数字
|
||||
* @param strLen:明文字符串长度
|
||||
* @return 数组,每个元素为 32bit 的数字,数组长度为 16 的倍数(包括 16)
|
||||
*/
|
||||
function alignSM3(arr, strLen) {
|
||||
//在明文二进制串后面拼接 1000 0000
|
||||
arr[strLen >> 2] |= 0x80 << (24 - strLen % 4 * 8);
|
||||
var groupNum = ((strLen + 8) >> 6) + 1;//以 512bit 为一组,总的组数
|
||||
var wordNum = groupNum * 16;//一个 word 32bit,总的 word 数
|
||||
|
||||
for (var i = (strLen >> 2) + 1; i < wordNum; i++) {
|
||||
arr[i] = 0;
|
||||
}
|
||||
arr[wordNum - 1] = strLen * 8;//在末尾填上明文的二进制长度
|
||||
|
||||
return groupNum;
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数中的置换函数
|
||||
*/
|
||||
function p0(x) {
|
||||
return x ^ bitRol(x, 9) ^ bitRol(x, 17);
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数中的置换函数
|
||||
*/
|
||||
function p1(x) {
|
||||
return x ^ bitRol(x, 15) ^ bitRol(x, 23);
|
||||
}
|
||||
|
||||
/**
|
||||
* 循环左移
|
||||
*/
|
||||
function bitRol(input, n) {
|
||||
return (input << n) | (input >>> (32 - n));
|
||||
}
|
||||
|
||||
/**
|
||||
* 压缩函数
|
||||
*/
|
||||
function compress(v, binArr, i) {
|
||||
//将消息分组扩展成 132 个字
|
||||
var w1 = new Array(68);
|
||||
var w2 = new Array(64);
|
||||
for (var j = 0; j < 68; j++) {
|
||||
if (j < 16) {
|
||||
w1[j] = binArr[i * 16 + j];
|
||||
} else {
|
||||
w1[j] = p1(w1[j-16] ^ w1[j-9] ^ bitRol(w1[j-3], 15)) ^ bitRol(w1[j-13], 7) ^ w1[j-6];
|
||||
}
|
||||
}
|
||||
for (var j = 0; j < 64; j++) {
|
||||
w2[j] = w1[j] ^ w1[j+4];
|
||||
}
|
||||
|
||||
//压缩
|
||||
var a = v[0];
|
||||
var b = v[1];
|
||||
var c = v[2];
|
||||
var d = v[3];
|
||||
var e = v[4];
|
||||
var f = v[5];
|
||||
var g = v[6];
|
||||
var h = v[7];
|
||||
var ss1;
|
||||
var ss2;
|
||||
var tt1;
|
||||
var tt2;
|
||||
for (var j = 0; j < 64; j++) {
|
||||
ss1 = bitRol(addAll(bitRol(a, 12) , e , bitRol(t(j), j)), 7);
|
||||
ss2 = ss1 ^ bitRol(a, 12);
|
||||
tt1 = addAll(ff(a, b, c, j) , d , ss2 , w2[j]);
|
||||
tt2 = addAll(gg(e, f, g, j) , h , ss1 , w1[j]);
|
||||
d = c;
|
||||
c = bitRol(b, 9);
|
||||
b = a;
|
||||
a = tt1;
|
||||
h = g;
|
||||
g = bitRol(f, 19);
|
||||
f = e;
|
||||
e = p0(tt2);
|
||||
}
|
||||
v[0] ^= a;
|
||||
v[1] ^= b;
|
||||
v[2] ^= c;
|
||||
v[3] ^= d;
|
||||
v[4] ^= e;
|
||||
v[5] ^= f;
|
||||
v[6] ^= g;
|
||||
v[7] ^= h;
|
||||
return v;
|
||||
}
|
||||
|
||||
/**
|
||||
* 常量 T 随 j 的不同而不同
|
||||
*/
|
||||
function t(j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return 0x79CC4519;
|
||||
} else if (j < 64) {
|
||||
return 0x7A879D8A;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 布尔函数,随 j 的变化取不同的表达式
|
||||
*/
|
||||
function ff(x, y, z, j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return x ^ y ^ z;
|
||||
} else if (j < 64) {
|
||||
return (x & y) | (x & z) | (y & z);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 布尔函数,随 j 的变化取不同的表达式
|
||||
*/
|
||||
function gg(x, y, z, j) {
|
||||
if (0 <= j && j < 16) {
|
||||
return x ^ y ^ z;
|
||||
} else if (j < 64) {
|
||||
return (x & y) | (~x & z);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* 两数相加
|
||||
* 避免某些 js 引擎的 32 位加法的 bug
|
||||
*/
|
||||
function safe_add(x, y) {
|
||||
var lsw = ( x & 0xFFFF ) + (y & 0xFFFF);
|
||||
var msw = ( x >> 16 ) + (y >> 16) + (lsw >> 16);
|
||||
return (msw << 16) | ( lsw & 0xFFFF );
|
||||
}
|
||||
|
||||
/**
|
||||
* 将所有参数相加
|
||||
*/
|
||||
function addAll() {
|
||||
var sum = 0;
|
||||
for (var i = 0; i < arguments.length; i++) {
|
||||
sum = safe_add(sum, arguments[i]);
|
||||
}
|
||||
return sum;
|
||||
}
|
||||
|
||||
/**
|
||||
* UTF-16 --> UTF-8
|
||||
*/
|
||||
function str2rstr_utf8(input) {
|
||||
var output = "" ;
|
||||
var i = -1 ;
|
||||
var x, y ;
|
||||
|
||||
while(++ i < input.length) {
|
||||
//按 UTF-16 解码
|
||||
x = input.charCodeAt(i);
|
||||
y = i + 1 < input.length ? input .charCodeAt (i + 1) : 0 ;
|
||||
if( 0xD800 <= x && x <= 0xDBFF && 0xDC00 <= y && y <= 0xDFFF ) {
|
||||
x = 0x10000 + ((x & 0x03FF) << 10 ) + (y & 0x03FF);
|
||||
i++;
|
||||
}
|
||||
|
||||
//按 UTF-8 编码
|
||||
if( x <= 0x7F ) {
|
||||
output += String.fromCharCode(x);
|
||||
}
|
||||
else if(x <= 0x7FF) {
|
||||
output += String.fromCharCode(
|
||||
0xC0 | ((x >>> 6 ) & 0x1F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
} else if(x <= 0xFFFF) {
|
||||
output += String.fromCharCode(
|
||||
0xE0 | ((x >>> 12) & 0x0F ),
|
||||
0x80 | ((x >>> 6 ) & 0x3F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
} else if(x <= 0x1FFFFF) {
|
||||
output += String.fromCharCode(
|
||||
0xF0 | ((x >>> 18) & 0x07 ),
|
||||
0x80 | ((x >>> 12) & 0x3F),
|
||||
0x80 | ((x >>> 6 ) & 0x3F),
|
||||
0x80 | ( x & 0x3F ));
|
||||
}
|
||||
}
|
||||
return output;
|
||||
}
|
||||
|
||||
|
||||
88
pqs9000/src/main/webapp/jspJS/utils/loading.js
Normal file
88
pqs9000/src/main/webapp/jspJS/utils/loading.js
Normal file
@@ -0,0 +1,88 @@
|
||||
//layui的loading效果****start
|
||||
function ityzl_SHOW_LOAD_LAYER() {
|
||||
return layer.msg('数据加载中...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
area:'200px',
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
function ityzl_SHOW_LOAD_LAYERLONG() {
|
||||
return layer.msg('数据加载中...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
area:'200px',
|
||||
time : 2000000
|
||||
});
|
||||
}
|
||||
|
||||
function ityzl_SHOW_LOAD_DOWNLOAD() {
|
||||
return layer.msg('正在下载,请稍后...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
area:'200px',
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
|
||||
function ityzl_SHOW_LOAD_LAYER_WAVE() {
|
||||
return layer.msg('波形下载中', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
function ityzl_SHOW_LOAD_LAYER_PARENT() {
|
||||
return parent.layer.msg('数据加载中...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
//layui的loading效果****end
|
||||
function ityzl_CLOSE_LOAD_LAYER_PARENT(index) {
|
||||
parent.layer.close(index);
|
||||
}
|
||||
//layui的loading效果****end
|
||||
function ityzl_CLOSE_LOAD_LAYER(index) {
|
||||
layer.close(index);
|
||||
}
|
||||
|
||||
function SHOW_LOAD_LAYER(layer) {
|
||||
return layer.msg('数据加载中...', {
|
||||
icon : 16,
|
||||
shade : [ 0.5, '#f5f5f5' ],
|
||||
scrollbar : false,
|
||||
time : 100000
|
||||
});
|
||||
}
|
||||
//layui的loading效果****end
|
||||
function CLOSE_LOAD_LAYER(layer,index) {
|
||||
layer.close(index);
|
||||
}
|
||||
|
||||
function time2String(){
|
||||
var date = new Date();
|
||||
var month = date.getMonth() + 1;
|
||||
var strDate = date.getDate();
|
||||
|
||||
if (month >= 1 && month <= 9) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (strDate >= 0 && strDate <= 9) {
|
||||
strDate = "0" + strDate;
|
||||
}
|
||||
var strTime = date.getFullYear().toString() + month.toString() + strDate.toString()
|
||||
+ date.getHours().toString() + date.getMinutes().toString()
|
||||
+ date.getSeconds().toString();
|
||||
|
||||
return strTime;
|
||||
}
|
||||
|
||||
437
pqs9000/src/main/webapp/jspJS/utils/offLineTree.js
Normal file
437
pqs9000/src/main/webapp/jspJS/utils/offLineTree.js
Normal file
@@ -0,0 +1,437 @@
|
||||
var path = window.location.href;// 获取界面路径
|
||||
path=filterXSS(path);
|
||||
/*******************************************************************************
|
||||
* zTree操作deviceTree代码段
|
||||
******************************************************************************/
|
||||
// zTree属性配置
|
||||
var setting = {};
|
||||
var pttype;
|
||||
|
||||
function pointSelected() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getSelectedNodes();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
closeHigh();
|
||||
|
||||
if (nodes[0].level == 4 && nodes[0].nocheck
|
||||
&& path.indexOf("monitor") == -1) {
|
||||
nodes[0].highlight = !nodes[0].highlight;
|
||||
zTree.updateNode(nodes[0]);
|
||||
} else if (path.indexOf("monitor") != -1 && nodes[0].level == 4) {
|
||||
nodes[0].highlight = !nodes[0].highlight;
|
||||
zTree.updateNode(nodes[0]);
|
||||
|
||||
// 修改选中监测点的信息展示
|
||||
var subname = nodes[0].getParentNode();
|
||||
var provincename = nodes[0].getParentNode().getParentNode();
|
||||
var projectname = nodes[0].getParentNode().getParentNode().getParentNode();
|
||||
|
||||
$('#pointInfo').text(
|
||||
'所选监测点:' + projectname.name + '->' + provincename.name + '->' + subname.name + '->'
|
||||
+ nodes[0].name);
|
||||
|
||||
var line_index = nodes[0].nodeIndex;
|
||||
pttype = nodes[0].pttype;
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(nodes[0].name);
|
||||
|
||||
$("#allstime").val("");
|
||||
$("#alletime").val("");
|
||||
$("#checkpieces").val("");
|
||||
$("#checkpiecee").val("");
|
||||
|
||||
var middlesrc = $("#middlesrc").val();
|
||||
if (middlesrc == "offwtqs") {
|
||||
document.getElementById("main_right").src = "offwtqs";
|
||||
document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
} else if (middlesrc == "offxbpp") {
|
||||
document.getElementById("main_right").src = "offxbpp";
|
||||
} else if (middlesrc == "offword") {
|
||||
document.getElementById("main_right").src = "offword";
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
function zTreeOnAsyncSuccess() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
|
||||
var nodes = zTree.getNodes();
|
||||
zTree.expandNode(nodes[0], true);
|
||||
|
||||
var childNodes = zTree.transformToArray(nodes[0]);
|
||||
|
||||
var i = 0;
|
||||
for (i = 0; i < childNodes.length; i++) {
|
||||
var type = childNodes[i].level;
|
||||
if (type == 4) {
|
||||
var subname = childNodes[i].getParentNode();
|
||||
var provincename = childNodes[i].getParentNode().getParentNode();
|
||||
var projectname = childNodes[i].getParentNode().getParentNode().getParentNode();
|
||||
|
||||
zTree.expandNode(projectname, true);
|
||||
zTree.expandNode(provincename, true);
|
||||
zTree.expandNode(subname, true);
|
||||
zTree.expandNode(childNodes[i], true);
|
||||
|
||||
$('#pointInfo').text(
|
||||
'所选监测点:' + projectname.name + '->' + provincename.name + '->' + subname.name + '->'
|
||||
+ childNodes[i].name);
|
||||
|
||||
var line_index = childNodes[i].nodeIndex;
|
||||
pttype = childNodes[i].pttype;
|
||||
$("#lineIndex").val(line_index);
|
||||
$("#lineName").val(childNodes[i].name);
|
||||
|
||||
// 关闭所有节点的高亮
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());
|
||||
for (var n = 0; n < allNodes.length; n++) {
|
||||
allNodes[n].highlight = false;
|
||||
treeObj.updateNode(allNodes[n]);
|
||||
}
|
||||
|
||||
// 高亮并展开搜索到的节点
|
||||
childNodes[i].highlight = true;
|
||||
treeObj.updateNode(childNodes[i]); // 更新节点,让高亮生效
|
||||
|
||||
var middlesrc = $("#middlesrc").val();
|
||||
if (middlesrc == "offwtqs") {
|
||||
document.getElementById("main_right").contentWindow.changeTree(pttype);
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 选中之前验证是否超过约定上限 超过弹框提示并不选中节点
|
||||
******************************************************************************/
|
||||
var limitMax = 1;
|
||||
var arrVerify;
|
||||
|
||||
function doVerify() {
|
||||
arrVerify = getAllSelected();
|
||||
}
|
||||
|
||||
function getAllSelected() {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
return zTree.getCheckedNodes(true);
|
||||
}
|
||||
|
||||
function onVerify() {
|
||||
var arrPoint = getTreeSelected(1);
|
||||
|
||||
if (0 === arrPoint.length) {
|
||||
return;
|
||||
}
|
||||
|
||||
var arr = getAllSelected();
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
|
||||
closeHigh();
|
||||
|
||||
if (arrPoint.length > limitMax) {
|
||||
if (arrVerify.length == 0) {
|
||||
zTree.checkAllNodes(false);
|
||||
} else {
|
||||
for (var i = 0; i < arr.length; i++) {
|
||||
var index = $.inArray(arr[i], arrVerify);
|
||||
|
||||
if (index === -1) {
|
||||
zTree.checkNode(arr[i], false, false);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
layer.msg("最多选择" + limitMax + "个监测点.");
|
||||
} else {
|
||||
for (var j = 0; j < arrVerify.length; j++) {
|
||||
arrVerify[j].highlight = false;
|
||||
zTree.updateNode(arrVerify[j]);
|
||||
}
|
||||
|
||||
for (var i = 0; i < arrPoint.length; i++) {
|
||||
arrPoint[i].highlight = true;
|
||||
zTree.updateNode(arrPoint[i]);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 设置高亮字体
|
||||
function setHighlight(treeId, treeNode) {
|
||||
return (!!treeNode.highlight) ? {
|
||||
color : "#000000",
|
||||
"font-weight" : "bold"
|
||||
} : {
|
||||
color : "#666",
|
||||
"font-weight" : "normal"
|
||||
};
|
||||
}
|
||||
|
||||
// 关闭所有高亮节点
|
||||
function closeHigh() {
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var allNodes = treeObj.transformToArray(treeObj.getNodes());// 关闭所有节点的高亮
|
||||
|
||||
for (var i = 0; i < allNodes.length; i++) {
|
||||
allNodes[i].highlight = false;
|
||||
treeObj.updateNode(allNodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
// 模糊搜索name满足条件的节点
|
||||
function searchNode(value) {
|
||||
if (value == "")
|
||||
return;
|
||||
|
||||
var treeObj = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = treeObj.getNodesByParamFuzzy("name", value);// 获取搜索的节点
|
||||
|
||||
closeHigh();
|
||||
|
||||
treeObj.expandAll(false);// 展开第一层节点
|
||||
treeObj.expandNode(treeObj.getNodes()[0], true);
|
||||
|
||||
// 高亮并展开搜索到的节点
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].highlight = true;
|
||||
treeObj.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
treeObj.expandNode(nodes[i].getParentNode(), true);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* zTree操作deviceTree代码段结束
|
||||
******************************************************************************/
|
||||
// type-1:getCheckedNodes方法,type-2:getSelectedNodes方法
|
||||
function getTreeSelected(type) {
|
||||
var pointNodes = [];
|
||||
|
||||
if (type == 1) {
|
||||
var nodes = getAllSelected();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].level == 4) {
|
||||
pointNodes.push(nodes[i]);
|
||||
}
|
||||
}
|
||||
} else if (type == 2) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.getSelectedNodes();
|
||||
|
||||
if (0 === nodes.length) {
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
if (nodes[0].level == 4) {
|
||||
pointNodes.push(nodes[0]);
|
||||
}
|
||||
}
|
||||
|
||||
return pointNodes;
|
||||
}
|
||||
|
||||
function valueChange(value) {
|
||||
if (value == '') {
|
||||
closeHigh();
|
||||
}
|
||||
}
|
||||
|
||||
$(function() {
|
||||
if (path.indexOf("offlinemonitor") != -1) {
|
||||
setting = {
|
||||
check : {
|
||||
enable : true,
|
||||
nocheckInherit : true
|
||||
},
|
||||
data : {
|
||||
simpleData : {
|
||||
enable : true
|
||||
}
|
||||
},
|
||||
view : {
|
||||
fontCss : setHighlight // 高亮一定要设置,setHighlight是自定义方法
|
||||
},
|
||||
callback : {
|
||||
onCheck : onVerify,
|
||||
beforeCheck : doVerify,
|
||||
onClick : pointSelected
|
||||
}
|
||||
};
|
||||
getData();
|
||||
// zTreeOnAsyncSuccess();
|
||||
} else {
|
||||
setting = {
|
||||
check : {
|
||||
enable : true,
|
||||
nocheckInherit : true
|
||||
},
|
||||
data : {
|
||||
simpleData : {
|
||||
enable : true
|
||||
}
|
||||
},
|
||||
view : {
|
||||
fontCss : setHighlight // 高亮一定要设置,setHighlight是自定义方法
|
||||
},
|
||||
callback : {
|
||||
onCheck : onVerify,
|
||||
beforeCheck : doVerify,
|
||||
onClick : pointSelected
|
||||
}
|
||||
};
|
||||
initDiv();
|
||||
getData();
|
||||
triggerCheckBox(2);
|
||||
setTreeSelected(2, 1);
|
||||
}
|
||||
});
|
||||
|
||||
function initDiv() {
|
||||
document.getElementById("tree").style.height = document
|
||||
.getElementById("father").offsetHeight
|
||||
- document.getElementById("search").offsetHeight - 5 + "px";
|
||||
}
|
||||
|
||||
//数据库获取离线终端树数据
|
||||
function getData() {
|
||||
$.ajax({
|
||||
url : "/pqs9000/device/offLinetree",
|
||||
type : "post",
|
||||
async : false,
|
||||
dataType : "json",
|
||||
data : {},
|
||||
success : function(data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
initTree(data.body);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取离线终端树年份数据
|
||||
function getyearData() {
|
||||
$.ajax({
|
||||
url : "/pqs9000/device/yeartree",
|
||||
type : "post",
|
||||
async : false,
|
||||
dataType : "json",
|
||||
data : {},
|
||||
success : function(data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
initTree(data.body);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
//数据库获取离线终端树干扰源类型数据
|
||||
function gettypeData() {
|
||||
$.ajax({
|
||||
url : "/pqs9000/device/loadtypetree",
|
||||
type : "post",
|
||||
async : false,
|
||||
dataType : "json",
|
||||
data : {},
|
||||
success : function(data) {
|
||||
if (data.code == 500 || data.body == null) {
|
||||
layer.msg("获取终端树内容失败.");
|
||||
} else {
|
||||
initTree(data.body);
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 是否显示checkBox type-1:显示 type-2:不显示
|
||||
******************************************************************************/
|
||||
function triggerCheckBox(type) {
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
var isShow = false;
|
||||
|
||||
if (type == 2) {
|
||||
isShow = true;
|
||||
}
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
nodes[i].nocheck = isShow;
|
||||
zTree.updateNode(nodes[i]);
|
||||
}
|
||||
}
|
||||
|
||||
/*******************************************************************************
|
||||
* 初始化终端树时,设置其选中状态 如果传入的参数<=0,则默认置为1 type-1:复选框 type-2:无复选框
|
||||
******************************************************************************/
|
||||
function setTreeSelected(type, selectNumber) {
|
||||
var count = 0;
|
||||
selectNumber = selectNumber <= 0 ? 1 : selectNumber;
|
||||
limitMax = selectNumber;
|
||||
var zTree = $.fn.zTree.getZTreeObj("tree");
|
||||
var nodes = zTree.transformToArray(zTree.getNodes());
|
||||
|
||||
for (var i = 0; i < nodes.length; i++) {
|
||||
if (nodes[i].level == 4) {
|
||||
zTree.selectNode(nodes[i]);
|
||||
|
||||
if (type == 1) {
|
||||
zTree.checkNode(nodes[i], true, true);
|
||||
}
|
||||
|
||||
nodes[i].highlight = true;
|
||||
zTree.updateNode(nodes[i]); // 更新节点,让高亮生效
|
||||
count++;
|
||||
|
||||
if (count == selectNumber) {
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
// 初始化终端树
|
||||
function initTree(treeData) {
|
||||
if (treeData.length == 0) {
|
||||
layer.msg("数据库数据为空,终端树加载失败.");
|
||||
return;
|
||||
}
|
||||
|
||||
var datalist = [];
|
||||
for (var i = 0; i < treeData.length; i++) {
|
||||
var str = '';
|
||||
|
||||
str += '{' + "id:" + treeData[i].id;
|
||||
str += ',' + "name:'" + treeData[i].name + "'";
|
||||
str += ',' + "nodeIndex:" + treeData[i].nodeIndex;
|
||||
str += ',' + "nodeType:" + treeData[i].nodeType;
|
||||
str += ',' + "ppId:" + treeData[i].ppId;
|
||||
if (treeData[i].nodeType == "0") {
|
||||
str += ',' + "open:" + true;
|
||||
} else {
|
||||
str += ',' + "open:" + false;
|
||||
}
|
||||
str += ',' + "pttype:" + treeData[i].pttype;
|
||||
str += ',' + "pId:" + treeData[i].pId + '}';
|
||||
datalist.push(str);
|
||||
}
|
||||
|
||||
datalist = eval('[' + datalist + ']');// string->json数组
|
||||
var zNodes = datalist;
|
||||
|
||||
$.fn.zTree.init($("#tree"), setting, zNodes);
|
||||
}
|
||||
245
pqs9000/src/main/webapp/jspJS/utils/plateUtils.js
Normal file
245
pqs9000/src/main/webapp/jspJS/utils/plateUtils.js
Normal file
@@ -0,0 +1,245 @@
|
||||
/*********************
|
||||
* add by denghhuajun
|
||||
*主要对历史数据公共类抽取
|
||||
* ********************/
|
||||
// 右边统计类型tree节点增加数据(星型)
|
||||
var reportNode = [{
|
||||
id: 1,
|
||||
pId: 0,
|
||||
name: "电度基本电能量",
|
||||
open: true,
|
||||
checked: true,
|
||||
},
|
||||
// {
|
||||
// id: 11,
|
||||
// pId: 1,
|
||||
// name: "有功电能",
|
||||
// checked: true
|
||||
// },
|
||||
{
|
||||
id: 111,
|
||||
pId: 1,
|
||||
name: "三相总有功电能",
|
||||
checked: true
|
||||
},
|
||||
// {
|
||||
// id: 12,
|
||||
// pId: 1,
|
||||
// name: "无功电能"
|
||||
// },
|
||||
{
|
||||
id: 121,
|
||||
pId: 1,
|
||||
name: "三相总无功电能"
|
||||
},
|
||||
// {
|
||||
// id: 13,
|
||||
// pId: 1,
|
||||
// name: "视在电能"
|
||||
// },
|
||||
{
|
||||
id: 131,
|
||||
pId: 1,
|
||||
name: "三相总视在电能"
|
||||
},
|
||||
// {
|
||||
// id: 14,
|
||||
// pId: 1,
|
||||
// name: "基波有功电能"
|
||||
// },
|
||||
{
|
||||
id: 141,
|
||||
pId: 1,
|
||||
name: "三相总基波有功电能"
|
||||
},
|
||||
// {
|
||||
// id: 15,
|
||||
// pId: 1,
|
||||
// name: "基波无功电能"
|
||||
// },
|
||||
{
|
||||
id: 151,
|
||||
pId: 1,
|
||||
name: "三相总基波无功电能"
|
||||
},
|
||||
// {
|
||||
// id: 16,
|
||||
// pId: 1,
|
||||
// name: "总谐波有功电能"
|
||||
// },
|
||||
{
|
||||
id: 161,
|
||||
pId: 1,
|
||||
name: "三相总谐波有功电能"
|
||||
},
|
||||
// {
|
||||
// id: 17,
|
||||
// pId: 1,
|
||||
// name: "总谐波无功电能"
|
||||
// },
|
||||
{
|
||||
id: 171,
|
||||
pId: 1,
|
||||
name: "三相总谐波无功电能"
|
||||
}];
|
||||
|
||||
var zNodes = [{
|
||||
id: 1,
|
||||
pId: 0,
|
||||
name: "电度基本电能量",
|
||||
open: true,
|
||||
checked: true,
|
||||
}, {
|
||||
id: 11,
|
||||
pId: 1,
|
||||
name: "有功电能",
|
||||
checked: true
|
||||
}, {
|
||||
id: 111,
|
||||
pId: 1,
|
||||
name: "三相总有功电能",
|
||||
checked: true
|
||||
}, {
|
||||
id: 12,
|
||||
pId: 1,
|
||||
name: "无功电能"
|
||||
}, {
|
||||
id: 121,
|
||||
pId: 1,
|
||||
name: "三相总无功电能"
|
||||
}, {
|
||||
id: 13,
|
||||
pId: 1,
|
||||
name: "视在电能"
|
||||
}, {
|
||||
id: 131,
|
||||
pId: 1,
|
||||
name: "三相总视在电能"
|
||||
}, {
|
||||
id: 14,
|
||||
pId: 1,
|
||||
name: "基波有功电能"
|
||||
}, {
|
||||
id: 141,
|
||||
pId: 1,
|
||||
name: "三相总基波有功电能"
|
||||
}, {
|
||||
id: 15,
|
||||
pId: 1,
|
||||
name: "基波无功电能"
|
||||
}, {
|
||||
id: 151,
|
||||
pId: 1,
|
||||
name: "三相总基波无功电能"
|
||||
}, {
|
||||
id: 16,
|
||||
pId: 1,
|
||||
name: "总谐波有功电能"
|
||||
}, {
|
||||
id: 161,
|
||||
pId: 1,
|
||||
name: "三相总谐波有功电能"
|
||||
}, {
|
||||
id: 17,
|
||||
pId: 1,
|
||||
name: "总谐波无功电能"
|
||||
}, {
|
||||
id: 171,
|
||||
pId: 1,
|
||||
name: "三相总谐波无功电能"
|
||||
}, {
|
||||
id: 2,
|
||||
pId: 0,
|
||||
name: "电度谐波电能量",
|
||||
}, {
|
||||
id: 21,
|
||||
pId: 2,
|
||||
name: "谐波有功电能",
|
||||
}, {
|
||||
id: 22,
|
||||
pId: 2,
|
||||
name: "谐波无功电能"
|
||||
}, {
|
||||
id: 3,
|
||||
pId: 0,
|
||||
name: "电度需量",
|
||||
}, {
|
||||
id: 31,
|
||||
pId: 3,
|
||||
name: "有功需量"
|
||||
}, {
|
||||
id: 32,
|
||||
pId: 3,
|
||||
name: "无功需量"
|
||||
}];
|
||||
|
||||
/*********************
|
||||
* 开始时间与结束时间比较
|
||||
* 开始时间大于结束时间返回false
|
||||
* 开始时间小于结束时间返回true
|
||||
* @param startTime
|
||||
* @param endTime
|
||||
* @returns
|
||||
********************/
|
||||
function compareTime(startTime, endTime) {
|
||||
if (startTime > endTime) {
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据两个日期,判断相差天数
|
||||
* @param sDate1 开始日期 如:2016-11-01
|
||||
* @param sDate2 结束日期 如:2016-11-02
|
||||
* @returns {number} 返回相差天数
|
||||
*/
|
||||
function daysBetween(sDate1, sDate2) {
|
||||
//Date.parse() 解析一个日期时间字符串,并返回1970/1/1 午夜距离该日期时间的毫秒数
|
||||
var time1 = Date.parse(new Date(sDate1.replace(/-/g, "/")));
|
||||
var time2 = Date.parse(new Date(sDate2.replace(/-/g, "/")));
|
||||
var nDays = Math.abs(Math.ceil(parseFloat(time2 - time1).toFixed(2) / (1000 * 3600 * 24)));
|
||||
return nDays;
|
||||
};
|
||||
|
||||
function dataAddOneDay(dataEnd) {
|
||||
var strdate = dataEnd; //日期字符串
|
||||
var isdate = new Date(strdate.replace(/-/g, "/")); //把日期字符串转换成日期格式
|
||||
isdate = new Date((isdate / 1000 + 86400) * 1000); //日期加1天
|
||||
// 把日期格式转换成字符串
|
||||
var year = isdate.getFullYear();
|
||||
var month = (isdate.getMonth() + 1).toString();
|
||||
var day = (isdate.getDate()).toString();
|
||||
if (month.length == 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (day.length == 1) {
|
||||
day = "0" + day;
|
||||
}
|
||||
var pdate = year + "-" + month + "-" + day;
|
||||
return pdate;
|
||||
}
|
||||
|
||||
//日期加天数的方法
|
||||
//dataStr日期字符串
|
||||
//dayCount 要增加的天数
|
||||
//return 增加n天后的日期字符串
|
||||
function dateAddDays(dataStr, dayCount) {
|
||||
var strdate = dataStr; //日期字符串
|
||||
var isdate = new Date(strdate.replace(/-/g, "/")); //把日期字符串转换成日期格式
|
||||
isdate = new Date((isdate / 1000 + (86400 * (dayCount - 1))) * 1000); //日期加1天
|
||||
// 把日期格式转换成字符串
|
||||
var year = isdate.getFullYear();
|
||||
var month = (isdate.getMonth() + 1).toString();
|
||||
var day = (isdate.getDate()).toString();
|
||||
if (month.length == 1) {
|
||||
month = "0" + month;
|
||||
}
|
||||
if (day.length == 1) {
|
||||
day = "0" + day;
|
||||
}
|
||||
var pdate = year + "-" + month + "-" + day;
|
||||
return pdate;
|
||||
}
|
||||
|
||||
|
||||
477
pqs9000/src/main/webapp/jspJS/utils/positionOffset.js
Normal file
477
pqs9000/src/main/webapp/jspJS/utils/positionOffset.js
Normal file
@@ -0,0 +1,477 @@
|
||||
/************************************
|
||||
* 地图公共参数定义
|
||||
*************************************/
|
||||
var minLeave = 5;//地图最小展示级别
|
||||
var maxLeave = 15;//地图最大展示级别
|
||||
var defaultlevel = 12;//地图默认展示级别
|
||||
var point = new BMap.Point(104.038357, 30.669091); //地图加载中心点(成都电科院地址)
|
||||
|
||||
/************************************
|
||||
获取监测点经纬度信息加载到地图
|
||||
************************************/
|
||||
//创建图标
|
||||
var redIcon = new BMap.Icon("../images/img/pred.png", new BMap.Size(25, 25));
|
||||
var greenIcon = new BMap.Icon("../images/img/pgreen4.png", new BMap.Size(25, 25));
|
||||
var yellowIcon = new BMap.Icon("../images/img/pyellow.png", new BMap.Size(25, 25));
|
||||
var grayIcon = new BMap.Icon("../images/img/pgray.png", new BMap.Size(25, 25));
|
||||
var stationIcon = new BMap.Icon("../images/img/station.png", new BMap.Size(25, 25));
|
||||
var wingrayIcon = new BMap.Icon("../images/img/wingray.gif", new BMap.Size(40, 40));
|
||||
var winyellowIcon = new BMap.Icon("../images/img/winyellow.gif", new BMap.Size(40,40));
|
||||
var wingreenIcon = new BMap.Icon("../images/img/wingreen11.gif", new BMap.Size(40,40));
|
||||
var winredIcon = new BMap.Icon("../images/img/winred.gif", new BMap.Size(40, 40));
|
||||
//终端状态
|
||||
var redMarkerOptions = {icon:redIcon,enableDragging:false}
|
||||
var greenMarkerOptions = {icon:greenIcon,enableDragging:false}
|
||||
var yellowMarkerOptions = {icon:yellowIcon,enableDragging:false}
|
||||
var grayMarkerOptions = {icon:grayIcon,enableDragging:false}
|
||||
var stationOptions = {icon:stationIcon,enableDragging:false}
|
||||
var wingrayMarkerOptions = {icon:wingrayIcon,enableDragging:false}
|
||||
var winyellowMarkerOptions = {icon:winyellowIcon,enableDragging:false}
|
||||
var wingreenMarkerOptions = {icon:wingreenIcon,enableDragging:false}
|
||||
var winredMarkerOptions = {icon:winredIcon,enableDragging:false}
|
||||
|
||||
/************************************
|
||||
* 加载地里信息地图
|
||||
*************************************/
|
||||
function getGISMap(element,drgging,scrollwheel,leave) {
|
||||
defaultlevel = leave;//地图的放大等级
|
||||
|
||||
var map = new BMap.Map(element, {minZoom:minLeave,maxZoom: maxLeave, enableMapClick: false});//实例化地图
|
||||
map.centerAndZoom(point, defaultlevel);//设初始化地图
|
||||
/********************
|
||||
* 拖拽地图
|
||||
********************/
|
||||
if(drgging)
|
||||
map.enableDragging();//启用地图拖拽,默认启用
|
||||
else
|
||||
map.disableDragging();//禁用地图拖拽
|
||||
/********************
|
||||
* 地图滚轮
|
||||
*******************/
|
||||
if(scrollwheel)
|
||||
map.enableScrollWheelZoom();//启用滚轮放大缩小,默认禁用
|
||||
else
|
||||
map.disableScrollWheelZoom();//禁用滚轮放大缩小
|
||||
|
||||
map.disableContinuousZoom();//禁用连续缩放效果
|
||||
map.disableDoubleClickZoom();//禁用双击放大
|
||||
return map;
|
||||
}
|
||||
|
||||
/********************************************
|
||||
查询所有监测点信息
|
||||
*******************************************/
|
||||
function searchLineMaps(){
|
||||
var resultData = null;
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
async: false,
|
||||
url : "/pqs9200/overview/getLineMaps",
|
||||
dataType : "text",
|
||||
success : function(data) {
|
||||
resultData = $.parseJSON(data);
|
||||
}
|
||||
});
|
||||
|
||||
return resultData;
|
||||
}
|
||||
|
||||
/********************************************
|
||||
获取网络拓扑图信息
|
||||
*******************************************/
|
||||
function getGridTop(){
|
||||
$.ajax({
|
||||
type : "POST",
|
||||
url : "/pqs9200/overview/getGridTop",
|
||||
dataType : "text",
|
||||
success : function(data) {
|
||||
var info = $.parseJSON(data);
|
||||
//取数据失败,则进行不进行操作
|
||||
if (info.code == 500) {
|
||||
} else {
|
||||
if (info.body != null) {
|
||||
drawline(info.body);
|
||||
}
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
/********************************************
|
||||
采用算法计算出变电站和监测点位信息
|
||||
***基础数据***变电站点***变电站跟监测点连线***监测点点位信息
|
||||
*******************************************/
|
||||
var subMarkers= [];subpointLines= [];pointMarkers= [];
|
||||
function drawElement(dataarr,map,iFlag){
|
||||
var gisInfo = new Object();//存放所有的地理信息地图
|
||||
subMarkers= [];subpointLines= [];pointMarkers= [];
|
||||
|
||||
//解析Map
|
||||
for(key in dataarr){
|
||||
var strkey = key.split(",");
|
||||
if(strkey.length == 3){
|
||||
//新增变电站的点
|
||||
var submarker = new BMap.Marker(new BMap.Point(strkey[1], strkey[2]), stationOptions); //创建变电站点
|
||||
submarker.name = strkey[0];//设置变电站名称
|
||||
var strTitle = '变电站名称:' + submarker.name;
|
||||
submarker.setTitle(strTitle);//设置标注的标题,当鼠标移至标注上时显示此标题
|
||||
|
||||
subMarkers.push(submarker);//把变电站信息放到集合中去
|
||||
//解析监测点信息
|
||||
var lineMaps = dataarr[key];
|
||||
for(var i = 0; i < lineMaps.length; i++){
|
||||
var pointmarker = getPoint(lineMaps[i],map,iFlag);
|
||||
pointMarkers.push(pointmarker);//把监测点信息放到集合中去
|
||||
var polyline = new BMap.Polyline([submarker.getPosition(),pointmarker.getPosition()], {strokeColor:"#006A6A", strokeWeight:2, strokeOpacity:0.5});//创建变电站-监测点折线
|
||||
polyline.setStrokeStyle("dashed");
|
||||
subpointLines.push(polyline);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
//赋值
|
||||
gisInfo.subMarkers = subMarkers;
|
||||
gisInfo.subpointLines = subpointLines;
|
||||
gisInfo.pointMarkers = pointMarkers;
|
||||
|
||||
/************************************
|
||||
把所有元素打到地图上并且影藏
|
||||
************************************/
|
||||
for(var i = 0;i <subMarkers.length; i++){
|
||||
map.addOverlay(subMarkers[i]);
|
||||
subMarkers[i].hide();
|
||||
}
|
||||
|
||||
for(var i = 0;i < subpointLines.length; i++){
|
||||
map.addOverlay(subpointLines[i]);
|
||||
subpointLines[i].hide();
|
||||
}
|
||||
return gisInfo;
|
||||
}
|
||||
|
||||
/************************************
|
||||
获取监测点经纬度信息加载到地图上
|
||||
***监测点信息(lineMap)***生成类型(iFlag:0 概览界面;1 监测点界面)
|
||||
************************************/
|
||||
var dataPoint = 'monitor';
|
||||
function getPoint(lineMap,map,iFlag) {
|
||||
var point = new BMap.Point(lineMap.longitude, lineMap.latitude);
|
||||
//监测点点位信息;终端状态;终端状态颜色
|
||||
var marker,strState = '停运',fontState ='#808080';
|
||||
//通讯状态,通讯状态颜色
|
||||
var strStatus = '中断',fontStatus='#FF0000';
|
||||
/********************************
|
||||
终端状态: 2停运 灰色 128,128,128 #808080
|
||||
1热备用 金色 255,215,0 #FFD700
|
||||
0投运(正常的则判断通讯状态)
|
||||
通讯状态: 0正常 绿色 0,128,0 #08CF5A
|
||||
1中断 红色 255,0,0 #FF0000
|
||||
**********************************/
|
||||
switch(lineMap.devflag){
|
||||
case 0:
|
||||
strState = '投运';
|
||||
fontState='#08CF5A';
|
||||
//终端通讯状态(0:中断;1:正常)
|
||||
switch(lineMap.status){
|
||||
case 0:
|
||||
strStatus = '中断';
|
||||
fontStatus='#FF0000';
|
||||
if(lineMap.totalcount > 0)
|
||||
marker = new BMap.Marker(point, winredMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, redMarkerOptions);
|
||||
break;
|
||||
case 1:
|
||||
strStatus = '正常';
|
||||
fontStatus='#08CF5A';
|
||||
if(lineMap.totalcount > 0)
|
||||
marker = new BMap.Marker(point, wingreenMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, greenMarkerOptions);
|
||||
break;
|
||||
}
|
||||
break;
|
||||
case 1:
|
||||
strState = '热备用';
|
||||
fontState='#FFD700';
|
||||
if(lineMap.totalcount > 0)
|
||||
marker = new BMap.Marker(point, winyellowMarkerOptions);//假如终端出现了暂降事件
|
||||
else
|
||||
marker = new BMap.Marker(point, yellowMarkerOptions);
|
||||
break;
|
||||
case 2:
|
||||
strState = '停运';
|
||||
fontState='#808080';
|
||||
if(lineMap.totalcount > 0)
|
||||
marker = new BMap.Marker(point, wingrayMarkerOptions);
|
||||
else
|
||||
marker = new BMap.Marker(point, grayMarkerOptions);
|
||||
break;
|
||||
}
|
||||
//设置marker其他属性
|
||||
marker.index = lineMap.lineindex;//存储监测点的id
|
||||
marker.name = lineMap.linename;//存储监测点的名称
|
||||
marker.devflag = lineMap.devflag;//存储监测点的状态
|
||||
marker.totalcount = lineMap.totalcount;//存储未处理事件
|
||||
|
||||
marker.lineMap = lineMap;//所存储的监测点信息
|
||||
|
||||
var strTitle = '监测点名称:' + lineMap.linename;
|
||||
if(lineMap.totalcount > 0){
|
||||
strTitle += '\n' + '未处理暂降事件:' + lineMap.totalcount + '(次)';
|
||||
}
|
||||
|
||||
//概览界面才有右击操作
|
||||
if(iFlag == 0){
|
||||
marker.addEventListener("rightclick", function (){
|
||||
if(lineMap.totalcount > 0){
|
||||
querySagEvents(lineMap.lineindex);//双击事件的执行代码
|
||||
}else{
|
||||
parent.layer.msg("该监测点未找到未处理暂降事件", {icon: 6,time:1000});
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
marker.setTitle(strTitle);//设置标注的标题,当鼠标移至标注上时显示此标题
|
||||
/************************************
|
||||
设置弹出框相关内容
|
||||
************************************/
|
||||
//概览界面
|
||||
if(iFlag == 0){
|
||||
//组装TIP
|
||||
var showInfo = '<div class="mystyle" style="margin:0;line-height:19px;padding:2px;font-size:12px;font-family:"微软雅黑";font-weight:bold;">' +
|
||||
'<label> 供电公司 </label> ' + lineMap.gdname + '<br/>' +
|
||||
'<label> 变电站 </label> ' + lineMap.subname + '<br/>' +
|
||||
'<label> 母线 </label> ' + lineMap.subvname + '<br/>' +
|
||||
'<label> IP地址 </label> ' + lineMap.ip + '<br/>' +
|
||||
'<label> PT变比 </label> ' + lineMap.pt1/1000 +'/'+ lineMap.pt2/1000 +'<br/>' +
|
||||
'<label> CT变比 </label> ' + lineMap.ct1 +'/' + lineMap.ct2 + '<br/>' +
|
||||
'<label> 生产厂家 </label> ' + lineMap.manufacturer + '<br/>' +
|
||||
'<label> 终端状态 </label> <font color="'+ fontState +'">' + strState + '</font><br/>' +
|
||||
'<label> 通讯状态 </label> <font color="'+ fontStatus +'">' + strStatus + '</font><br/>' +
|
||||
'<div class="form-inline fr" style="margin:5px 0px 1px 2px;">'+
|
||||
'<button type="button" class="btn btn-primary btn-xs" onclick="openmonitor(\''+ lineMap.lineindex +'\')"> <i class="glyphicon glyphicon-screenshot"></i>查看监测点</button>'+
|
||||
'<button type="button" style="margin:0px 0px 0px 2px;" class="btn btn-primary btn-xs" onclick="openSagEvents(\''+ lineMap.lineindex +'\',\''+ lineMap.totalcount +'\')"> <i class="glyphicon glyphicon-warning-sign"></i>未处理事件('+ marker.totalcount +')</button>'+
|
||||
'</div>';
|
||||
|
||||
var searchInfoWindow = new BMapLib.SearchInfoWindow(map, showInfo, {
|
||||
title: '监测点名称:' + lineMap.linename, //标题
|
||||
width: 25, //宽度
|
||||
height: 265, //高度
|
||||
searchTypes: [],
|
||||
enableSendToPhone: false
|
||||
});
|
||||
marker.searchInfoWindow = searchInfoWindow;
|
||||
|
||||
//定义setTimeout执行方法
|
||||
var TimeFn = null;
|
||||
marker.addEventListener("click", function () {
|
||||
// 取消上次延时未执行的方法
|
||||
clearTimeout(TimeFn);
|
||||
//执行延时
|
||||
TimeFn = setTimeout(function(){
|
||||
searchInfoWindow.open(point);
|
||||
activesearchInfoWindow = searchInfoWindow;
|
||||
},250);
|
||||
});
|
||||
|
||||
marker.addEventListener("dblclick", function () {
|
||||
// 取消上次延时未执行的方法
|
||||
clearTimeout(TimeFn);
|
||||
//双击则弹到监测点界面
|
||||
if(window.top.document.getElementById(dataPoint) != null){
|
||||
window.top.addTab(dataPoint,'监测点');
|
||||
window.top.document.getElementById(dataPoint).contentWindow.zTreeOnAsyncSuccess(marker.index);
|
||||
} else if(window.top.document.getElementById('monitor') != null){
|
||||
window.top.addTab('monitor','监测点');
|
||||
window.top.document.getElementById('monitor').contentWindow.zTreeOnAsyncSuccess(marker.index);
|
||||
}else{
|
||||
window.top.addTab('monitor?line_index='+ marker.index,'监测点');
|
||||
dataPoint = 'monitor?line_index='+ marker.index;
|
||||
|
||||
window.parent.parent.document.getElementById('dataPoint').value=dataPoint;
|
||||
}
|
||||
});
|
||||
}
|
||||
//监测点界面
|
||||
else if(iFlag == 1){
|
||||
//组装TIP
|
||||
var showInfo = '<div class="mystyle" style="margin:0;line-height:19px;padding:2px;font-size:12px;font-family:"微软雅黑";font-weight:bold;">' +
|
||||
'<label> 供电公司 </label> ' + lineMap.gdname + '<br/>' +
|
||||
'<label> 变电站 </label> ' + lineMap.subname + '<br/>' +
|
||||
'<label> 母线 </label> ' + lineMap.subvname + '<br/>' +
|
||||
'<label> IP地址 </label> ' + lineMap.ip + '<br/>' +
|
||||
'<label> PT变比 </label> ' + lineMap.pt1/1000 +'/'+ lineMap.pt2/1000 +'<br/>' +
|
||||
'<label> CT变比 </label> ' + lineMap.ct1 +'/'+ lineMap.ct2 + '<br/>' +
|
||||
'<label> 生产厂家 </label> ' + lineMap.manufacturer + '<br/>' +
|
||||
'<label> 终端状态 </label> <font color="'+ fontState +'">' + strState + '</font><br/>' +
|
||||
'<label> 通讯状态 </label> <font color="'+ fontStatus +'">' + strStatus + '</font><br/>' +
|
||||
'<div class="form-inline fr" style="margin:5px 0px 1px 2px;">'+
|
||||
'<button type="button" class="btn btn-primary btn-xs" onclick="openEventStatis()"> <i class="glyphicon glyphicon-screenshot"></i>事件统计</button>'+
|
||||
'<button type="button" class="btn btn-primary btn-xs" style="margin:0px 0px 0px 5px;" onclick="openEventSys()"> <i class="glyphicon glyphicon-warning-sign"></i>事件分析</button>'+
|
||||
'<button type="button" class="btn btn-primary btn-xs" style="margin:0px 0px 0px 5px;" onclick="openDevRunning()"> <i class="glyphicon glyphicon-briefcase"></i>终端运行管理</button>'+
|
||||
'</div>';
|
||||
|
||||
var searchInfoWindow = new BMapLib.SearchInfoWindow(map, showInfo, {
|
||||
title: '监测点名称:' + lineMap.linename, //标题
|
||||
width: 280, //宽度
|
||||
height: 265, //高度
|
||||
searchTypes: [],
|
||||
enableSendToPhone: false
|
||||
});
|
||||
|
||||
marker.searchInfoWindow = searchInfoWindow;
|
||||
|
||||
marker.addEventListener("click", function () {
|
||||
searchInfoWindow.open(point);
|
||||
$.fn.zTree.getZTreeObj("tree").expandAll(false);
|
||||
zTreeOnAsyncSuccess(lineMap.lineindex);
|
||||
var nowIndex=$("#lineIndex").val();
|
||||
// pantoPoint(nowIndex);
|
||||
changeFlag(true);
|
||||
|
||||
activesearchInfoWindow = searchInfoWindow;
|
||||
activepoint = point;
|
||||
});
|
||||
}
|
||||
return marker;
|
||||
}
|
||||
|
||||
/************************************
|
||||
地图增加相应的元素
|
||||
***********************************/
|
||||
function controlMapElements(map){
|
||||
var zoom = map.getZoom();
|
||||
|
||||
var bs = map.getBounds();//获取可视区域
|
||||
for(var i=0;i<subMarkers.length;i++){
|
||||
if(zoom >=15){
|
||||
var subpoint = subMarkers[i].getPosition();
|
||||
var result = BMapLib.GeoUtils.isPointInRect(subpoint, bs);
|
||||
if(result == true){
|
||||
subMarkers[i].show();
|
||||
}
|
||||
}else{
|
||||
subMarkers[i].hide();
|
||||
}
|
||||
}
|
||||
|
||||
for(var i=0;i<subpointLines.length;i++){
|
||||
if(zoom >=15){
|
||||
var subpointarr = subpointLines[i].getPath();
|
||||
var result = true;
|
||||
for(var j=0;j<subpointarr.length;j++){
|
||||
result = BMapLib.GeoUtils.isPointInRect(subpointarr[j], bs);
|
||||
if(result == false)
|
||||
break;
|
||||
}
|
||||
if(result == true){
|
||||
subpointLines[i].show();
|
||||
}
|
||||
}else{
|
||||
subpointLines[i].hide();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/************************************
|
||||
对所有监测点进行偏移算法
|
||||
***********************************/
|
||||
function getDataOffset(data){
|
||||
var maparr={};
|
||||
var tmpmap = {};
|
||||
for (var i = 0; i < data.length; i++) {
|
||||
//获取变电站名称(key,由变电站名称,经度,纬度组成:事例:变电站1,123.00,135.00)
|
||||
var key = data[i].subname + "," + data[i].longitude + "," + data[i].latitude;
|
||||
//假如key已经存在了
|
||||
if(tmpmap[key]){
|
||||
var tmpdata = tmpmap[key];
|
||||
tmpdata.push(data[i]);
|
||||
}else{
|
||||
var tmpdata= [];
|
||||
tmpdata.push(data[i]);
|
||||
tmpmap[key] = tmpdata;
|
||||
}
|
||||
}
|
||||
|
||||
//根据分组后的监测点进行偏移算法
|
||||
var r = 0.0035;
|
||||
for(tmpkey in tmpmap){
|
||||
var arr = tmpmap[tmpkey];
|
||||
var tmplength = arr.length;
|
||||
var dataarr = [];
|
||||
for(var i = 0;i < tmplength;i++){
|
||||
var info = arr[i];
|
||||
info.longitude =info.longitude + r*Math.cos(2*Math.PI*(i)/tmplength);
|
||||
info.latitude =info.latitude + r*Math.sin(2*Math.PI*(i)/tmplength);
|
||||
dataarr.push(info);
|
||||
}
|
||||
maparr[tmpkey] = dataarr;
|
||||
}
|
||||
return maparr;
|
||||
}
|
||||
|
||||
/************************************
|
||||
调用此方法则画范围分析
|
||||
***********************************/
|
||||
function getRangeAnalysis(map,markers){
|
||||
//假如只有一个监测点
|
||||
var marlength = markers.length;
|
||||
if(marlength > 0){
|
||||
//假如只有一个监测点
|
||||
if(marlength == 1){
|
||||
var marker = markers[0]; //获取marker
|
||||
var c = marker.getPosition();//获取圆心
|
||||
var circle = new BMap.Circle(c, 500);//测试圆
|
||||
//清除地图信息
|
||||
map.clearOverlays();
|
||||
//将圆添加到地图
|
||||
map.addOverlay(circle);
|
||||
//将点打到地图上
|
||||
map.addOverlay(marker);
|
||||
|
||||
map.centerAndZoom(c, 12);//设置地图等级
|
||||
setTimeout(function(){
|
||||
map.panTo(c);//地图移动到当前位置
|
||||
}, 2000);
|
||||
|
||||
}else{
|
||||
//获取最长距离
|
||||
var marker_start;//最长距离起始监测点
|
||||
var marker_end;//最长距离终点监测点
|
||||
var maxlenght = 0;//最长距离
|
||||
for(var i = 0; i < marlength;i++){
|
||||
marker1 = markers[i];
|
||||
for(var j = i + 1; j < marlength; j++){
|
||||
marker2 = markers[j];
|
||||
//根据几何算法算出两点的距离
|
||||
var length = BMapLib.GeoUtils.getDistance(marker1.getPosition(), marker2.getPosition());
|
||||
//假如距离大于之前长度则重新
|
||||
if(length > maxlenght){
|
||||
maxlenght = length;
|
||||
marker_start = marker1;
|
||||
marker_end = marker2;
|
||||
}
|
||||
}
|
||||
}
|
||||
//计算中心点经纬度
|
||||
var lng = ((marker_start.getPosition().lng + marker_end.getPosition().lng)/2).toFixed(5);
|
||||
var lat = ((marker_start.getPosition().lat + marker_end.getPosition().lat)/2).toFixed(5);
|
||||
var c = new BMap.Point(lng, lat); //圆心
|
||||
var circle = new BMap.Circle(c, maxlenght/2 + 500);//测试圆
|
||||
|
||||
//将点与圆形添加到地图上
|
||||
map.clearOverlays();
|
||||
map.addOverlay(circle);
|
||||
|
||||
for(var i = 0; i < marlength;i++){
|
||||
map.addOverlay(markers[i]);
|
||||
}
|
||||
|
||||
map.centerAndZoom(c, 12);//设置地图等级
|
||||
setTimeout(function(){
|
||||
map.panTo(c);//地图移动到当前位置
|
||||
}, 2000);
|
||||
}
|
||||
}
|
||||
}
|
||||
57
pqs9000/src/main/webapp/jspJS/utils/tableSort.js
Normal file
57
pqs9000/src/main/webapp/jspJS/utils/tableSort.js
Normal file
@@ -0,0 +1,57 @@
|
||||
/**
|
||||
* 电压等级排序自定义比较start
|
||||
*/
|
||||
jQuery.fn.dataTableExt.oSort['number-fate-asc'] = function(s1,s2) {
|
||||
s1 = s1.replace('kV','');
|
||||
s2 = s2.replace('kV','');
|
||||
return Number(s1)-Number(s2);
|
||||
};
|
||||
|
||||
jQuery.fn.dataTableExt.oSort['number-fate-desc'] = function(s1,s2) {
|
||||
s1 = s1.replace('kV','');
|
||||
s2 = s2.replace('kV','');
|
||||
return Number(s2)-Number(s1);
|
||||
};
|
||||
/**
|
||||
* 电压等级排序自定义比较end
|
||||
*/
|
||||
|
||||
|
||||
/**
|
||||
* 百分比数值自定义比较(包含 暂无数据 / 两种特殊情况)start
|
||||
*/
|
||||
jQuery.fn.dataTableExt.oSort['special-fate-asc'] = function(s1,s2) {
|
||||
s1=s1+'';
|
||||
s2=s2+'';
|
||||
if(s1.indexOf('暂无数据')>-1 ){
|
||||
s1 = -1;
|
||||
}else if(s1.indexOf('/')>-1 ){
|
||||
s1 = -2;
|
||||
}
|
||||
if(s2.indexOf('暂无数据')>-1 ){
|
||||
s2 = -1;
|
||||
}else if(s2.indexOf('/')>-1){
|
||||
s2 = -2;
|
||||
}
|
||||
return Number(s1)-Number(s2);
|
||||
};
|
||||
|
||||
jQuery.fn.dataTableExt.oSort['special-fate-desc'] = function(s1,s2) {
|
||||
s1=s1+'';
|
||||
s2=s2+'';
|
||||
if(s1.indexOf('暂无数据')>-1 ){
|
||||
s1 = -1;
|
||||
}else if(s1.indexOf('/')>-1 ){
|
||||
s1 = -2;
|
||||
}
|
||||
if(s2.indexOf('暂无数据')>-1 ){
|
||||
s2 = -1;
|
||||
}else if(s2.indexOf('/')>-1){
|
||||
s2 = -2;
|
||||
}
|
||||
|
||||
return Number(s2)-Number(s1);
|
||||
};
|
||||
/**
|
||||
* 百分比数值自定义比较(包含 暂无数据 / 两种特殊情况)end
|
||||
*/
|
||||
549
pqs9000/src/main/webapp/jspJS/utils/timeControl.js
Normal file
549
pqs9000/src/main/webapp/jspJS/utils/timeControl.js
Normal file
@@ -0,0 +1,549 @@
|
||||
// 用户切换时间间隔,时间会发生变化
|
||||
$("#interval").change(function () {
|
||||
var interval = $(this).val();
|
||||
var endTime = $("#endTime").val();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
judgeInterval(interval)
|
||||
});
|
||||
|
||||
//隐藏前进后退按钮
|
||||
function judgeInterval(interval) {
|
||||
if (interval === "自定义") {
|
||||
$("#present").css("display", "none");
|
||||
$("#before").css("display", "none");
|
||||
$("#next").css("display", "none");
|
||||
$("#startTime").removeProp("disabled");
|
||||
$("#endTime").removeProp("disabled");
|
||||
} else {
|
||||
$("#present").css("display", "inline-block");
|
||||
$("#before").css("display", "inline-block");
|
||||
$("#next").css("display", "inline-block");
|
||||
$("#startTime").prop("disabled", "true");
|
||||
$("#endTime").prop("disabled", "true");
|
||||
}
|
||||
}
|
||||
|
||||
$('.form_datetime').datetimepicker({
|
||||
minView: "month", //选择日期后,不会再跳转去选择时分秒
|
||||
language: 'zh-CN',
|
||||
format: 'yyyy-mm-dd',
|
||||
todayBtn: false,//今日按钮
|
||||
autoclose: 1,
|
||||
});
|
||||
|
||||
|
||||
//向前
|
||||
$("#before").click(function () {
|
||||
var interval = $("#interval").val();
|
||||
var startTime = $("#startTime").val();
|
||||
var endTime = $("#endTime").val();
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
var date = parseInt(startTime.substring(8, 10));
|
||||
|
||||
if (interval == "月份") {
|
||||
// 换年份
|
||||
if (month == 1) {
|
||||
year = year - 1;
|
||||
startTime = year + "-12-01";
|
||||
endTime = year + "-12-31";
|
||||
} else if (month <= 10) {
|
||||
month = month - 1;
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
month = month - 1;
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
} else if (interval == "周") {
|
||||
//根据开始时间推
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() - 7);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
end.setDate(start.getDate() + 6);
|
||||
endTime = formatTime(end);
|
||||
} else if (interval == "季度") {
|
||||
// 换年份
|
||||
if (month == 1) {
|
||||
year = year - 1;
|
||||
startTime = year + "-10-01";
|
||||
endTime = year + "-12-31";
|
||||
} else {
|
||||
// 还是本年
|
||||
month = month - 3;
|
||||
startTime = year + "-0" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
}
|
||||
} else if (interval == "自定义") {
|
||||
|
||||
} else if (interval == "年份") {
|
||||
year = year - 1;
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-12-31";
|
||||
} else if (interval == "半年") {
|
||||
if (month <= 6) {
|
||||
year = year - 1;
|
||||
startTime = year + "-07-01";
|
||||
endTime = year + "-12-31";
|
||||
}else{
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-06-30";
|
||||
}
|
||||
}else if(interval == "天"){
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() -1);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
endTime = formatTime(end);
|
||||
}
|
||||
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
});
|
||||
// 当前
|
||||
$("#present").click(function () {
|
||||
var interval = $("#interval").val();
|
||||
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
});
|
||||
|
||||
// 向后
|
||||
function back() {
|
||||
var interval = $("#interval").val();
|
||||
var startTime = $("#startTime").val();
|
||||
// 获取年份
|
||||
var year = parseInt(startTime.substring(0, 4));
|
||||
// 获取月份
|
||||
var month = parseInt(startTime.substring(5, 7));
|
||||
var date = parseInt(startTime.substring(8, 10));
|
||||
var endTime = $("#endTime").val();
|
||||
var now = new Date();
|
||||
// 获取当前年份
|
||||
var presentY = now.getFullYear();
|
||||
// 获取当前月份
|
||||
var presentM = now.getMonth() + 1;
|
||||
// 获取当前日期
|
||||
var presentD = now.getDate();
|
||||
if (interval == "月份") {
|
||||
if (month == 12) {
|
||||
year = year + 1;
|
||||
// 年份进位后,大于当前的年份,是不科学的
|
||||
if (presentY < year) {
|
||||
startTime = presentY + "-12-01";
|
||||
if (presentD < 10) {
|
||||
endTime = presentY + "-12" + "-0" + presentD;
|
||||
} else {
|
||||
endTime = presentY + "-12" + "-" + presentD;
|
||||
}
|
||||
// 年份进位后,等于当前的年份
|
||||
} else if (presentY == year) {
|
||||
startTime = year + "-01-01";
|
||||
if (presentM > 1) {
|
||||
endTime = year + "-01-31";
|
||||
} else {
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-01" + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-01" + "-" + presentD;
|
||||
}
|
||||
}
|
||||
// 年份进位后,依旧小于当前的年份
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-01-31";
|
||||
}
|
||||
} else {
|
||||
month = month + 1;
|
||||
// 年份等于当前年份
|
||||
if (presentY == year) {
|
||||
// 月份超过当前月份,是不科学的
|
||||
if (month >= presentM) {
|
||||
if (presentM < 10) {
|
||||
startTime = year + "-0" + presentM + "-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-" + presentM + "-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month < 10) {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
// 年份小于当前的年份
|
||||
} else {
|
||||
if (month < 10) {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-" + month + "-01";
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (interval == "季度") {
|
||||
// 前进需要年份进位
|
||||
if (month == 10) {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份是不科学的
|
||||
if (year > presentY) {
|
||||
startTime = presentY + "-10-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (year == presentY) {
|
||||
startTime = year + "-01-01";
|
||||
// 当前月份大约3月份
|
||||
if (presentM > 3) {
|
||||
endTime = year + "-03-31";
|
||||
} else {
|
||||
// 当前月份也在第一季度里
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-03-31";
|
||||
}
|
||||
} else {
|
||||
month = month + 3;
|
||||
// 季度进位后,超过当前月份是不科学的
|
||||
if (year == presentY) {
|
||||
if (month >= presentM) {
|
||||
// 当季度进位后大于当前月,以当前月的时间显示季度
|
||||
if (presentM > 0 && presentM < 4) {// 第一季度
|
||||
startTime = year + "-01-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (presentM > 3 && presentM < 7) {// 第二季度
|
||||
startTime = year + "-04-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else if (presentM > 6 && presentM < 10) {// 第三季度
|
||||
startTime = year + "-07-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {// 第四季度
|
||||
startTime = year + "-10-01";
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month == 10) {
|
||||
startTime = year + "-" + month + "-01";
|
||||
} else {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
}
|
||||
month = month + 2;
|
||||
if (month >= presentM) {
|
||||
endTime = getEndTime();
|
||||
;
|
||||
} else {
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
if (month == 10) {
|
||||
startTime = year + "-" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-" + month + "-" + day;
|
||||
} else {
|
||||
startTime = year + "-0" + month + "-01";
|
||||
month = month + 2;
|
||||
var day = getDays(year, month);
|
||||
endTime = year + "-0" + month + "-" + day;
|
||||
}
|
||||
}
|
||||
}
|
||||
} else if (interval == "自定义") {
|
||||
|
||||
} else if (interval == "周") {
|
||||
//根据开始时间推
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() + 7);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
end.setDate(start.getDate() + 6);
|
||||
endTime = formatTime(end);
|
||||
|
||||
if (parseInt((end - new Date()) / 1000 / 60) > 24) { //相差小时大于24小时,即超过当天,置为当天日期
|
||||
endTime = formatTime(new Date());
|
||||
}
|
||||
} else if (interval == "年份") {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份,是不科学的
|
||||
if (year >= presentY) {
|
||||
startTime = presentY + "-01-01";
|
||||
if (presentM < 10) {
|
||||
if (presentD < 10) {
|
||||
endTime = presentY + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = presentY + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
endTime = presentY + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-12-31";
|
||||
}
|
||||
} else if (interval == "半年") {
|
||||
// 前进需要年份进位
|
||||
if (month > 6) {
|
||||
year = year + 1;
|
||||
// 年份进位后大于当前年份是不科学的
|
||||
if (year >= presentY) {
|
||||
startTime = presentY + "-01-01";
|
||||
if(presentM > 6){
|
||||
endTime = year + "-06-30";
|
||||
}else{
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-01-01";
|
||||
endTime = year + "-06-30";
|
||||
}
|
||||
} else {
|
||||
if (year == presentY) {
|
||||
startTime = presentY + "-07-01";
|
||||
// 进位后大于当前月,以当前月的时间显示
|
||||
if (presentM < 10) {
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-0" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-0" + presentM + "-" + presentD;
|
||||
}
|
||||
}else{
|
||||
if (presentD < 10) {
|
||||
endTime = year + "-" + presentM + "-0" + presentD;
|
||||
} else {
|
||||
endTime = year + "-" + presentM + "-" + presentD;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
startTime = year + "-07-01";
|
||||
endTime = year + "-12-31";
|
||||
}
|
||||
}
|
||||
}else if(interval == "天"){
|
||||
var start = new Date(year, month - 1, date);
|
||||
start.setDate(start.getDate() + 1);
|
||||
startTime = formatTime(start);
|
||||
var end = new Date(start);
|
||||
endTime = formatTime(end);
|
||||
}
|
||||
// 判断向后键的状态
|
||||
var temp = getEndTime();
|
||||
judgeNext(temp, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
}
|
||||
|
||||
$("#next").click(function () {
|
||||
back();
|
||||
});
|
||||
|
||||
// 判断next按钮的状态
|
||||
function judgeNext(temp, endTime) {
|
||||
if (temp == endTime) {
|
||||
$("#next").attr("class", "njcn btn");
|
||||
$("#next").unbind();
|
||||
} else {
|
||||
restoreNext();
|
||||
}
|
||||
}
|
||||
|
||||
// 恢复向后键的所有时间(点击事件、button变化事件)
|
||||
function restoreNext() {
|
||||
var $events = $._data($("#next")[0], "events");
|
||||
if ($events && $events["click"]) {
|
||||
|
||||
} else {
|
||||
$("#next").attr("class", "njcn btn btn-primary");
|
||||
$("#next").bind("click", function () {
|
||||
back();
|
||||
})
|
||||
}
|
||||
if ($events && $events["mouseover"]) {
|
||||
|
||||
} else {
|
||||
$("#next").bind("mouseover", function () {
|
||||
$(this).attr("class", "njcn btn");
|
||||
})
|
||||
}
|
||||
if ($events && $events["mouseout"]) {
|
||||
|
||||
} else {
|
||||
$("#next").bind("mouseout", function () {
|
||||
$(this).attr("class", "njcn btn btn-primary");
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 获取月份的天数
|
||||
function getDays(year, month) {
|
||||
var max = new Date(year, month, 0).getDate();
|
||||
return max;
|
||||
}
|
||||
|
||||
// 时间格式化
|
||||
function formatTime(time) {
|
||||
return time.getFullYear() + '-' + ((time.getMonth() + 1) < 10 ? '0' : '') + (time.getMonth() + 1) + '-' + (time.getDate() < 10 ? '0' : '') + time.getDate();
|
||||
}
|
||||
|
||||
$(function () {
|
||||
var interval = $("#interval").val();
|
||||
var endTime = getEndTime();
|
||||
var startTime = getStartTime(interval, endTime);
|
||||
$("#startTime").val(startTime);
|
||||
$("#endTime").val(endTime);
|
||||
$("#next").attr("class", "njcn btn");
|
||||
$("#next").unbind();
|
||||
// 除了自定义其他时间间隔用户可以选择日期
|
||||
if (interval === "自定义") {
|
||||
$("#present").css("display", "none");
|
||||
$("#before").css("display", "none");
|
||||
$("#next").css("display", "none");
|
||||
$("#startTime").removeProp("disabled");
|
||||
$("#endTime").removeProp("disabled");
|
||||
} else {
|
||||
$("#present").css("display", "inline-block");
|
||||
$("#before").css("display", "inline-block");
|
||||
$("#next").css("display", "inline-block");
|
||||
$("#startTime").prop("disabled", "true");
|
||||
$("#endTime").prop("disabled", "true");
|
||||
}
|
||||
});
|
||||
|
||||
// 获取当前日期,精确到日
|
||||
function getEndTime() {
|
||||
var now = new Date();
|
||||
var sep = "-";
|
||||
var year = now.getFullYear();
|
||||
var month = now.getMonth() + 1;
|
||||
if (month < 10) {
|
||||
month = "0" + month;
|
||||
}
|
||||
var date = now.getDate();
|
||||
if (date < 10) {
|
||||
date = "0" + date;
|
||||
}
|
||||
// 拼接当前的日期
|
||||
var endTime = year + sep + month + sep + date;
|
||||
return endTime;
|
||||
}
|
||||
|
||||
// 获取起始日期
|
||||
function getStartTime(interval, endTime) {
|
||||
var now = new Date();
|
||||
var sep = "-";
|
||||
var arr = endTime.split("-");
|
||||
var year = arr[0];
|
||||
var month = arr[1];
|
||||
var date = arr[2];
|
||||
// 按月份间隔
|
||||
if (interval == "月份") {
|
||||
date = "01";
|
||||
// 按季度间隔
|
||||
} else if (interval == "季度") {
|
||||
if (month > 0 & month < 4) {// 第一季度
|
||||
month = "01";
|
||||
date = "01";
|
||||
} else if (month > 3 && month < 7) {// 第二季度
|
||||
month = "04";
|
||||
date = "01";
|
||||
} else if (month > 6 && month < 10) {// 第三季度
|
||||
month = "07";
|
||||
date = "01";
|
||||
} else {// 第四季度
|
||||
month = 10;
|
||||
date = "01";
|
||||
}
|
||||
} else if (interval == "年份") {
|
||||
month = "01";
|
||||
date = "01";
|
||||
} else if (interval == "半年") {
|
||||
if (month < 7){
|
||||
month = "01";
|
||||
date = "01";
|
||||
}else{
|
||||
month = "07";
|
||||
date = "01";
|
||||
}
|
||||
} else if (interval == '周') {
|
||||
var start = new Date(year, month - 1, date);
|
||||
var dayOfWeek = (start.getDay() == 0) ? 7 : start.getDay(); // 如果为周日,则置为7天
|
||||
start.setDate(start.getDate() - dayOfWeek + 1);// 计算开始时间
|
||||
|
||||
if (formatTime(new Date()) != endTime) { // 如果结束时间不是当前时间
|
||||
var end = new Date(start);
|
||||
end.setDate(end.getDate() + 6);
|
||||
$("#endTime").val(formatTime(end));
|
||||
}
|
||||
|
||||
return formatTime(start);
|
||||
}else if(interval == '天'){
|
||||
var start = new Date(year, month - 1, date);
|
||||
return formatTime(start);
|
||||
}
|
||||
|
||||
var startTime = year + sep + month + sep + date;
|
||||
return startTime;
|
||||
}
|
||||
Reference in New Issue
Block a user