');
// return false;
// }
var tree = $.fn.zTree.getZTreeObj('device_list');
if (tree) {
var nodelist = tree.getCheckedNodes(true);
for (var i = 0, o = {}, nodearr = []; i < nodelist.length; i++) {
var d = nodelist[i];
if (d.isParent) {
continue;
}
o[d.code] = d;
nodearr.push(d.code);
}
}
var tdlist = [
'
' +
langJson.name +
'
' +
langJson.color +
'
' +
langJson.max +
'
' +
langJson.min +
'
' +
langJson.average +
'
' +
langJson.unit +
'
'
];
for (var l = 0; l < nodearr.length; l++) {
var k = nodearr[l];
str =
'
' +
'
' +
o[k].unitName +
'
';
tdlist.push(str);
}
$('.table').html('
' + tdlist.join('') + '
');
}
function initTable(obj) {
var tdlist = {};
for (var l in obj) {
var k = obj[l];
for (
var i = 0, max = '', min = '', sum = 0;
i < obj[l].arr.length;
i++
) {
var _d = obj[l].arr[i];
if (_d instanceof Array) {
_d = _d[1];
} else {
_d = _d.value[1];
}
if (isNaN(_d) || _d === '' || _d === null) {
continue;
} else {
_d = Number(_d);
}
if (max === '' || _d > max) {
max = _d;
}
if (min === '' || _d < min) {
min = _d;
}
sum = sum + _d;
}
max = isNaN(max) || max === null ? '' : max;
min = isNaN(min) || min === null ? '' : min;
tdlist[l] = {
k: l,
max: max,
min: min,
avg: Number((sum / obj[l].arr.length).toFixed(2))
};
}
var key;
$('.table td').each(function(i, e) {
// var pindex=$(e).parent().index();
var sindex = $(e).index();
if (sindex === 0) {
key = $(e)
.find('input')
.val();
} else if (sindex === 2) {
$(e).html(tdlist[key] ? tdlist[key].max : '');
} else if (sindex === 3) {
$(e).html(tdlist[key] ? tdlist[key].min : '');
} else if (sindex === 4) {
$(e).html(tdlist[key] ? tdlist[key].avg : '');
}
});
}
function getSelectedDate() {
var seasonList = [
{
name: '第一季度',
start: '01-01',
end: '03-31'
},
{
name: '第二季度',
start: '04-01',
end: '06-30'
},
{
name: '第三季度',
start: '07-01',
end: '09-30'
},
{
name: '第四季度',
start: '10-01',
end: '12-31'
}
];
var param = {
curtime: $('#datetime').val(),
interval: 5 // / 60
};
if (!param.curtime) {
param.curtime = dayjs().format('YYYY-MM-DD');
}
//interval=5/60,30/60,2,6,24
var cls = $('.small.cur').attr('data-date');
var _str = ' 00:00:00';
if (cls == 'week') {
param.interval = 30 // 60;
param.startTime = dayjs(param.curtime + _str)
.startOf('week')
.format('YYYY-MM-DD');
param.endTime = dayjs(param.curtime + _str)
.endOf('week')
.format('YYYY-MM-DD');
param.start = dayjs(param.curtime + _str).startOf('week');
param.end = param.start.add(1, 'week');
} else if (cls == 'month') {
param.interval = 2*60;
param.startTime = dayjs(param.curtime + _str)
.startOf('month')
.format('YYYY-MM-DD');
param.endTime = dayjs(param.curtime + _str)
.endOf('month')
.format('YYYY-MM-DD');
param.start = dayjs(param.curtime + _str).startOf('month');
param.end = param.start.add(1, 'month');
} else if (cls == 'season') {
param.interval = 6*60;
var seaYear = dayjs(param.curtime + _str).year();
for (var i = 0; i < seasonList.length; i++) {
var v = seasonList[i];
if (
!dayjs(param.curtime + _str).isAfter(
dayjs(seaYear + '-' + v.end + _str)
)
) {
param.startTime = dayjs(seaYear + '-' + v.start + _str)
.startOf('month')
.format('YYYY-MM-DD');
param.endTime = dayjs(seaYear + '-' + v.end + _str)
.endOf('month')
.format('YYYY-MM-DD');
param.start = dayjs(seaYear + '-' + v.start + _str).startOf(
'month'
);
param.end = param.start.add(3, 'month');
break;
}
}
} else if (cls == 'year') {
param.interval = 24*60;
param.startTime = dayjs(param.curtime + _str)
.startOf('year')
.format('YYYY-MM-DD');
param.endTime = dayjs(param.curtime + _str)
.endOf('year')
.format('YYYY-MM-DD');
param.start = dayjs(param.curtime + _str).startOf('year');
param.end = param.start.add(1, 'year');
} else if (cls == 'day') {
param.interval = 5 // 60;
param.startTime = dayjs(param.curtime + _str).format('YYYY-MM-DD');
param.endTime = dayjs(param.curtime + _str).format('YYYY-MM-DD');
param.start = dayjs(param.curtime + _str);
param.end = dayjs(param.curtime + _str).add(1, 'day');
} else if (cls == 'defined') {
var start = $('#startDate').val();
var end = $('#endDate').val();
param.interval = $('#definedInterval').val();
param.startTime = dayjs(start + _str).format('YYYY-MM-DD');
param.endTime = dayjs(end + _str).format('YYYY-MM-DD');
param.start = dayjs(start + _str);
param.end = dayjs(end + _str).add(1, 'day');
}
return param;
}
function getNode(key) {
var tree = $.fn.zTree.getZTreeObj('device_list');
var codes = {};
if (tree) {
var nodelist = tree.getCheckedNodes(true);
nodelist.length == 0 && (codes = false);
for (var i = 0; i < nodelist.length; i++) {
var d = nodelist[i];
if (d.isParent) {
continue;
}
if (!codes[d.type]) {
codes[d.type] = [];
}
codes[d.type].push(d[key]);
}
}
return codes;
}
function getEvent(obj) {
// obj.snames='qy1.dlq_a04;qy1.glkg_a04_1;qy1.jgxh_a01';
// obj.startTime='2019-01-01 01:40:00';
// obj.endTime='2019-01-19 01:40:00';
$('#page').initPage({
ajax: {
url: '/report/monitorBusiness/queryEventMsFromInfuxdb',
type: 'post',
data: obj,
dataType: 'json',
success: function(res) {
var head = [
{
name: langJson.time,
key: 'TIME_STAMP'
},
{
name: langJson.priority,
key: 'PRIORITY_NAME'
},
{
name: langJson.location,
key: 'LOCATION_ID_NAME'
},
{
name: langJson.almStatus,
key: 'ALM_STATUS_NAME'
},
{
name: langJson.devType,
key: 'DEV_TYPE_NAME'
},
{
name: langJson.content,
key: 'CONTENT'
}
];
createTable(head, res.rows);
$('#dialog').show();
}
},
resKey: {
pageSize: 'rows',
curPage: 'page',
sumPage: 'records'
},
pageSize: 1000,
curPage: 1
});
}
function createTable(head, rows) {
for (var i = 0, hstr = '
', barr = []; i < head.length; i++) {
var _h = head[i];
hstr += '
' + _h.name + '
';
for (var r = 0; r < rows.length; r++) {
var _d = rows[r];
if (i === 0) {
barr[r] = '
';
}
barr[r] += '
' + _d[_h.key] + '
';
}
}
var table = $('#table');
table.find('thead').html('
' + hstr + '
');
table.find('tbody').html('
' + barr.join('
') + '
');
}
function makeTbody(keys) {
var exception = [];
$('.table')
.find('input[type=checkbox]:not(:checked)')
.each(function(i, e) {
exception.push($(e).val());
});
var tree = $.fn.zTree.getZTreeObj('device_list').getCheckedNodes(true);
var names = tree.reduce(function(o, v, i) {
o[v.sname] = v.name;
return o;
}, {});
return curData.reduce(function(o, v, i) {
if (!(exception.length > 0 && exception.indexOf(v.sname) !== -1)) {
o +=
'
' +
keys.reduce(function(r, c) {
if (c == 'sname') {
r += '
' + names[v[c]] + '
';
} else {
r += '
' + v[c] + '
';
}
return r;
}, '') +
'
';
}
return o;
}, '');
}
function definedQuery(){
$('.small.cur').trigger('click');
}
$(function() {
$('#datetime').val(dayjs().format('YYYY-MM-DD'));
$('#endDate').val(dayjs().format('YYYY-MM-DD'));
$('#startDate').val(
dayjs()
.subtract(1, 'day')
.format('YYYY-MM-DD')
);
function initInterval(){
var options={
5:{
interval:5,
label:'五分钟',
diffDays:1,// 间隔对应的最大相差天数
},
10:{
interval:10,
label:'十分钟',
diffDays:3,
},
30:{
interval:30,
label:'三十分钟',
diffDays:7,
},
60:{
interval:60,
label:'一小时',
diffDays:15,
},
120:{
interval:120,
label:'两小时',
diffDays:31,
},
360:{
interval:360,
label:'六小时',
diffDays:92,
},
480:{
interval:480,
label:'八小时',
diffDays:122,
},
720:{
interval:720,
label:'十二小时',
diffDays:185,
},
1440:{
interval:1440,
label:'一天',
diffDays:366,
},
}
var intervalList=Object.keys(options).sort(function(a,b){return b-a});
var start = $('#startDate').val();
var end = $('#endDate').val();
var diffDays=Math.abs(dayjs(end).diff(dayjs(start),'day'));
// 开始时间大于结束时间
if (dayjs(start).isAfter(dayjs(end))) {
layer.msg('开始时间大于结束时间');
return false;
}
// 开始时间和结束时间相差1年以上
if(diffDays>options[intervalList[0]].diffDays){
layer.msg('开始时间和结束时间相差1年以上');
return false;
}
var optionsStr='';
for (var i = 0; i < intervalList.length; i++) {
var intv = options[intervalList[i]];
if(diffDays<=intv.diffDays){
var optiv=options[intervalList[i+1]]
var selected=optiv&&diffDays>optiv.diffDays;
optionsStr=''+optionsStr
}else{
break;
}
}
$('.defined-interval').html(optionsStr);
}
$('.Wdate').on('click', function() {
var option = {
el: this,
isShowClear: false,
firstDayOfWeek: 1,
dateFmt: 'yyyy-MM-dd',
onpicked: function(date) {
initInterval();
}
};
WdatePicker(option);
});
initInterval();
$('.show-chart').on('click', function() {
$(this).hide(200);
$('#chart_table').hide(200);
$('.show-table').show(200);
$('#chart').show(200);
return false;
});
$('.show-table').on('click', function() {
$(this).hide(200);
$('#chart').hide(200);
$('.show-chart').show(200);
$('#chart_table').show(200);
return false;
});
$('#collectlist').on('click', 'em.collectdelete', function() {
var el = $(this);
var id = el.parent().attr('data-id');
layer.confirm(
langJson.deleteFavorite,
{
title: langJson.delete,
skin: 'colldialog',
btn: [langJson.confirm, langJson.cancel]
},
function() {
$.ajax({
url: '/report/monitorBusiness/deleteTrendCollectionList',
data: {
ids: id
},
type: 'get',
dataType: 'json',
success: function(res) {
if (res.operateFlag) {
layer.closeAll();
layer.msg(langJson.delSuccess);
el.parent().remove();
}
}
});
}
);
return false;
});
function addNodeFromParent(treeCode) {
var tree = $.fn.zTree.getZTreeObj('device_list');
var node = null,
code = [treeCode];
while (node === null) {
var last = code[code.length - 1];
node = tree.getNodeByParam('treeCode', last);
if (node === null) {
code.push(allNodes[last].treePCode);
}
}
for (var i = code.length - 1; i > 0; i--) {
tree.addNodes(node, 0, propertyNode[code[i]].child, true);
node = tree.getNodeByParam('treeCode', code[i]);
}
if (treeCode === node.treeCode) {
return node;
} else {
return tree.getNodeByParam('treeCode', treeCode);
}
}
$('#collectlist').on('dblclick', 'li', function() {
var tree = $.fn.zTree.getZTreeObj('device_list');
tree.checkAllNodes(false);
$('.table table').remove();
// initEcharts("chart");
Commdata = {};
var ec = echarts.getInstanceByDom(document.getElementById('chart'));
var option = ec.getOption();
option.series = [];
ec.setOption(option, true);
var treeCode = $(this)
.attr('data-treeCode')
.split(';');
for (var i = 0; i < treeCode.length; i++) {
var node = tree.getNodeByParam('treeCode', treeCode[i]);
if (node === null) {
node = addNodeFromParent(treeCode[i]);
}
tree.checkNode(node, true, true, true);
var _p = node.getParentNode();
while (_p) {
tree.expandNode(_p, true);
_p = _p.getParentNode();
}
}
$(this)
.parent()
.find('.cur')
.removeClass('cur');
$(this).addClass('cur');
});
$('#collect').on('click', function() {
var checked = [];
var tree = $.fn.zTree.getZTreeObj('device_list');
$('input[name=t_row]:checked').each(function(i, e) {
var v = $(e).val();
var node = tree.getNodeByParam('code', v);
checked.push({
treeCode: node.treeCode,
sname: node.sname
});
});
$('input[name=collectname]').val('');
if (checked.length == 0) {
layer.msg(langJson.noSelect);
} else {
layer.open({
type: 1,
title: langJson.collection,
skin: 'colldialog',
area: ['326px', '230px'],
btn: [langJson.submit, langJson.cancel],
content: $('#collectdialog'),
yes: function() {
var name = $('input[name=collectname]').val();
if (!name) {
layer.msg(langJson.collectName);
return false;
}
if (!name.match(/^[\u4e00-\u9fa5_a-zA-Z0-9]+$/)) {
layer.msg(langJson.hasSpecial);
return false;
}
var flag = true;
$('#collectlist li').each(function(i, e) {
var str = $(e)
.find('span')
.html();
if (str == name) {
flag = false;
return false;
}
});
if (!flag) {
layer.msg(langJson.hasRepeat);
return false;
}
$.ajax({
url: '/report/monitorBusiness/inserTrendCollection',
data: {
name: name,
snames: JSON.stringify(checked)
},
type: 'post',
dataType: 'json',
success: function(res) {
if (res.operateFlag) {
layer.closeAll();
layer.msg(langJson.collectSuc);
getCollect();
}
}
});
}
});
}
});
$('#changecollect').on('click', 'a.btn', function() {
if ($(this).hasClass('collectlist')) {
$('#device_list').hide();
$('#device_list')
.prev()
.hide();
$('#collectlist').show();
} else {
$('#collectlist').hide();
$('#device_list').show();
$('#device_list')
.prev()
.show();
}
$(this)
.parent()
.find('.cur')
.removeClass('cur');
$(this).addClass('cur');
});
$('#treeFilter').on('click', function() {
var tree = $.fn.zTree.getZTreeObj('device_list');
var metaChar = '[\\[\\]\\\\^\\$\\.\\|\\?\\*\\+\\(\\)]';
var rexMeta = new RegExp(metaChar, 'gi');
var nodelist = tree.getNodes();
var txt = $('#filterText').val() || '';
if (txt === '') {
var nodes = tree.getNodesByParam('isHidden', true);
tree.showNodes(nodes);
return false;
} else {
var nodes = tree.getNodesByParam('isHidden', false);
tree.hideNodes(nodes);
}
txt = txt.replace(rexMeta, function(matchStr) {
return '\\' + matchStr;
});
var data = {
nodelist: nodelist,
result: []
};
function fliterNodes(nodes, str) {
var nodelist = nodes.nodelist;
var result = [];
var list = [];
if (nodelist instanceof Array && nodelist.length) {
for (var i = 0; i < nodelist.length; i++) {
var node = nodelist[i];
if (node.name.indexOf(str) !== -1) {
result.push(node);
} else if (node.children && node.children.length) {
list = list.concat(node.children);
}
}
return fliterNodes(
{
nodelist: list,
result: result.concat(nodes.result)
},
str
);
}
return nodes;
}
var showPids = {}; //记录处理过的treeCode,减少消耗
function getPNode(node) {
var result = [];
while (node !== null && node.treeCode) {
if (showPids[node.treeCode] === undefined) {
result.push(node);
showPids[node.treeCode] = 1;
node = node.getParentNode();
} else {
break;
}
}
// if(result.length>0&&showPids[node.treeCode]===undefined){result.push(node)}
return result;
}
var result = fliterNodes(data, txt);
var needShowNodes = [];
for (var i = 0; i < result.result.length; i++) {
var node = result.result[i];
// 获取父节点
var pnode = getPNode(node);
//获取子节点
var child = tree.getNodesByFilter(
function(n) {
return true;
},
false,
node
);
needShowNodes = needShowNodes.concat(pnode, child);
}
tree.showNodes(needShowNodes);
});
$('.table').on('click', 'input[type=checkbox]', function() {
var flag = $(this).is(':checked');
var val = $(this).val();
var text = $(this)
.parent()
.text();
// var name = text + "[" + val + "]";
var name = text;
//判断是不是实时
if ($('button.small.cur').attr('data-date') !== 'time') {
//截掉前面三个.的编码
val = val
.split('.')
.splice(3)
.join('.')
.replace('.value', '');
}
name += '[' + val + ']';
//$("#tbody")
// .find("tbody")
// .html(makeTbody(["dateTime", "sname", "data"]));
var ec = echarts.getInstanceByDom(document.getElementById('chart'));
if (flag) {
ec.dispatchAction({
type: 'legendSelect',
name: name
});
} else {
ec.dispatchAction({
type: 'legendUnSelect',
name: name
});
}
});
$('#btn_option').on('click', 'button', function() {
var keys = Object.keys(Commdata);
if (keys.length == 0) {
layer.msg(langJson.nullItem);
return false;
}
var cls = $(this).hasClass('prev-item');
var val = $('#datetime').val();
var format = $('.small.cur').attr('data-date');
if (format === 'time') {
return false;
}
var m = dayjs(val).month();
if (m <= 2) {
m = 2;
} else if (m <= 5) {
m = 5;
} else if (m <= 8) {
m = 8;
} else if (m <= 11) {
m = 11;
}
if (cls) {
if (format === 'season') {
$('#datetime').val(
dayjs(val)
.month(m)
.subtract(3, 'month')
.format('YYYY-MM-DD')
);
} else {
$('#datetime').val(
dayjs(val)
.subtract(1, format)
.format('YYYY-MM-DD')
);
}
} else {
if (format === 'season') {
$('#datetime').val(
dayjs(val)
.month(m)
.add(3, 'month')
.format('YYYY-MM-DD')
);
} else {
$('#datetime').val(
dayjs(val)
.add(1, format)
.format('YYYY-MM-DD')
);
}
}
setTimeout(function() {
getData();
}, 60);
});
$('.small').on('click', function() {
// echarts.dispose(document.getElementById('chart'));
$('.show-chart').trigger('click');
$('#datetime').val(dayjs().format('YYYY-MM-DD'));
var el = $('.small.cur');
var ele = $(this);
var _name = $(this).attr('data-date');
el.removeClass('cur');
ele.addClass('cur');
initEcharts('chart');
if (_name === 'time') {
$('#btn_option').hide();
$('#linedb').hide();
rtsetEchartOption();
return false;
}
switch (_name) {
case 'day':
$('#btn_option .prev-item').html(langJson.preDay);
$('#btn_option .next-item').html(langJson.nextDay);
break;
case 'week':
$('#btn_option .prev-item').html(langJson.preWeek);
$('#btn_option .next-item').html(langJson.nextWeek);
break;
case 'month':
$('#btn_option .prev-item').html(langJson.preMonth);
$('#btn_option .next-item').html(langJson.nextMonth);
break;
case 'season':
$('#btn_option .prev-item').html(langJson.preSeason);
$('#btn_option .next-item').html(langJson.nextSeason);
break;
case 'year':
$('#btn_option .prev-item').html(langJson.preYear);
$('#btn_option .next-item').html(langJson.nextYear);
break;
}
$('#btn_option').show();
$('#linedb').show();
if (_name === 'defined') {
$('#definedDate').show();
$('#btn_option').hide();
} else {
$('#definedDate').hide();
$('#btn_option').show();
}
getData();
//重置表格选中状态
$('input[name=t_row]').each(function(i, e) {
e.checked = true;
});
});
$('#dialog').on('click', 'p.close em', function() {
$('#dialog').hide();
});
$('#linedb').on('click', function() {
var ec = echarts.getInstanceByDom(document.getElementById('chart'));
var option = ec.getOption();
var series = [];
for (var i = 0; i < option.series.length; i++) {
var d = option.series[i];
if ($(this).hasClass('cur')) {
d.yAxisIndex = 0;
} else {
d.yAxisIndex = i + 1;
}
d.lineStyle.width = 1;
d.lineStyle.normal.width = 1;
series.push(Object.assign({}, d));
}
option.series = series;
if ($(this).hasClass('cur')) {
option.yAxis[0].max = null;
option.yAxis[0].min = null;
} else {
option.yAxis[0].max = 100;
option.yAxis[0].min = 0;
}
$(this).toggleClass('cur');
ec.setOption(option, true);
});
initEcharts('chart');
});
function rtsetEchartOption(time) {
if (!time) {
time = window.restime;
}
if (window.flag && document.visibilityState != 'hidden') {
var ec = echarts.getInstanceByDom(document.getElementById('chart'));
//数据
var obj = JSON.parse(JSON.stringify(Commdata));
window.flag = false;
var tabledata = {};
//echarts
var option = ec.getOption();
var series = [];
//zTree
var tree = $.fn.zTree.getZTreeObj('device_list');
var nodes = tree.getCheckedNodes();
nodes.map(function(v) {
series.push({
name: v.name + '[' + v.code + ']',
id: v.code,
yAxisIndex: 0,
type: 'line',
symbol: 'roundRect',
symbolSize: 1,
showAllSymbol: false,
sampling: 'average',
lineStyle: {
width: 1,
normal: {
width: 1
}
},
data: obj[v.code]
});
tabledata[v.code] = {
arr: obj[v.code]
};
});
// for (var i = 0; i < series.length; i++) {
// var d = series[i];
// d.yAxisIndex = 0;
// if (obj[d.id] !== undefined) {
// d.data = obj[d.id];
// delete obj[d.id];
// }
// tabledata[d.id] = {
// arr: d.data
// };
// }
// for (var k in obj) {
// series.push({
// name: $.fn.checkednodes[k].name + "[" + k + "]",
// id: k,
// yAxisIndex: 0,
// type: "line",
// symbol: "roundRect",
// symbolSize: 1,
// showAllSymbol: false,
// sampling: "average",
// lineStyle: {
// width: 1
// },
// data: obj[k]
// });
// tabledata[k] = {
// arr: obj[k]
// };
// }
option.series = series;
option.tooltip = {
trigger: 'axis',
appendToBody: true,
confine: true
};
// Object.assign({},option.tooltip,{
// formatter: false
// });
option.xAxis = getXAxis(time);
ec.setOption(option, true);
initTable(tabledata);
window.flag = true;
}
}
function setOption(option) {
var ec = echarts.getInstanceByDom(document.getElementById('chart'));
// ec.setOption(
// {
// xAxis: {
// },
// tooltip: {
// formatter: false
// },
// series: series
// },
// false
// );
window.flag = true;
}