1166 lines
38 KiB
JavaScript
1166 lines
38 KiB
JavaScript
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'> | </span><span class='fr font12'>统计时间:<span class='fontBold' >" + startTime + "-" + endTime + "</span></span><span class='fr font12'> 统计区域:<span class='fontBold ' id='target' style='cursor:pointer;margin-right: 10px !important;' >" + name + "</span></span>";
|
||
}
|
||
|
||
|
||
//查看越线详情
|
||
function viewDetailData(areaIndex, name) {
|
||
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
|