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

242 lines
6.7 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.

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