初始化项目

This commit is contained in:
2024-04-01 09:20:31 +08:00
commit fefd704e6e
4694 changed files with 1869737 additions and 0 deletions

View 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
}

View 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);
})
}
}
})
}

View 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==="在线率"&params[i].value==3.14159){
tempValue="暂无数据";
}else if(params[i].seriesName==="在线率"&params[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==="在线率"&params[i].value==3.14159){
tempValue="暂无数据";
}else if(params[i].seriesName==="在线率"&params[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);
}
}

View 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);
}
})
}

View 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 + '>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;总数: ' + da.monitorAllCount + ' (个)</label><br>' +
'<label style=color:' + color + '>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;在线: ' + da.onlineMonitorCount + ' (个)</label><br>' +
'<label style=color:' + color + '>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;离线: ' + (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 + '>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;暂态事件个数: ' + 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>&nbsp;&nbsp;&nbsp;所属企业&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subName + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;&nbsp;母线&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.busBarName + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;挂接线路&nbsp;&nbsp;&nbsp;</label>&nbsp;' + hang + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;IP地址&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.ip + '<br/>' +
'<label>&nbsp;&nbsp;PT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.pt1 / 1000 + '/' + lineMap.pt2 / 1000 + '<br/>' +
'<label>&nbsp;&nbsp;CT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.ct1 + '/' + lineMap.ct2 + '<br/>' +
'<label>&nbsp;生产厂家&nbsp;</label>&nbsp;' + lineMap.manufacturer + '<br/>' +
'<label>&nbsp;终端状态&nbsp;</label>&nbsp;<font color="' + fontState + '">' + strState + '</font><br/>' +
'<label>&nbsp;通讯状态&nbsp;</label>&nbsp;<font color="' + fontStatus + '">' + strStatus + '</font><br/>' +
'<label style="float: right;"><button onclick="toMonitorPage()" class="btn btn-primary">监测点详细信息</button></label>&nbsp;<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}

View 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;
}
}

View 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
}
});
});

View 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);
}

View 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

File diff suppressed because it is too large Load Diff

View 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");
}
}

View 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);
}
})
}

View 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');
}

View 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();
}

View 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);
}
})
}

View 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
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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) {
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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) {
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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});
}
}
})
})

View 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});
}
}
})
}

View 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关闭!");
}
}
}
})
}

View 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();
}

View 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

View 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);
}
})
}

View 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

View 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

View 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();
}
});
});

View 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;
}
}
}
});
}

View 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);
}
}

View 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

File diff suppressed because it is too large Load Diff

View 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);
}
});
}

View 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();
}

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View 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);
}
}

View 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();
}
});
})

View 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
});
}

View 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));
}

View 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;
}
})
}

View 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";
}

View 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;
}
}

View 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==="在线率"&params[i].value==3.14159){
tempValue="暂无数据";
}else if(params[i].seriesName==="在线率"&params[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==="在线率"&params[i].value==3.14159){
tempValue="暂无数据";
}else if(params[i].seriesName==="在线率"&params[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);
}
}

View 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'>&nbsp;&nbsp;|&nbsp;&nbsp; </span><span class='fr font12'>统计时间:<span class='fontBold' >" + startTime + "-" + endTime + "</span></span><span class='fr font12'>&nbsp;&nbsp;统计区域:<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;
}

View 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;
}
}

View 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

File diff suppressed because it is too large Load Diff

View 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("报表生成失败");
}
}
);
}

View 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"},
];

View 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

File diff suppressed because it is too large Load Diff

View 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;
}

View 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;
}

View 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
}

View 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);
}
})
}

File diff suppressed because it is too large Load Diff

View 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;
}

View File

@@ -0,0 +1,8 @@
function toHelper(parameter){
window.top.addTab('userhelp', '帮助中心');
window.setTimeout(function () {
window.top.document.getElementById('userhelp').contentWindow.zTreeOnAsyncSuccess(parameter);
},500)
}

View 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;
}

View 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;
}

View 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;
}

View 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);
}

View 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;
}

View 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>&nbsp;供电公司&nbsp;</label>&nbsp;' + lineMap.gdname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;变电站&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;&nbsp;母线&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subvname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;IP地址&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.ip + '<br/>' +
'<label>&nbsp;&nbsp;PT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.pt1/1000 +'/'+ lineMap.pt2/1000 +'<br/>' +
'<label>&nbsp;&nbsp;CT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.ct1 +'/' + lineMap.ct2 + '<br/>' +
'<label>&nbsp;生产厂家&nbsp;</label>&nbsp;' + lineMap.manufacturer + '<br/>' +
'<label>&nbsp;终端状态&nbsp;</label>&nbsp;<font color="'+ fontState +'">' + strState + '</font><br/>' +
'<label>&nbsp;通讯状态&nbsp;</label>&nbsp;<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>&nbsp;供电公司&nbsp;</label>&nbsp;' + lineMap.gdname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;变电站&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;&nbsp;母线&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.subvname + '<br/>' +
'<label>&nbsp;&nbsp;&nbsp;IP地址&nbsp;&nbsp;&nbsp;</label>&nbsp;' + lineMap.ip + '<br/>' +
'<label>&nbsp;&nbsp;PT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.pt1/1000 +'/'+ lineMap.pt2/1000 +'<br/>' +
'<label>&nbsp;&nbsp;CT变比&nbsp;&nbsp;</label>&nbsp;' + lineMap.ct1 +'/'+ lineMap.ct2 + '<br/>' +
'<label>&nbsp;生产厂家&nbsp;</label>&nbsp;' + lineMap.manufacturer + '<br/>' +
'<label>&nbsp;终端状态&nbsp;</label>&nbsp;<font color="'+ fontState +'">' + strState + '</font><br/>' +
'<label>&nbsp;通讯状态&nbsp;</label>&nbsp;<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);
}
}
}

View 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
*/

View 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;
}