// 定义eleDataCommon命名空间
|
;(function($, window, document, gl, undefined) {
|
// 设置命名空间
|
gl.namespace('eleDataCommon');
|
|
// 切换内容
|
function changeContent(id, callback, data) {
|
$('.pageContentItem').addClass('hide').removeClass('show');
|
$('#'+id).removeClass('hide');
|
$(window).resize();
|
// 添加回调函数
|
if(isFunction(callback)) {
|
if(isArray(data)) {
|
callback.apply({}, data);
|
}else {
|
callback();
|
}
|
}
|
}
|
|
//将函数绑定到GLOBAL.eleDataCommon下
|
gl.eleDataCommon.changeContent = changeContent;
|
|
})(jQuery, window, document, GLOBAL);
|
// 查询机房生成左侧导航eleDataLsie
|
;(function($, window, document, gl, undefined) {
|
// 设置命名空间eleDataLsie
|
gl.namespace('eleDataLsie');
|
|
//查询所有机房
|
function seachAllStation(options){
|
$('.whyc-side-bar').loading();
|
$.ajax({
|
type: "post",
|
url: "BattInfAction!serchAllStation",
|
async:true,
|
dataType:'text',
|
data:null,
|
success: function(data){
|
data = eval('('+data+')');
|
var model = eval('('+data.result+')');
|
//console.info(model);
|
if(model.code == 1){
|
cFirMenu($('.whyc-side-bar'), model.data);
|
spreadFirMenu(options);
|
}else{
|
|
}
|
$('.whyc-side-bar').loading('hide');
|
},
|
error:function(){
|
$('.whyc-side-bar').loading('hide');
|
}
|
});
|
}
|
// 将内容绑定到命名空间eleDataLsie
|
gl.eleDataLsie.seachAllStation = seachAllStation;
|
|
// 根据数据生成一级导航
|
function cFirMenu(container, data) {
|
container.text("");
|
var _ul = $('<ul class="fir"></ul>');
|
for(var i=0; i<data.length; i++) {
|
var _li = $('<li></li>');
|
var _a = $('<a><i class="fa fa-angle-down"></i><span>'+data[i].StationName+'</span></a>');
|
_a.data().home = data[i];
|
_li.append(_a);
|
_ul.append(_li);
|
}
|
container.append(_ul);
|
}
|
|
//根据city_name, battgroupId以及stationId展开左侧导航
|
function spreadFirMenu(options) {
|
var defaults = {
|
cname: "",
|
sid: "",
|
bid: ""
|
};
|
var opts = $.extend(true, {}, defaults);
|
if(options != undefined) {
|
opts = $.extend(true, {}, opts, options);
|
}
|
// 获取一级导航
|
var fir = $('.whyc-side-bar>.fir>li>a');
|
var acFir = fir.eq(0);
|
|
// 遍历一级导航
|
for(var i=0; i<fir.length; i++) {
|
//console.info(fir.eq(i).data());
|
if(fir.eq(i).data().home.StationId == opts.sid) {
|
acFir = fir.eq(i);
|
break;
|
}
|
}
|
acFir.parent().addClass('child-show');
|
searchkBattByStationid(acFir.parent(), acFir.data().home, opts);
|
}
|
|
// 将内容绑定到命名空间eleDataLsie
|
gl.eleDataLsie.sFirMenu = spreadFirMenu;
|
|
//根据机房id查询电池组
|
function searchkBattByStationid(container, home, options){
|
addLoadingToMenu(container);
|
$.ajax({
|
type: "post",
|
url: "BattInfAction!serchBattByStation",
|
async:true,
|
dataType:'text',
|
data:"json = "+JSON.stringify({
|
StationId: home.StationId
|
}),
|
success: function(data){
|
data = eval('('+data+')');
|
var model = eval('('+data.result+')');
|
removeLoadingMenu(container); // 移除数据加载等待
|
if(model.code == 1){
|
cSecMenu(container, model.data);
|
if(options) {
|
spreadSecMenu(container, options);
|
}
|
}else{
|
alert("暂无电池组");
|
}
|
},
|
error:function(){
|
removeLoadingMenu(container); // 移除数据加载等待
|
}
|
});
|
}
|
|
// 将内容绑定到命名空间eleDataLsie
|
gl.eleDataLsie.searchkBattByStationid = searchkBattByStationid;
|
|
// 根据数据生成二级导航
|
function cSecMenu(container, data) {
|
if(container.find('.sec').length != 0) {
|
return;
|
}
|
var _ul = $('<ul class="sec"></ul>');
|
for(var i=0;i<data.length; i++) {
|
var _li = $('<li></li>');
|
var _a = $('<a class="" id="'+data[i].BattGroupId+'"><i class="fa fa-plug"></i><span>'+data[i].BattGroupName+'</span></a>');
|
_a.data().group = data[i];
|
_li.append(_a);
|
_ul.append(_li);
|
}
|
|
container.append(_ul);
|
}
|
|
// 默认选中的二级导航
|
function spreadSecMenu(container, options) {
|
var defaults = {
|
cname: "",
|
sid: "",
|
bid: ""
|
};
|
var opts = $.extend(true, {}, defaults);
|
if(options != undefined) {
|
opts = $.extend(true, {}, opts, options);
|
}
|
|
// 获取三级导航
|
var sec = container.find('.sec>li>a');
|
var acSec = sec.eq(0);
|
|
for(var i=0; i<sec.length; i++) {
|
if(sec.eq(i).data().group.BattGroupId == opts.bid) {
|
acSec = sec.eq(i);
|
break;
|
}
|
}
|
|
acSec.click();
|
location.hash="#"+acSec.attr('id');
|
location.hash = "";
|
}
|
|
// 将内容绑定到命名空间eleDataLsie
|
gl.eleDataLsie.sSecMenu = spreadSecMenu;
|
|
//添加等待框
|
function addLoadingToMenu(cont) {
|
var marginLeft = cont.width()/2 - 95; // 获取容器的高度
|
var _div = $('<div class="loading-menu"></div>');
|
var _img = $('<img src="image/right-menu-loading.gif" alt="数据加载中..." />');
|
_div.append(_img);
|
_div.css({
|
'width': '100%',
|
'padding': '10px 0'
|
});
|
_img.css({
|
'margin-left':marginLeft+'px'
|
});
|
cont.append(_div);
|
}
|
// 清除左侧的数据等待
|
function removeLoadingMenu(cont) {
|
cont.find('.loading-menu').remove();
|
}
|
})(jQuery, window, document, GLOBAL);
|
|
//定义测试数据页面的echarts对象
|
;(function($, window, document, gl, undefined) {
|
// 定义命名空间
|
gl.namespace('eleDataGraph');
|
// 生成柱状图
|
function createSpecialGraphBar(echartObj, options) {
|
var defaults = {
|
tname: '',
|
subtxt: '',
|
xdata: [],
|
sdata: [],
|
unit: '',
|
maxtimes: 1.01,
|
mintimes: 0.99,
|
save: 2,
|
lname: [],
|
setMax: true,
|
setMin: true,
|
group: '',
|
isnotshowvalue: false,
|
markLine: '',
|
cPicker: {
|
'min': 'red',
|
'max': 'green',
|
'normal': '#5986BF',
|
'change': '#ff66cc',
|
'warn': '#ffff00'
|
},
|
colorFunc: ''
|
};
|
|
|
echartObj.clear();
|
var opts = $.extend({}, defaults, options || {});
|
|
// 设置最大值和最小值
|
var min = opts.setMin?(getMinFromArr(opts.sdata)*opts.mintimes).toFixed(opts.save): 0;
|
var max = (getMaxFromArr(opts.sdata)*opts.maxtimes).toFixed(opts.save);
|
|
var colorFunc = isFunction(opts.colorFunc)?opts.colorFunc:setcolor;
|
|
|
var option={
|
//animation:false,
|
tooltip:{
|
show:true,
|
trigger: 'axis',
|
axisPointer : { // 坐标轴指示器,坐标轴触发有效
|
type : 'line', // 默认为直线,可选为:'line' | 'shadow'
|
color:"white"
|
},
|
formatter: function(params) {
|
var res = params[0].name+'<br/>';
|
|
res+= params[0].seriesName;
|
res+=' : '+params[0].data+opts.unit+'</br>';
|
if(!isUndefined(echartObj.getOption().series[0].markLine)) {
|
var markline_data = echartObj.getOption().series[0].markLine.data;
|
//console.info(params);
|
for(var i = 0; i < markline_data.length; i++) {
|
|
res += markline_data[i][0].name;
|
res += ' : '+markline_data[i][0].value+opts.unit+'<br/>';
|
}
|
}
|
return res;
|
}
|
},
|
title : {
|
text: opts.tname,
|
x: "center", //标题水平方向位置
|
textStyle: {
|
fontSize:13
|
}
|
},
|
xAxis:{
|
data:opts.xdata
|
},
|
grid: {
|
top:'12%',
|
left: '6%',
|
right: '5%',
|
bottom: '8%'
|
},
|
animation: false,
|
yAxis:{
|
min:min,
|
max:max,
|
name: "y"+opts.unit
|
},
|
series:[{
|
type:'bar',
|
name:opts.lname,
|
data:opts.sdata,
|
//显示柱状的数值
|
itemStyle:{
|
emphasis:{
|
color:'#54d3e6',
|
label: {
|
show: true,
|
position: 'top',
|
textStyle:{
|
fontWeight: 'bolder',
|
color:"#000"
|
}
|
}
|
},
|
normal:{
|
label:{
|
show: opts.isnotshowvalue,
|
position: 'top',
|
textStyle:{
|
fontWeight: 'bolder',
|
color:"#000"
|
}
|
|
},
|
|
color: colorFunc
|
}
|
}
|
}]
|
};
|
|
// 对option数据进行再处理设置标线
|
if(isFunction(opts.markLine)) {
|
opts.markLine(option);
|
}
|
|
echartObj.setOption(option);
|
|
// 设置颜色
|
function setcolor(value) {
|
var option = echartObj.getOption();
|
var max=Math.max.apply( Math, option.series[0].data);
|
var min=Math.min.apply( Math, option.series[0].data);
|
|
if(value.value==max)
|
{
|
return opts.cPicker.max;
|
}
|
else if(value.value==min)
|
{
|
return opts.cPicker.min;
|
}else
|
{
|
return opts.cPicker.normal; //设置为普通的颜色
|
}
|
}
|
}
|
|
// 将内容绑定到gl.eleDataGraph下
|
gl.eleDataGraph.createBar = createSpecialGraphBar;
|
|
// 生成页面中特殊的折线图
|
function createLine(echartObj, options) {
|
var defaults = {
|
tname: '',
|
subtxt: '',
|
xdata: [],
|
sdata: [],
|
unit: '',
|
maxtimes: 1.01,
|
mintimes: 0.99,
|
save: 2,
|
lname: [],
|
setMax: true,
|
setMin: true,
|
getMax: '',
|
getMin: '',
|
group: ''
|
};
|
echartObj.clear();
|
var opts = $.extend({}, defaults, options || {});
|
echartObj.group = opts.group;
|
|
// 设置最大值
|
var max = Number(getMaxFromArr(opts.sdata));
|
if(opts.setMax) {
|
var getMax = (isFunction(opts.getMax))?opts.getMax:getLineMax;
|
max = getMax(opts.sdata, opts.maxtimes, opts.save);
|
}
|
|
var min = Number(getMinFromArr(opts.sdata));
|
if(opts.setMin) {
|
var getMin = (isFunction(opts.getMin))?opts.getMin:getLineMin;
|
min = getMin(opts.sdata, opts.maxtimes, opts.save);
|
}else {
|
min = min>0?0:min;
|
}
|
|
//console.info(max);
|
//console.info(min);
|
|
var option={
|
tooltip:{
|
trigger:'axis',
|
formatter:function(params){
|
var data = "";
|
var str = '';
|
str+=params[0].name+'</br>';
|
for(var i=0;i<params.length;i++){
|
var marker = '<span style="display:inline-block;margin-right:5px;border-radius:10px;width:9px;height:9px;background-color:'+params[i].color+';"></span>';
|
str+=marker+params[i].seriesName+': '+Number(params[i].data).toFixed(opts.save)+opts.unit+'</br>';
|
data = params[i].data == undefined?marker+params[i].seriesName+":-":str;
|
}
|
return data;
|
}
|
},
|
animation: false,
|
title : {
|
text: opts.tname,
|
x: "center", //标题水平方向位置
|
textStyle: {
|
fontSize:13
|
},
|
subtext: opts.subtxt,
|
subtextStyle:{
|
fontSize:13,
|
align:'right'
|
}
|
},
|
toolbox:{
|
show : true,
|
feature : {}
|
},
|
calculable : true,
|
xAxis:{
|
data:opts.xdata
|
},
|
grid: {
|
top:'12%',
|
left: '6%',
|
right: '5%',
|
bottom: '8%'
|
},
|
yAxis:[{
|
name:"y"+opts.unit,
|
type:'value',
|
min: min,
|
max: max,
|
axisLabel:{
|
formatter:function(value){
|
//解决原点处带符号问题
|
if(value==0)
|
{
|
return value;
|
}else{
|
return value ;
|
}
|
}
|
}
|
}],
|
series:function(){
|
var serie=[];
|
for( var i=0;i<opts.sdata.length;i++){
|
var item={
|
type:'line',
|
symbol:'none',
|
smooth:true,
|
name:opts.lname[i],
|
data:opts.sdata[i],
|
itemStyle:{
|
normal:{
|
lineStyle:{
|
width:2
|
}
|
}
|
}
|
};
|
serie.push(item);
|
}
|
return serie;
|
}()
|
};
|
|
echartObj.setOption(option);
|
}
|
|
// 将内容绑定到gl.eleDataGraph下
|
gl.eleDataGraph.createLine = createLine;
|
|
// 获取折线图最大值
|
function getLineMax(data, times, save) {
|
var data_max = Number(getMaxFromArr(data)); //转化为数字
|
var plus_data_max = data_max>=0?data_max:-data_max; // 最大转化为正数
|
var rs = Math.ceil(data_max) + (times-1)*plus_data_max;
|
|
return Number(rs.toFixed(save));
|
}
|
|
// 获取折线图最小值
|
function getLineMin(data, times, save) {
|
var data_min = Number(getMinFromArr(data));
|
var plus_data_min = data_min>=0?data_min:-data_min;
|
var rs = Math.floor(data_min)+(1-times)*plus_data_min;
|
return Number(rs.toFixed(save));
|
}
|
})(jQuery, window, document, GLOBAL);
|