;(function($, window, document, gl) {
// 定义TreeView的命名空间
gl.namespace('pages.TreeView');
/**
* @param jquery ele jQuery 对象
* @param Object first 第一层的数据对象
*/
var TreeView = function (ele, options) {
this.ele = ele;
this.container;
this.init(options);
};
var _prop = TreeView.prototype;
// 初始化容器并设置基础的点击事件
_prop.init = function(options) {
var _this = this;
// 清空容器
this.ele.addClass('whyc-sider-menu-container');
this.ele.text('');
var whycTreeView = $('
');
this.ele.append(whycTreeView);
this.container = whycTreeView;
this.setContainer();
//this.resize(options);
// 给容器内容添加绑定事件
this.ele.off('click.treeView.folder').on('click.treeView.folder', '.sider-menu-folder', function() {
$(this).parent().toggleClass('sider-menu-open');
});
this.ele.off('click.treeView.file').on('click.treeView.file', '.sider-menu-file', function() {
if(!$(this).hasClass('active')) {
_this.ele.find('.sider-menu-file').removeClass('active');
$(this).addClass('active');
}
});
};
// 设置resizable
_prop.resize = function(options) {
var _this = this;
var defaults = {
minWidth: 200,
maxWidth: 400
};
var opts = $.extend({}, defaults, options || {});
if(this.ele.resizable) {
this.ele.resizable({
handles: 'e',
maxWidth: opts.maxWidth,
minWidth: opts.minWidth,
alsoResize: this.container,
stop:function() {
_this.container.height('100%');
}
});
}
};
// 设置容器的宽度
_prop.setContainer = function() {
var eleWidth = this.ele.width();
this.container.width(eleWidth+20);
};
// 生成列表
_prop.treeView = function(container, data, flush) {
var defaults = {
file: false
};
// 存在ul且当前不允许刷新
if(container.find('ul').length !=0 && !flush) {
return;
}else if(flush) {
container.text('');
}
// 删除等待框
this.delProgress(container);
// 生成元素
var _ul = $('');
for(var i=0; i');
var _a = $('');
var _i = $('');
var _span = $(''+_data.txt+'');
if(_data.file) {
_a = $('');
_i = $('');
}
_a.addClass(_data.cla);
_a.append(_i);
_a.append(_span);
_li.append(_a);
// 存储生成元素的值
_a.data('attr', _data.attr);
_ul.append(_li);
}
container.append(_ul);
};
// 获取folder的一条数据
_prop.getFolder = function (txt, cla,attr) {
var tmp = {};
tmp.txt = txt;
tmp.cla = cla;
tmp.attr = attr;
return tmp;
};
// 获取file的一条数据
_prop.getFile =function(txt, cla, id, attr) {
var tmp = {};
tmp.txt = txt;
tmp.cla = cla;
tmp.id = id;
tmp.file = true;
tmp.attr = attr;
return tmp;
};
// 添加progressBar
_prop.addProgress = function(container) {
// 存在就不用再添加
if(container.find('.treeView-progressBar-container').length != 0) {
return;
}
var cont = $('');
var progress = $('');
var progressLabel = '加载...
';
progress.append(progressLabel);
cont.append(progress);
container.append(cont);
// 设置样式
progress.progressbar({
value: false,
change: function() {
progressLabel.text( progressbar.progressbar( "value" ) + "%" );
},
complete: function() {
progressLabel.text( "完成!" );
}
});
};
// 移除progressBar
_prop.delProgress = function(container) {
container.find('.treeView-progressBar-container').remove();
};
// 展开指定的
_prop.spreadFolder = function(cla, txt, callback) {
var rsCla = '.sider-menu-folder'+'.'+cla;
var aFolders = this.ele.find(rsCla);
// 没有获取到内容就返回false
if(aFolders.length == 0) {
return false;
}
var tgt = aFolders.eq(0);
aFolders.each(function() {
var _txt = $(this).find('.treeview-txt').text();
if(txt == _txt) {
tgt = $(this);
}
});
tgt.parent().addClass('sider-menu-open');
// 设置回调函数并且设置默认的值
if(callback) {
callback(this, tgt.parent(), tgt.data('attr'));
}
};
_prop.activeFile = function(container, cla, id, callback) {
var rsCla = '.sider-menu-file'+'.'+cla;
var aFiles = container.find(rsCla);
console.log(aFiles.length);
// 没有获取到内容就返回false
if(aFiles.length == 0) {
return false;
}
var tgt = aFiles.eq(0);
// 遍历列表
aFiles.each(function() {
var _id = $(this).attr('id');
// id匹配
if(_id == id) {
tgt = $(this);
}
});
tgt.click();
};
// 添加到gl.pages.TreeView的命名空间下
gl.pages.TreeView = TreeView;
})(jQuery, window, document, GLOBAL);
// 定义页面中的siderbar组件
;(function($, window, document, gl, undefined) {
gl.namespace('pages.siderbar');
// 获取当前选中内容(省-市-机房-电池组)
var province = getQueryString('province'); // 省
var city = getQueryString('city'); // 市
var home = getQueryString('home'); // 机房
//console.log(province);
// 生成一级导航-省
function first(treeView, container) {
//treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchAllStation",
async:true,
dataType:'json',
data:null,
success: function(data){
var rs = JSON.parse(data.result);
if(rs.code == 1) {
var _data= rs.data;
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFolder(__data.StationName1, 'province', __data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
treeView.spreadFolder('province', province, firstSpread);
}else {
}
}
});
}
// 将函数绑定到GLOBAL.pages.siderbar的命名空间下
gl.pages.siderbar.first = first;
// 展开一级导航
function firstSpread(treeView, container, data) {
second(treeView, container, data, true);
}
// 生成二级导航-市
function second(treeView, container, data, spread) {
// 已经存在
if(container.find('ul').length !=0) {
return;
}
treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchStationName2",
async:true,
dataType:'json',
data:"json = "+JSON.stringify(data),
success: function(data){
var rs = JSON.parse(data.result);
treeView.delProgress(container);
if(rs.code == 1) {
var _data= rs.data;
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFolder(__data.StationName2, 'city', __data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
if(spread) {
treeView.spreadFolder('city', city, secondSpread, true);
}
}else {
}
}
});
}
// 将函数绑定到GLOBAL.pages.siderbar的命名空间下
gl.pages.siderbar.second = second;
// 展开二级导航
function secondSpread(treeView, container, data) {
third(treeView, container, data, true);
}
// 生成 三级导航-机房
function third(treeView, container, data, spread) {
// 已经存在
if(container.find('ul').length !=0) {
return;
}
treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchStationName3",
async:true,
dataType:'json',
data:"json = "+JSON.stringify(data),
success: function(data){
var rs = JSON.parse(data.result);
treeView.delProgress(container);
if(rs.code == 1) {
var _data= rs.data;
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFolder(__data.StationName, 'home', __data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
if(spread) {
treeView.spreadFolder('home', home, thirdSpread, true);
}
}else {
}
}
});
}
// 将函数绑定到GLOBAL.pages.siderbar的命名空间下
gl.pages.siderbar.third = third;
// 展开三级导航
function thirdSpread(treeView, container, data) {
var tmp = {
StationName1: data.StationName1,
StationName2: data.StationName2,
StationName: data.StationName,
StationId: data.StationId
};
fourth(treeView, container, tmp, true);
}
// 生成 三级导航-机房
function thirdFile(treeView, container, data) {
// 已经存在
if(container.find('ul').length !=0) {
return;
}
treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchStationName3",
async:true,
dataType:'json',
data:"json = "+JSON.stringify(data),
success: function(data){
var rs = JSON.parse(data.result);
treeView.delProgress(container);
if(rs.code == 1) {
var _data= rs.data;
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFile(__data.StationName, 'home', '',__data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
}else {
}
}
});
}
// 将函数绑定到GLOBAL.pages.siderbar的命名空间下
gl.pages.siderbar.thirdFile = thirdFile;
// 生成 三级导航-电池组
function fourth(treeView, container, data, active) {
// 已经存在
if(container.find('ul').length !=0) {
return;
}
treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchBattByStation",
async:true,
dataType:'json',
data:"json = "+JSON.stringify(data),
success: function(data){
var rs = JSON.parse(data.result);
treeView.delProgress(container);
if(rs.code == 1) {
var _data= rs.data;
//console.log(_data);
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFile(__data.BattGroupName, 'eleGroup', __data.BattGroupId, __data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
//console.info(formatData);
if(active) {
treeView.activeFile(container,'eleGroup', '');
var battId = formatData[0].id;
location.hash="#"+battId;
location.hash = "";
}
}else {
}
}
});
}
// 将函数绑定到GLOBAL.pages.siderbar的命名空间下
gl.pages.siderbar.fourth = fourth;
})(jQuery, window, document, GLOBAL);
// 设置根据省市机房和电池进行定位
;(function($, window, document, gl, undefined) {
gl.namespace('pages.siderbar');
var homeInfo = {
StationName1: '',
StationName2: '',
StationName: '',
StationId: ''
};
var battId=undefined;
// 定位机房
function localSideBar(treeView, container, data) {
// 关闭所有的
treeView.ele.find('li').removeClass('sider-menu-open');
first(treeView, container);
homeInfo.StationName1 = data.province;
homeInfo.StationName2 = data.city;
homeInfo.StationName = data.home;
homeInfo.StationId = data.homeid;
battId = data.battid;
}
// 将函数绑定到GLOBAL.pages.siderbar的命名空间下
gl.pages.siderbar.localSideBar = localSideBar;
// 生成一级导航-省
function first(treeView, container) {
//treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchAllStation",
async:true,
dataType:'json',
data:null,
success: function(data){
var rs = JSON.parse(data.result);
if(rs.code == 1) {
var _data= rs.data;
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFolder(__data.StationName1, 'province', __data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
treeView.spreadFolder('province', homeInfo.StationName1, firstSpread);
}else {
}
}
});
}
// 展开一级导航
function firstSpread(treeView, container) {
second(treeView, container, homeInfo, true);
}
// 生成二级导航-市
function second(treeView, container, data, spread) {
// 已经存在
if(container.find('ul').length !=0) {
treeView.spreadFolder('city', homeInfo.StationName2, secondSpread, true);
return;
}
treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchStationName2",
async:true,
dataType:'json',
data:"json = "+JSON.stringify(data),
success: function(data){
var rs = JSON.parse(data.result);
treeView.delProgress(container);
if(rs.code == 1) {
var _data= rs.data;
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFolder(__data.StationName2, 'city', __data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
if(spread) {
treeView.spreadFolder('city', homeInfo.StationName2, secondSpread);
}
}
}
});
}
// 展开二级导航
function secondSpread(treeView, container) {
third(treeView, container, homeInfo, true);
}
// 生成 三级导航-机房
function third(treeView, container, data, spread) {
// 已经存在
if(container.find('ul').length !=0) {
location.hash="#"+homeInfo.StationName;
location.hash="";
treeView.spreadFolder('home', homeInfo.StationName, thirdSpread, true);
return;
}
treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchStationName3",
async:true,
dataType:'json',
data:"json = "+JSON.stringify(data),
success: function(data){
var rs = JSON.parse(data.result);
treeView.delProgress(container);
if(rs.code == 1) {
var _data= rs.data;
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFolder(__data.StationName, 'home', __data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
if(spread) {
treeView.spreadFolder('home', homeInfo.StationName, thirdSpread, true);
}
}
}
});
}
// 展开三级导航
function thirdSpread(treeView, container, data) {
fourth(treeView, container, homeInfo, true);
}
// 生成 三级导航-电池组
function fourth(treeView, container, data, active) {
// 已经存在
if(container.find('ul').length !=0) {
container.addClass('sider-menu-open');
if(battId) {
treeView.activeFile(container,'eleGroup', battId);
}else {
treeView.activeFile(container,'eleGroup', '');
}
return;
}
treeView.addProgress(container);
$.ajax({
type: "post",
url: "BattInfAction!serchBattByStation",
async:true,
dataType:'json',
data:"json = "+JSON.stringify(data),
success: function(data){
var rs = JSON.parse(data.result);
treeView.delProgress(container);
if(rs.code == 1) {
var _data= rs.data;
//console.log(_data);
var formatData = [];
for(var i=0; i<_data.length;i++) {
var __data = _data[i];
var tmp = treeView.getFile(__data.BattGroupName, 'eleGroup', __data.BattGroupId, __data);
formatData.push(tmp);
}
treeView.treeView(container, formatData);
if(active) {
if(battId) {
treeView.activeFile(container,'eleGroup', battId);
location.hash="#"+battId;
location.hash="";
}else {
treeView.activeFile(container,'eleGroup', '');
}
}
}
}
});
}
})(jQuery, window, document, GLOBAL);
//生成充放电监测模块内容
function createBattListen(ele, list) {
ele.text("");
var discharge_num = 0;
var charge_num = 0;
var ul = $('');
for(var i = 0; i < list.length; i++) {
var li = "";
if(list[i].isCharge) {
li = $(''+list[i].val+'电池组充电测试!');
charge_num++;
}else {
li = $(''+list[i].val+'电池组放电测试!');
discharge_num++;
}
li.data('attr', list[i]);
ul.append(li);
}
$('#ele_content .batt-listen .count-num').find('span').eq(0).text(discharge_num);
$('#ele_content .batt-listen .count-num').find('span').eq(1).text(charge_num);
ele.append(ul);
}