242 lines
6.7 KiB
JavaScript
242 lines
6.7 KiB
JavaScript
$(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);
|
||
}
|
||
})
|
||
}
|