Files
system-jibei/pqs9000/src/main/webapp/jspJS/area/steady.js
2024-04-01 09:20:31 +08:00

1166 lines
38 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

var picHeight, steadyData, tabs, singleArea;
var singleAreaM = 0;
var $area = $("#area");
var $startTime = $("#startTime");
var $endTime = $("#endTime");
$("#interval").val("月份");
// 新增tab页
function addTab(url, label) {
tabs.add({url: url, label: label});
}
//获取区域下拉列表
$(function () {
tabs = $('#tabs').cleverTabs();
picHeight = ($(window).height() - 88) * 0.5;
$.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);
}
})
})
//点击查询按钮
$("#query").click(function () {
var area = $area.eq(0).attr("index");
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
$("#qualifiedTab li").removeClass("active");
$("#qualifiedTab li:first").addClass("active");
refresh(area, startTime, endTime);
});
//获取全部数据并画图
function refresh(area, startTime, endTime) {
$("li").removeClass("active");
$("ul li:first-child").addClass("active")
var i;
$.ajax({
url: '/pqs9000/area/allData',
data: {
startTime: startTime,
endTime: endTime,
area: area
},
type: 'post',
dataType: 'json',
beforeSend: function () {
i = ityzl_SHOW_LOAD_LAYER();
},
success: function (data) {
changeClass();
if (data.code === 500 | data.body === null) {
layer.msg(data.message, {icon: 2, time: 2000})
steadyData = null;
} else {
steadyData = data.body;
}
startQuery();
//***********关闭loading
ityzl_CLOSE_LOAD_LAYER(i);
}
})
}
//切换指标,重新绘制图
$("#qualifiedTab a").on('click', function () {
var html = $(this).html();
//执行查询操作并画图
var urlPart = $(this).prop("id");
if (urlPart === "allData") {
changeClass();
if (steadyData === null | steadyData === "" | steadyData === undefined | steadyData.area.length > 1 | steadyData.area.length === 0) {
changeAllClass(0);
initTable(steadyData)
drawAllArea(steadyData)
} else {
changeAllClass(1);
initTableSingle(steadyData)
}
} else {
changeClass(1);
drawAreaPic(steadyData, urlPart);
drawVoltagePic(steadyData, urlPart);
drawLoadTypePic(steadyData, urlPart);
}
})
//根据值返回需要的数据
function getValue(value) {
if (value === 3.14159) {
return "(暂无数据)";
} else if (value === 3.1415) {
return "/";
} else {
return value;
}
}
//指定地级市表格数据显示
function initTableSingle(area) {
var height = picHeight * 2 - 60;
var tempHeight = height - 33 * 10;
if (tempHeight > 0) {
$("#singleTable").css("margin-top", tempHeight * 0.5);
singleAreaM = tempHeight * 0.5;
height = 34 * 10;
}
singleArea = height;
area = area.area;
var data = [];
var temp = {};
temp.name = "频率偏差";
temp.value = getValue(area[0].frequency);
data.push(temp);
var temp = {};
temp.name = "闪变";
temp.value = getValue(area[0].flicker);
data.push(temp);
var temp = {};
temp.name = "电压不平衡";
temp.value = getValue(area[0].uBalance);
data.push(temp);
var temp = {};
temp.name = "谐波电压";
temp.value = getValue(area[0].harmVoltage);
data.push(temp);
var temp = {};
temp.name = "电压偏差";
temp.value = getValue(area[0].voltageDeviation);
data.push(temp);
var temp = {};
temp.name = "谐波电流";
temp.value = getValue(area[0].harmElec);
data.push(temp);
var temp = {};
temp.name = "负序电流";
temp.value = getValue(area[0].iNeg);
data.push(temp);
var temp = {};
temp.name = "间谐波电压含有率";
temp.value = getValue(area[0].inUharm);
data.push(temp);
var temp = {};
temp.name = "操作";
var innerContent = getValue(area[0].frequency);
var button;
if (innerContent === "(暂无数据)" | innerContent === "/") {
button = "<button type='button' class='btn themeBGDisableColor' href='javascript:void(0);' disabled='disabled' >越限详情</button>";
} else {
button = "<button type='button' class='btn themeBGColor' onclick='viewDetailData(\"" + area[0].areaIndex + "\",\"" + area[0].name + "\")' >越限详情</button>";
}
temp.value = button;
data.push(temp);
$("#singeleAreaTable").DataTable({
data: data,
autoWidth: false,
columnDefs: [{
orderable: false,
targets: [0,1]
}],
order:[],
paging: false,
lengthChange: false,
searching: false,
destroy: true,
scrollY: height,
info: false,
language: {
url: '/pqs9000/json/chine.json',
},
columns: [
{width: "50%", data: 'name'},
{width: "50%", data: 'value', type: 'special-fate'}
]
})
drawSingleArea(area);
}
//指定地级市图形数据显示
function drawSingleArea(area) {
var $singleArea = $("#singleArea");
$singleArea.css("height", singleArea + singleAreaM);
$singleArea.css("margin-top", singleAreaM);
var areaOption = echarts.init($("#singleArea")[0]);
var areas = [];
var frequency = [], uBalance = [], voltageDeviation = [], flicker = [], harmVol = [], harmEle = [], iNeg = [], inUharm = [];
if (null != area) {
for (var i = 0; i < 1; 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: '地区',
}],
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);
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/steadytable") == 1) {
window.top.addTab('/pqs9000/area/steadytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + city + '&interval=' + interval, '稳态合格率列表')
}
});
}
//画指定指标的区域图
function drawAreaPic(steadyData, urlPart) {
var area;
if (steadyData === null) {
area = null;
} else {
area = steadyData.area;
}
$("#areaDepts").css("height", picHeight);
var areaOption = echarts.init($("#areaDepts")[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',
}],
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',
}],
yAxis: [{
type: 'value',
name: '%',
min: '0',
max: '100'
}],
series: [{
name: '合格率',
type: 'bar',
barMaxWidth: barMax,
data: inte
}]
};
comOption.setOption(option);
}
//画全部地区的数据图
function drawAllArea(steadyData) {
var area;
if (null == steadyData) {
area = null;
} else {
area = steadyData.area;
}
var $allArea = $("#allArea");
$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);
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/steadytable") == 1) {
window.top.addTab('/pqs9000/area/steadytable?startTime=' + startTime + '&endTime=' + endTime + '&area=' + city + '&interval=' + interval, '稳态指标列表')
}
});
}
//初始化表格
function initTable(data) {
var area;
if (null == data) {
area = null;
} else {
area = data.area;
}
var height = picHeight - 60;
$("#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: 'evenElectric', 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) {
var startTime = $startTime.eq(0).val();
var endTime = $endTime.eq(0).val();
var title = getTitleInfo(startTime, endTime, "稳态越限详情", name);
title = "稳态越限详情" + title;
layer.open({
id: 'areaSteady',
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
})
}
//根据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;
}
//特殊处理,表头紧缩问题--start
var it = null;
function startQuery() {
//实时刷新时间单位为毫秒
it = setInterval('refreshQuery()', 100);
}
/* 刷新查询 */
function refreshQuery() {
var width = $("#table").width();
if (width > 100) {
if (steadyData === null || steadyData === "" || steadyData === undefined || steadyData.area.length > 1 || steadyData.area.length === 0) {
changeAllClass(0);
initTable(steadyData)
drawAllArea(steadyData)
} else {
changeAllClass(1);
initTableSingle(steadyData)
}
window.clearInterval(it)
}
}
//特殊处理,表头紧缩问题--end