1750 lines
53 KiB
JavaScript
1750 lines
53 KiB
JavaScript
|
|
window.series = [];
|
|||
|
|
window.flag = true;
|
|||
|
|
// var xyFontColor = "#999"; //曲线XY轴默认字体颜色
|
|||
|
|
// var boderColor = "#D2D5D9"; //曲线边框默认颜色
|
|||
|
|
// if (userInfo != "") {
|
|||
|
|
//根据外层框架信息切换主题色
|
|||
|
|
var theme = localStorage.getItem('configTheme');
|
|||
|
|
xyFontColor = theme == 'dark' ? '#fff' : '#000';
|
|||
|
|
boderColor = theme == 'dark' ? '#3a548a' : '#dcdfe6';
|
|||
|
|
// }
|
|||
|
|
function getCollect() {
|
|||
|
|
$.ajax({
|
|||
|
|
url: '/report/monitorBusiness/selectTrendCollection',
|
|||
|
|
dataType: 'json',
|
|||
|
|
type: 'get',
|
|||
|
|
success: function(res) {
|
|||
|
|
if (res.operateFlag) {
|
|||
|
|
for (var i = 0, str = ''; i < res.rows.length; i++) {
|
|||
|
|
var d = res.rows[i];
|
|||
|
|
var v = JSON.parse(d.SNAME);
|
|||
|
|
for (
|
|||
|
|
var j = 0, treeCode = '', sname = '';
|
|||
|
|
j < v.length;
|
|||
|
|
j++
|
|||
|
|
) {
|
|||
|
|
var temp = v[j];
|
|||
|
|
treeCode =
|
|||
|
|
treeCode + (!treeCode ? '' : ';') + temp.treeCode;
|
|||
|
|
sname = sname + (!sname ? '' : ';') + temp.sanme;
|
|||
|
|
}
|
|||
|
|
str +=
|
|||
|
|
'<li class="" data-id="' +
|
|||
|
|
d.ID +
|
|||
|
|
'" data-treeCode="' +
|
|||
|
|
treeCode +
|
|||
|
|
'" data-sanme="' +
|
|||
|
|
sname +
|
|||
|
|
'"><span >' +
|
|||
|
|
d.NAME +
|
|||
|
|
'</span><em class="collectdelete">×</em></li>';
|
|||
|
|
}
|
|||
|
|
$('#collectlist').html(str);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
getCollect();
|
|||
|
|
var propertyNode, allNodes;
|
|||
|
|
$.ajax({
|
|||
|
|
url: '/report/emsBusiness/findStationLocationMS',
|
|||
|
|
type: 'get',
|
|||
|
|
data: {
|
|||
|
|
type: 2
|
|||
|
|
},
|
|||
|
|
dataType: 'json',
|
|||
|
|
success: function(res) {
|
|||
|
|
if (res.operateFlag) {
|
|||
|
|
var obj = dataOp(res.mapData.stationLocationMS, []);
|
|||
|
|
initTree(obj.all);
|
|||
|
|
propertyNode = obj.obj;
|
|||
|
|
allNodes = res.mapData.stationLocationMS.reduce(function(o, v, i) {
|
|||
|
|
o[v.treeCode] = v;
|
|||
|
|
return o;
|
|||
|
|
}, {});
|
|||
|
|
initEcharts('chart');
|
|||
|
|
// getDevice(obj.ids.join(';'), obj.all, function (param, treeData) {
|
|||
|
|
// // initTree(obj.all);
|
|||
|
|
// getProperty(param.join(';'), treeData, function (p, t) {
|
|||
|
|
// // var z=initTree(t);
|
|||
|
|
// });
|
|||
|
|
// });
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
|
|||
|
|
function getDevice(param, treeData, fn) {
|
|||
|
|
$.ajax({
|
|||
|
|
url: '/report/emsBusiness/findDeviceMSByLocationCode',
|
|||
|
|
type: 'get',
|
|||
|
|
data: {
|
|||
|
|
locations: param
|
|||
|
|
},
|
|||
|
|
dataType: 'json',
|
|||
|
|
success: function(res) {
|
|||
|
|
if (res.operateFlag) {
|
|||
|
|
var obj = dataOp(res.mapData.deviceMS);
|
|||
|
|
Array.prototype.push.apply(treeData, obj.all);
|
|||
|
|
fn(obj.ids, treeData);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function getProperty(param, treeData, fn) {
|
|||
|
|
$.ajax({
|
|||
|
|
url: '/report/emsBusiness/findDevicePropertyMS',
|
|||
|
|
type: 'post',
|
|||
|
|
data: {
|
|||
|
|
devices: param
|
|||
|
|
},
|
|||
|
|
dataType: 'json',
|
|||
|
|
success: function(res) {
|
|||
|
|
if (res.operateFlag) {
|
|||
|
|
var obj = dataOp(res.mapData.devicePropertyMS);
|
|||
|
|
Array.prototype.push.apply(treeData, obj.all);
|
|||
|
|
fn(obj.ids, treeData);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function dataOp(arr) {
|
|||
|
|
var result = [],
|
|||
|
|
ids = [],
|
|||
|
|
obj = {};
|
|||
|
|
// var tree = $.fn.zTree.getZTreeObj('device_list');
|
|||
|
|
for (var i = 0; i < arr.length; i++) {
|
|||
|
|
var d = arr[i];
|
|||
|
|
ids.push(d.type == 1 ? d.id : d.code);
|
|||
|
|
if (d.type == 1) {
|
|||
|
|
d.treePCode = 'root';
|
|||
|
|
}
|
|||
|
|
var _flag = isNaN(d.type) || d.type > 3;
|
|||
|
|
var _data = {
|
|||
|
|
treeCode: d.treeCode,
|
|||
|
|
treePCode: d.treePCode,
|
|||
|
|
code: d.sname || d.code,
|
|||
|
|
sname: d.sname || d.code,
|
|||
|
|
unitCode: d.unitCode,
|
|||
|
|
unitName: d.unitName,
|
|||
|
|
oid: d.id,
|
|||
|
|
name: d.name,
|
|||
|
|
type: !d.type ? 3 : d.type,
|
|||
|
|
nocheck: !_flag,
|
|||
|
|
isParent: !_flag,
|
|||
|
|
isHidden: false
|
|||
|
|
};
|
|||
|
|
if (!_flag) {
|
|||
|
|
result.push(_data);
|
|||
|
|
}
|
|||
|
|
if (obj[d.treePCode] === undefined) {
|
|||
|
|
obj[d.treePCode] = {
|
|||
|
|
node: {},
|
|||
|
|
child: []
|
|||
|
|
};
|
|||
|
|
// obj[d.treePCode].node = tree.getNodeByParam('treeCode', d.treePCode);
|
|||
|
|
}
|
|||
|
|
// tree.addNodes(obj[d.treePCode].node,-1,_data,true);
|
|||
|
|
obj[d.treePCode].child.push(_data);
|
|||
|
|
}
|
|||
|
|
// for (var k in obj) {
|
|||
|
|
// tree.addNodes(obj[k].node, -1, obj[k].child, true);
|
|||
|
|
// }
|
|||
|
|
return {
|
|||
|
|
ids: ids,
|
|||
|
|
all: result,
|
|||
|
|
obj: obj
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
var Timer;
|
|||
|
|
|
|||
|
|
function gethis() {
|
|||
|
|
if (Timer) {
|
|||
|
|
clearTimeout(Timer);
|
|||
|
|
}
|
|||
|
|
Timer = setTimeout(function() {
|
|||
|
|
getData('treeCode');
|
|||
|
|
}, 200);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function getrtdata(node) {
|
|||
|
|
var tree = $.fn.zTree.getZTreeObj('device_list');
|
|||
|
|
var nodes = tree.getCheckedNodes();
|
|||
|
|
var checkednodes = {};
|
|||
|
|
var code = nodes.reduce(function(o, v, i) {
|
|||
|
|
// if (v.code !== node.code||(v.code == node.code&&node.check)) {
|
|||
|
|
if (o) {
|
|||
|
|
o = o + ';';
|
|||
|
|
}
|
|||
|
|
checkednodes[v.sname] = v;
|
|||
|
|
checkednodes[v.code] = v;
|
|||
|
|
o = o + v.code;
|
|||
|
|
// }
|
|||
|
|
|
|||
|
|
return o;
|
|||
|
|
}, '');
|
|||
|
|
$.fn.checkednodes = checkednodes;
|
|||
|
|
if (wsb) {
|
|||
|
|
wsb.send({
|
|||
|
|
code: code
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// var param = {};
|
|||
|
|
// param[node.type] = node.treeCode;
|
|||
|
|
// getHistoryData(param);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function initTree(data) {
|
|||
|
|
var setting = {
|
|||
|
|
data: {
|
|||
|
|
simpleData: {
|
|||
|
|
enable: true,
|
|||
|
|
idKey: 'treeCode',
|
|||
|
|
pIdKey: 'treePCode',
|
|||
|
|
rootPId: ''
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
view: {
|
|||
|
|
showLine: false,
|
|||
|
|
expandSpeed: 'fast',
|
|||
|
|
showIcon: false
|
|||
|
|
},
|
|||
|
|
check: {
|
|||
|
|
enable: true,
|
|||
|
|
chkStyle: 'checkbox'
|
|||
|
|
},
|
|||
|
|
|
|||
|
|
callback: {
|
|||
|
|
onCheck: function(event, id, node) {
|
|||
|
|
$('#linedb').removeClass('cur'); //取消对比效果
|
|||
|
|
var el = $('#collectlist').find('.cur'); //查询收藏中选中的项
|
|||
|
|
if (el[0]) {
|
|||
|
|
//如果有就清空
|
|||
|
|
el.removeClass('cur');
|
|||
|
|
Commdata = {};
|
|||
|
|
}
|
|||
|
|
var len = Object.keys(Commdata);
|
|||
|
|
if (node.checked && len.length >= 10) {
|
|||
|
|
var tree = $.fn.zTree.getZTreeObj('device_list');
|
|||
|
|
layer.msg(langJson.itemTooMuch);
|
|||
|
|
tree.checkNode(node, false, true);
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
//处理数据
|
|||
|
|
if (!node.checked) {
|
|||
|
|
//如果是取消就设置选中
|
|||
|
|
var ec = echarts.getInstanceByDom(
|
|||
|
|
document.getElementById('chart')
|
|||
|
|
);
|
|||
|
|
var name = node.name + '[' + node.treeCode + ']';
|
|||
|
|
setTimeout(function() {
|
|||
|
|
ec.dispatchAction({
|
|||
|
|
type: 'legendSelect',
|
|||
|
|
name: name
|
|||
|
|
});
|
|||
|
|
}, 16);
|
|||
|
|
delete Commdata[node.code];
|
|||
|
|
} else {
|
|||
|
|
Commdata[node.code] = [];
|
|||
|
|
}
|
|||
|
|
codeData(node);
|
|||
|
|
tabelDom(node);
|
|||
|
|
},
|
|||
|
|
onClick: function(event, id, node) {
|
|||
|
|
var tree = $.fn.zTree.getZTreeObj('device_list');
|
|||
|
|
if (node.isParent) {
|
|||
|
|
// 有可能第一次展开时可能children还没渲染,用expandNode无法展开,需要手动点+号展开。
|
|||
|
|
if (node.children === undefined) {
|
|||
|
|
$(event.target)
|
|||
|
|
.closest('li')
|
|||
|
|
.children('span:first-child')
|
|||
|
|
.trigger('click');
|
|||
|
|
} else {
|
|||
|
|
tree.expandNode(node, true);
|
|||
|
|
}
|
|||
|
|
} else {
|
|||
|
|
tree.checkNode(node, undefined, false, true);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
beforeExpand: function(id, node) {
|
|||
|
|
// getProperty(node.treeCode+';', [], function (p, t,obj) {
|
|||
|
|
// console.log(obj)
|
|||
|
|
// });
|
|||
|
|
if (
|
|||
|
|
node.isParent &&
|
|||
|
|
node.children &&
|
|||
|
|
node.children.length > 0
|
|||
|
|
) {
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
var tree = $.fn.zTree.getZTreeObj('device_list');
|
|||
|
|
var pnode = propertyNode[node.treeCode];
|
|||
|
|
if (pnode === undefined) {
|
|||
|
|
pnode = {};
|
|||
|
|
}
|
|||
|
|
tree.addNodes(node, 0, pnode.child, true);
|
|||
|
|
return true;
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
var zTreeObj = $.fn.zTree.init($('#device_list'), setting, data);
|
|||
|
|
//删除在顶层显示,而不是顶层的数据
|
|||
|
|
// zTreeObj.getNodes().map(function(v, i, a) {
|
|||
|
|
// if (v.type != 1) {
|
|||
|
|
// (function(v) {
|
|||
|
|
// setTimeout(function() {
|
|||
|
|
// zTreeObj.removeNode(v);
|
|||
|
|
// }, 20);
|
|||
|
|
// })(v);
|
|||
|
|
// }
|
|||
|
|
// });
|
|||
|
|
// //删除没有子级的父级节点
|
|||
|
|
// zTreeObj.getNodesByParam("isParent", true).map(function(v, i, a) {
|
|||
|
|
// if (zTreeObj.getNodesByParam("treePCode", v.treeCode).length == 0) {
|
|||
|
|
// (function(v) {
|
|||
|
|
// setTimeout(function() {
|
|||
|
|
// zTreeObj.removeNode(v);
|
|||
|
|
// }, 20);
|
|||
|
|
// })(v);
|
|||
|
|
// }
|
|||
|
|
// });
|
|||
|
|
return zTreeObj;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function codeData(node) {
|
|||
|
|
if ($('.small.cur').attr('data-date') !== 'time') {
|
|||
|
|
gethis();
|
|||
|
|
} else {
|
|||
|
|
//处理实时数据
|
|||
|
|
|
|||
|
|
if (!node.checked) {
|
|||
|
|
var ec = echarts.getInstanceByDom(document.getElementById('chart'));
|
|||
|
|
var option = ec.getOption();
|
|||
|
|
//去除echart线
|
|||
|
|
var name = node.name + '[' + node.treeCode + ']';
|
|||
|
|
var temp = [];
|
|||
|
|
option.series.map(function(v, i, a) {
|
|||
|
|
if (v.name != name) {
|
|||
|
|
temp.push(v);
|
|||
|
|
} else {
|
|||
|
|
a.splice(i, 1);
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
ec.setOption(option, true);
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
getrtdata(node);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function getXAxis(timestrap) {
|
|||
|
|
var date = !timestrap ? dayjs() : dayjs(timestrap);
|
|||
|
|
var xAxis = {
|
|||
|
|
color: xyFontColor,
|
|||
|
|
type: 'time',
|
|||
|
|
splitNumber: 10,
|
|||
|
|
splitLine: {
|
|||
|
|
show: false
|
|||
|
|
},
|
|||
|
|
axisLine: {
|
|||
|
|
lineStyle: {
|
|||
|
|
color: boderColor
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLabel: {
|
|||
|
|
color: xyFontColor
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
var cur = $('.small.cur').attr('data-date');
|
|||
|
|
if (cur == 'time') {
|
|||
|
|
xAxis.max = date.endOf('minutes').valueOf();
|
|||
|
|
xAxis.min = date
|
|||
|
|
.endOf('minutes')
|
|||
|
|
.subtract(10, 'minutes')
|
|||
|
|
.valueOf();
|
|||
|
|
xAxis.axisLabel.formatter = function(time, index) {
|
|||
|
|
var t = dayjs(time).format('HH:mm:ss');
|
|||
|
|
if (time === '') {
|
|||
|
|
return '';
|
|||
|
|
}
|
|||
|
|
return t;
|
|||
|
|
};
|
|||
|
|
} else {
|
|||
|
|
var param = getSelectedDate();
|
|||
|
|
xAxis.min = param.start.valueOf();
|
|||
|
|
xAxis.max = param.end.valueOf();
|
|||
|
|
}
|
|||
|
|
return xAxis;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function getDefaultOption() {
|
|||
|
|
var xAxis = getXAxis();
|
|||
|
|
|
|||
|
|
return {
|
|||
|
|
title: {
|
|||
|
|
textAlign: 'left',
|
|||
|
|
textStyle: {
|
|||
|
|
color: xyFontColor
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
tooltip: {
|
|||
|
|
trigger: 'axis',
|
|||
|
|
appendToBody: true,
|
|||
|
|
confine: true
|
|||
|
|
},
|
|||
|
|
grid: {
|
|||
|
|
left: 60,
|
|||
|
|
right: 30,
|
|||
|
|
top: 10,
|
|||
|
|
bottom: 34,
|
|||
|
|
show: true,
|
|||
|
|
containLabel: false, //是否包含坐标轴的刻度标签
|
|||
|
|
/*backgroundColor:'#ccc',*/
|
|||
|
|
borderColor: boderColor,
|
|||
|
|
borderWidth: 1
|
|||
|
|
},
|
|||
|
|
legend: {
|
|||
|
|
show: false
|
|||
|
|
},
|
|||
|
|
dataZoom: {
|
|||
|
|
type: 'inside',
|
|||
|
|
filterModel: 'none',
|
|||
|
|
start: 0,
|
|||
|
|
end: 100,
|
|||
|
|
minSpan: 10
|
|||
|
|
},
|
|||
|
|
xAxis: xAxis,
|
|||
|
|
yAxis: [
|
|||
|
|
{
|
|||
|
|
type: 'value',
|
|||
|
|
// min: function(value) {
|
|||
|
|
// return value.min > 0 ? 0 : value.min;
|
|||
|
|
// },
|
|||
|
|
boundaryGap: ['20%', '20%'],
|
|||
|
|
scale: true,
|
|||
|
|
splitLine: {
|
|||
|
|
lineStyle: {
|
|||
|
|
color: boderColor
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLine: {
|
|||
|
|
lineStyle: {
|
|||
|
|
color: boderColor
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLabel: {
|
|||
|
|
color: xyFontColor,
|
|||
|
|
formatter: '{value}'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
]
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function initEcharts(id, flag) {
|
|||
|
|
var dom = document.getElementById(id);
|
|||
|
|
if (!dom) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
if (window.ec) {
|
|||
|
|
echarts.dispose(dom);
|
|||
|
|
}
|
|||
|
|
if (flag) {
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
var mec = echarts.init(dom, 'halloween' /*,ops*/);
|
|||
|
|
// var op = ;
|
|||
|
|
|
|||
|
|
//点击弹出事件弹框
|
|||
|
|
// mec.on('click', function (param) {
|
|||
|
|
// var bt = dayjs(param.data[0]),
|
|||
|
|
// fm = 'YYYY-MM-DD HH:mm:ss';
|
|||
|
|
// var obj = {
|
|||
|
|
// startTime: bt.format(fm),
|
|||
|
|
// snames: param.seriesId,
|
|||
|
|
// endTime: ''
|
|||
|
|
// }
|
|||
|
|
// switch ($('.small.cur').attr('data-date')) {
|
|||
|
|
// case 'day':
|
|||
|
|
// obj.endTime = bt.add(5, 'minute').format(fm);
|
|||
|
|
// break;
|
|||
|
|
// case 'week':
|
|||
|
|
// obj.endTime = bt.add(30, 'minute').format(fm);
|
|||
|
|
// break;
|
|||
|
|
// case 'month':
|
|||
|
|
// obj.endTime = bt.add(2, 'hour').format(fm);
|
|||
|
|
// break;
|
|||
|
|
// case 'season':
|
|||
|
|
// obj.endTime = bt.add(6, 'hour').format(fm);
|
|||
|
|
// break;
|
|||
|
|
// case 'year':
|
|||
|
|
// obj.endTime = bt.add(1, 'day').format(fm);
|
|||
|
|
// break;
|
|||
|
|
// }
|
|||
|
|
// getEvent(obj);
|
|||
|
|
// $('#dialog').show();
|
|||
|
|
// });
|
|||
|
|
// var timer;
|
|||
|
|
//缩放事件
|
|||
|
|
// mec.on('datazoom', function (event) {
|
|||
|
|
// if (timer) {
|
|||
|
|
// clearTimeout(timer);
|
|||
|
|
// }
|
|||
|
|
// var start = +new Date(2019, 0, 1, 0, 0, 0, 0);
|
|||
|
|
// timer = setTimeout(function () {
|
|||
|
|
// var end = dayjs(Math.round(start + (event.batch[0].end * 1000 * 3600 * 24 * 365 / 100))).format('YYYY-MM-DD HH:mm:ss');
|
|||
|
|
// var sta = dayjs(Math.round(start + (event.batch[0].start * 1000 * 3600 * 24 * 365 / 100))).format('YYYY-MM-DD HH:mm:ss');
|
|||
|
|
// }, 300)
|
|||
|
|
// })
|
|||
|
|
mec.setOption(getDefaultOption(), true);
|
|||
|
|
window.ec = mec;
|
|||
|
|
window.onresize = function() {
|
|||
|
|
//ecahrts窗口自适应
|
|||
|
|
window.ec.resize();
|
|||
|
|
};
|
|||
|
|
// window.series = mec.getOption().series;
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function hisEchartSetOption(data, param) {
|
|||
|
|
var tree = $.fn.zTree.getZTreeObj('device_list');
|
|||
|
|
if (tree) {
|
|||
|
|
var nodelist = tree.getCheckedNodes(true);
|
|||
|
|
for (var i = 0, obj = {}, nodearr = []; i < nodelist.length; i++) {
|
|||
|
|
var d = nodelist[i];
|
|||
|
|
if (d.isParent) {
|
|||
|
|
continue;
|
|||
|
|
}
|
|||
|
|
obj[d.treeCode] = d;
|
|||
|
|
nodearr.push({
|
|||
|
|
code: d.treeCode,
|
|||
|
|
name: d.name
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
var defaultOption=getDefaultOption();
|
|||
|
|
var series = [],
|
|||
|
|
yAxis = [
|
|||
|
|
{
|
|||
|
|
type: 'value',
|
|||
|
|
show: true,
|
|||
|
|
position: 'left',
|
|||
|
|
scale: true,
|
|||
|
|
offset: 0,
|
|||
|
|
splitLine: {
|
|||
|
|
lineStyle: {
|
|||
|
|
color: boderColor
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLine: {
|
|||
|
|
lineStyle: {
|
|||
|
|
color: boderColor
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLabel: {
|
|||
|
|
color: xyFontColor,
|
|||
|
|
formatter: '{value}'
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
],
|
|||
|
|
xAxis = Object.assign({}, defaultOption.xAxis,{
|
|||
|
|
type: 'time',
|
|||
|
|
splitNumber: 10,
|
|||
|
|
splitLine: {
|
|||
|
|
show: false
|
|||
|
|
},
|
|||
|
|
axisLine: {
|
|||
|
|
lineStyle: {
|
|||
|
|
color: boderColor
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
axisLabel: {
|
|||
|
|
color: xyFontColor
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
for (var i = 0; i < nodearr.length; i++) {
|
|||
|
|
var k = nodearr[i].code;
|
|||
|
|
series.push({
|
|||
|
|
name: nodearr[i].name + '[' + k + ']',
|
|||
|
|
id: k,
|
|||
|
|
yAxisIndex: 0,
|
|||
|
|
type: 'line',
|
|||
|
|
sampling: 'average',
|
|||
|
|
lineStyle: {
|
|||
|
|
normal: {
|
|||
|
|
width: 1
|
|||
|
|
},
|
|||
|
|
width: 1
|
|||
|
|
},
|
|||
|
|
symbol: 'roundRect',
|
|||
|
|
symbolSize: 1,
|
|||
|
|
showAllSymbol: false,
|
|||
|
|
data: data[k] === undefined ? [] : data[k].arr
|
|||
|
|
});
|
|||
|
|
yAxis.push({
|
|||
|
|
type: 'value',
|
|||
|
|
show: false,
|
|||
|
|
position: 'left',
|
|||
|
|
scale: true,
|
|||
|
|
offset: 0,
|
|||
|
|
axisLabel: {
|
|||
|
|
formatter: '{value}'
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
var ec = echarts.getInstanceByDom(document.getElementById('chart'));
|
|||
|
|
var option = ec.getOption();
|
|||
|
|
ec.clear();
|
|||
|
|
var sj = '';
|
|||
|
|
option.xAxis = xAxis;
|
|||
|
|
option.yAxis = yAxis;
|
|||
|
|
option.series = series;
|
|||
|
|
// sj='事件:' + data[p.seriesName].obj[p.value[0]].eventNum;
|
|||
|
|
option.tooltip = {
|
|||
|
|
trigger: 'axis',
|
|||
|
|
formatter: function(param) {
|
|||
|
|
for (var i = 0, str = ''; i < param.length; i++) {
|
|||
|
|
var p = param[i];
|
|||
|
|
str +=
|
|||
|
|
'<tr style="color:' +
|
|||
|
|
p.color +
|
|||
|
|
'"><td rowspan="2">' +
|
|||
|
|
p.marker +
|
|||
|
|
'</td><td colspan="2">' +
|
|||
|
|
obj[p.seriesId].name +
|
|||
|
|
'</td></tr>' +
|
|||
|
|
'<tr style="color:' +
|
|||
|
|
p.color +
|
|||
|
|
'"><td>' +
|
|||
|
|
langJson.value +
|
|||
|
|
':' +
|
|||
|
|
p.value[1] +
|
|||
|
|
'</td><td>' +
|
|||
|
|
sj +
|
|||
|
|
'</td></tr>';
|
|||
|
|
}
|
|||
|
|
str = '<p>' + param[0].value[0] + '</p><table>' + str + '</table>';
|
|||
|
|
return str;
|
|||
|
|
}
|
|||
|
|
};
|
|||
|
|
ec.setOption(option, true);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function setDefaultX(param) {
|
|||
|
|
var ec = echarts.getInstanceByDom(document.getElementById('chart'));
|
|||
|
|
ec.setOption({
|
|||
|
|
xAxis: {
|
|||
|
|
max: param.startTime,
|
|||
|
|
min: param.endTime
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function getData() {
|
|||
|
|
var codes = getNode('treeCode');
|
|||
|
|
if (!codes) {
|
|||
|
|
//清除ec数据
|
|||
|
|
hisEchartSetOption();
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
var param = getSelectedDate();
|
|||
|
|
if(isNaN(param.interval)){
|
|||
|
|
return false
|
|||
|
|
}
|
|||
|
|
if (Object.keys(codes).length == 0) {
|
|||
|
|
param.snames = '';
|
|||
|
|
} else {
|
|||
|
|
param.snames = JSON.stringify(codes);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//设置默认X轴
|
|||
|
|
// setDefaultX(param)
|
|||
|
|
layer.load(1, {
|
|||
|
|
shade: [0.1, '#000']
|
|||
|
|
});
|
|||
|
|
$.ajax({
|
|||
|
|
url: '/report/monitorBusiness/queryTrendDataFromInfuxdb',
|
|||
|
|
type: 'post',
|
|||
|
|
data: {
|
|||
|
|
startTime: param.startTime,
|
|||
|
|
endTime: param.endTime,
|
|||
|
|
interval: param.interval,
|
|||
|
|
snames: param.snames
|
|||
|
|
},
|
|||
|
|
dataType: 'json',
|
|||
|
|
success: function(res) {
|
|||
|
|
curData = res.rows || [];
|
|||
|
|
layer.closeAll();
|
|||
|
|
if (res.operateFlag == false) {
|
|||
|
|
layer.msg(langJson.err);
|
|||
|
|
return false;
|
|||
|
|
}
|
|||
|
|
// var _temp_ = [1, 10, 100];
|
|||
|
|
var tree = $.fn.zTree.getZTreeObj('device_list');
|
|||
|
|
for (var i = 0, obj = {}, _obj = {}; i < res.rows.length; i++) {
|
|||
|
|
var d = res.rows[i];
|
|||
|
|
var node = tree.getNodeByParam('treeCode', d.sname);
|
|||
|
|
d.dateTime = d.dateTime.replace(/[\-]/g, '/');
|
|||
|
|
if (obj[d.sname] === undefined) {
|
|||
|
|
obj[d.sname] = {
|
|||
|
|
arr: [],
|
|||
|
|
obj: {}
|
|||
|
|
// _random_: _temp_[Math.round(Math.random() * 10) % 3]
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
if (_obj[node.sname] === undefined) {
|
|||
|
|
_obj[node.sname] = {
|
|||
|
|
arr: [],
|
|||
|
|
obj: {}
|
|||
|
|
// _random_: _temp_[Math.round(Math.random() * 10) % 3]
|
|||
|
|
};
|
|||
|
|
}
|
|||
|
|
if (isNaN(d.data) || d.data === '' || d.data === null) {
|
|||
|
|
//实际取值
|
|||
|
|
d.data = '';
|
|||
|
|
//模拟数据
|
|||
|
|
// var numb = obj[d.sname]._random_;
|
|||
|
|
// d.data = Math.round(Math.random() * (numb * 100 - numb * 10) + (numb * 10));
|
|||
|
|
} else {
|
|||
|
|
d.data = Number(d.data).toFixed(2);
|
|||
|
|
}
|
|||
|
|
obj[d.sname].arr.push([d.dateTime, d.data]);
|
|||
|
|
obj[d.sname].obj[d.dateTime] = d;
|
|||
|
|
_obj[node.sname].arr.push([d.dateTime, d.data]);
|
|||
|
|
_obj[node.sname].obj[d.dateTime] = d;
|
|||
|
|
}
|
|||
|
|
//设置曲线
|
|||
|
|
try {
|
|||
|
|
hisEchartSetOption(obj, param);
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error(error);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
//设置表格的值
|
|||
|
|
try {
|
|||
|
|
initTable(_obj);
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error(error);
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
// 重置
|
|||
|
|
try {
|
|||
|
|
$('#tbody')
|
|||
|
|
.find('tbody')
|
|||
|
|
.html(makeTbody(['dateTime', 'sname', 'data']));
|
|||
|
|
} catch (error) {
|
|||
|
|
console.error(error);
|
|||
|
|
}
|
|||
|
|
},
|
|||
|
|
complete: function() {
|
|||
|
|
layer.closeAll();
|
|||
|
|
}
|
|||
|
|
});
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
function tabelDom(node) {
|
|||
|
|
var color = [
|
|||
|
|
'#ff7200',
|
|||
|
|
'#fff600',
|
|||
|
|
'#46d500',
|
|||
|
|
'#00ffba',
|
|||
|
|
'#00adf6',
|
|||
|
|
'#00f6ff',
|
|||
|
|
'#cc00ff',
|
|||
|
|
'#ffa200',
|
|||
|
|
'#35dc8b',
|
|||
|
|
'#006cff',
|
|||
|
|
'#c23531',
|
|||
|
|
'#2f4554',
|
|||
|
|
'#61a0a8',
|
|||
|
|
'#d48265',
|
|||
|
|
'#91c7ae',
|
|||
|
|
'#749f83',
|
|||
|
|
'#ca8822',
|
|||
|
|
'#bda29a',
|
|||
|
|
'#c4ccd3'
|
|||
|
|
];
|
|||
|
|
// if ($('.table').find('table')[0] && node && node.checked) {
|
|||
|
|
// var c = $('.table').find('tr').length - 1;
|
|||
|
|
// $('.table').find('table').append('<tr><td><label><input type="checkbox" name="t_row" value="' + node.treeCode + '" checked>' + node.name + '</label></td><td><i class="show-color" style="background-color:' + color[c % color.length] + '"></i></td>' +
|
|||
|
|
// '<td></td><td></td><td></td><td>' + node.unitName + '</td></tr>');
|
|||
|
|
// 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 = [
|
|||
|
|
'<tr><th>' +
|
|||
|
|
langJson.name +
|
|||
|
|
'</th><th>' +
|
|||
|
|
langJson.color +
|
|||
|
|
'</th><th>' +
|
|||
|
|
langJson.max +
|
|||
|
|
'</th><th>' +
|
|||
|
|
langJson.min +
|
|||
|
|
'</th><th>' +
|
|||
|
|
langJson.average +
|
|||
|
|
'</th><th>' +
|
|||
|
|
langJson.unit +
|
|||
|
|
'</th></tr>'
|
|||
|
|
];
|
|||
|
|
for (var l = 0; l < nodearr.length; l++) {
|
|||
|
|
var k = nodearr[l];
|
|||
|
|
str =
|
|||
|
|
'<tr><td><label><input type="checkbox" name="t_row" value="' +
|
|||
|
|
k +
|
|||
|
|
'" checked>' +
|
|||
|
|
o[k].name +
|
|||
|
|
'</label></td><td><i class="show-color" style="background-color:' +
|
|||
|
|
color[l % color.length] +
|
|||
|
|
'"></i></td>' +
|
|||
|
|
'<td></td><td></td><td></td><td>' +
|
|||
|
|
o[k].unitName +
|
|||
|
|
'</td></tr>';
|
|||
|
|
tdlist.push(str);
|
|||
|
|
}
|
|||
|
|
$('.table').html('<table>' + tdlist.join('') + '</table>');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
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 = '<th></th>', barr = []; i < head.length; i++) {
|
|||
|
|
var _h = head[i];
|
|||
|
|
hstr += '<th>' + _h.name + '</th>';
|
|||
|
|
for (var r = 0; r < rows.length; r++) {
|
|||
|
|
var _d = rows[r];
|
|||
|
|
if (i === 0) {
|
|||
|
|
barr[r] = '<td></td>';
|
|||
|
|
}
|
|||
|
|
barr[r] += '<td>' + _d[_h.key] + '</td>';
|
|||
|
|
}
|
|||
|
|
}
|
|||
|
|
var table = $('#table');
|
|||
|
|
table.find('thead').html('<tr>' + hstr + '</tr>');
|
|||
|
|
table.find('tbody').html('<tr>' + barr.join('</tr><tr>') + '</tr>');
|
|||
|
|
}
|
|||
|
|
|
|||
|
|
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 +=
|
|||
|
|
'<tr>' +
|
|||
|
|
keys.reduce(function(r, c) {
|
|||
|
|
if (c == 'sname') {
|
|||
|
|
r += '<td>' + names[v[c]] + '</td>';
|
|||
|
|
} else {
|
|||
|
|
r += '<td>' + v[c] + '</td>';
|
|||
|
|
}
|
|||
|
|
return r;
|
|||
|
|
}, '') +
|
|||
|
|
'</tr>';
|
|||
|
|
}
|
|||
|
|
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='<option value="'+intv.interval+'" data-diff="'+intv.diffDays+'" '+(selected?"selected":"")+'>'+intv.label+'</option>'+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;
|
|||
|
|
}
|