hdw
2018-12-24 9876e29a3ae6fb3d70096f582d0260a59760f9f1
gx_tieta/WebRoot/pages/js/common.js
@@ -295,8 +295,13 @@
   gl.BTS9100.alarmstates = [
         '无','暂停','放电测试','放电等待','限流充电','直流充电','充电等待','测试时间到',
         '测试容量到','单体下限到','组端下限到','市电异常','存储卡不足','负载温度高','电流异常','远程通信坏',
         '负载通信坏','选择通信坏','负载电流坏','内存申请坏','未知'
         '负载通信坏','选择通信坏','载模块放电过功率停止','内部程序异常停止','市电恢复停止升压放电','充电过程中市电中断','合路器放电功能组端电压下限','温度上限到','未知'
   ];
   /*gl.BTS9100.alarmstates = [
         '无','暂停','放电测试','放电等待','限流充电','直流充电','充电等待','测试时间到',
         '测试容量到','单体下限到','组端下限到','市电异常','存储卡不足','负载温度高','电流异常','远程通信坏',
         '负载通信坏','选择通信坏','负载电流坏','内存申请坏','未知'
   ];*/
   
   // LD9设备
   gl.namespace('LD9');
@@ -330,6 +335,8 @@
   }
   // 将函数绑定到GLOBAL.BaseStation
   gl.BaseStation.getAbnormalTxt = getAbnormalTxt;
   
})(jQuery, window, document, GLOBAL);
@@ -446,6 +453,306 @@
   gl.CMD.e61850.stop = 83;               //停止测试
   gl.CMD.e61850.setDischargeParm = 40;            //设置参数
   gl.CMD.e61850.getDischargeParm = 41;            //获取参数
   //CMD下sys
   gl.namespace('CMD.sys');
   gl.CMD.sys.restart = 0x10;
   gl.CMD.sys.set = 0x81;
   gl.CMD.sys.get = 0x80;
   //CMD下gprs
   gl.namespace('CMD.gprs');
   gl.CMD.gprs.param = 145;
   gl.CMD.gprs.signal = "CSQ";
   gl.CMD.gprs.threadinfo = 0x17;
   // CMD下batt
   gl.namespace('CMD.batt');
   gl.CMD.batt.get = 0x36;      // 获取电池参数
   gl.CMD.batt.set = 0x37;      // 设置电池参数
})(jQuery, window, document, GLOBAL);
// 问题类型
;(function($, window, document, gl, undefined) {
   // HomeQues的命名空间
   gl.namespace('HomeQues');
   var lists = ['电池问题', '电源问题', '空调问题', '漏水问题', 'BTS设备问题', 'GPRS模块问题', '施工安装问题', '铁锂电池问题', '其他问题'];
   // 将questions绑定到HomeQues下
   gl.HomeQues.lists = lists;
   // 获取option列表
   function getOptions(bool) {
      var options = '';
      // 是否添加全部选项
      if(bool) {
         options += '<option value="-1">全部</option>';
      }
      // 遍历lists返回所有的option
      for(var i=0; i<lists.length; i++) {
         options += '<option value="'+i+'">'+lists[i]+'</option>';
      }
      return options;
   }
   // 将getOptions绑定到HomeQues下
   gl.HomeQues.getOptions = getOptions;
   // 获取故障类型layuiBtn
   function getLayuiBtn(num) {
      var txt = lists[num];
      return '<a href="javascript:;" class="layui-btn layui-btn-xs">'+txt+'</a>';
   }
   // 将getLayuiBtn绑定到HomeQues下
   gl.HomeQues.getLayuiBtn = getLayuiBtn;
})(jQuery, window, document, GLOBAL);
// 地图信息
;(function($, window, document, gl, undefined) {
   // 定义BMap的命名空间
   gl.namespace('BMap');
   // 地图可视区域定义
   var mapViewArea = [
       {name: '中国',area:'中国', left: {lng:71.3822, lat:0.6212}, right: {lng: 139.526,lat:54.3093}},
       {name: '中国-广西',area: '广西省' ,left: {lng:104.45675, lat:20.8744}, right: {lng: 112.068,lat:26.391}}
   ];
   // 将变量mapView绑定到GLOBAL.BMap下
   gl.BMap.mapViewArea = mapViewArea;
})(jQuery, window, document, GLOBAL);
// 文本框数据的验证
;(function($, window, document, gl, undefined) {
   // 定义testVal的命名空间
   gl.namespace('testVal');
   // 验证数据
   function check(ele, ptn, callback) {
      var val = ele.val();
      var isGood = regVal(val, ptn);
      setStyle(ele, isGood, ptn, callback);
   }
   // 将数据绑定到GLOBAL.testVal下
   gl.testVal.check = check;
   // 检测数据的有效性
   function regVal(val, ptn) {
      var flag = true;
      var _val = val;
      // 检验数据格式是否有效
      if(!ptn.pattern.test(_val)) {
         flag = false;
      }
      // 检验数据是否在取值区间(前提是数据格式正确且有区间)
      if(flag && ptn.regVal) {
         // val值不在取值范围
         if(val<ptn.min || val>ptn.max) {
            flag = false;
         }
      }
      return flag;
   }
   // 设置文本框的样式
   function setStyle(ele, isGood, ptn, callback) {
      if(isGood) {
         ele.next('i').removeClass('error-data');
         ele.myTooltip('hide');
         ele.removeClass('error-data');
      }else {
         ele.next('i').addClass('error-data');
         ele.myTooltip({
                position: ptn.position,
                thing: 'show',
                update: ptn.update,
                content: '<span style="color:#FF0000">'+ptn.msg+'</span>'
         });
         ele.addClass('error-data');
      }
      // 是否回调函数
      //console.log(callback);
      if(isFunction(callback)) {
         callback();
      }
   }
})(jQuery, window, document, GLOBAL);
// 导出报表
;(function($, window, document, gl, undefined) {
   // 定义testVal的命名空间
   gl.namespace('Table');
   var ExpExcel = function() {
        this.thead = '';        // 表格的头部
        this.tbody = '';        // 表格的内容
        this.normal = 1;        // 是否为通用的导出
        this.dataBreak = '';    // 数据分割符
        this.pageNames = '';    // 工作簿名称
        this.pageBreak = '';    // 工作簿分隔符
        this.form = '';
        this.form = this.initForm();
    };
    var prop = ExpExcel.prototype;
    // 初始化
    prop._init = function(obj) {
        var defaults = {
            thead: [],
            tbody: [],
            normal: 1,
            dataBreak: '&',
            pageNames: ['数据表格'],
            pageBreak: '$'
        };
        // 合并对象
        var opts = $.extend({}, defaults, obj | {});
        this._setThead(obj.thead, opts.pageBreak, opts.dataBreak);
        this._setTbody(obj.tbody, opts.pageBreak, opts.dataBreak);
        this._setPageNames(opts.pageNames, opts.pageBreak);
        this.dataBreak = opts.dataBreak;
        this.pageBreak = opts.pageBreak;
        this.normal = opts.normal;
        this.form = this.initForm();
        this._setForm();
    };
    // 设置页面中的元素
    prop._setForm = function() {
       var ele = $('#exp_container');
       // 创建容器
       if(ele.length == 0) {
          $('body').append($('<div id="exp_container"></div>'));
       }
       ele = $('#exp_container');
       console.log(ele.length);
        // 更新内容
        ele.text('');
        var form = $('<form id="exp_excel" action="ExportTable.servlet" method="post"></form>');
        var thead = $('<input type="hidden" id="exp_thead" name="exp_thead" value=""/>');
        var tbody = $('<input type="hidden" id="exp_tbody" name="exp_tbody" value=""/>');
        var normal = $('<input type="hidden" id="exp_normal" name="exp_normal" value=""/>');
        var dataBreak = $('<input type="hidden" id="exp_data_break" name="exp_data_break" value=""/>');
        var pageNames = $('<input type="hidden" id="exp_page_names" name="exp_page_names" value=""/>');
        var pageBreak = $('<input type="hidden" id="exp_page_break" name="exp_page_break" value=""/>');
        thead.val(this.thead);
        tbody.val(this.tbody);
        normal.val(this.normal);
        dataBreak.val(this.dataBreak);
        pageNames.val(this.pageNames);
        pageBreak.val(this.pageBreak);
      form.append(thead);
      form.append(tbody);
      form.append(normal);
      form.append(dataBreak);
      form.append(pageNames);
      form.append(pageBreak);
        ele.append(form);
        this.form = form;
    };
    // 设置表格头部的值
    prop._setThead = function(thead, pageBreak, dataBreak) {
        var arr = [];
        // 数据分割
        for(var i=0; i<thead.length; i++) {
            var _arr = thead[i].join(dataBreak);
            arr.push(_arr)
        }
        // 工作簿分割
        var str = arr.join(pageBreak);
        this.thead = str;
    };
    // 设置表格内容
    prop._setTbody = function(tbody, pageBreak, dataBreak) {
        var arr = [];
        // 数据分割
        for(var i=0; i<tbody.length; i++) {
            var _arr = tbody[i].join(dataBreak);
            arr.push(_arr)
        }
        // 工作簿分割
        var str = arr.join(pageBreak);
        this.tbody = str;
    };
    // 设置工作簿内容
    prop._setPageNames = function(pageNames, pageBreak) {
        var str = pageNames.join(pageBreak);
        this.pageNames = str;
    };
    // 初始化form
    prop.initForm = function() {
        this.form = '12345';
    };
    // 导出表格
    prop.xls = function(obj) {
        this._init(obj); // 初始化内容
        // 导出内容
        if(this.form == '12345') {
            alert('没有检测到form表单')
        }else {
            this.form.submit();
        }
    };
    var expExcel = new ExpExcel();
    //console.log(expExcel);
    // 绑定导出数据对象
    GLOBAL.Table.expExcel = expExcel;
    //构造导出表格对象
   function createTableData(tOptions){
      var thead_arr = new Array();            //表头数据数组
      var thody_arr = new Array();            //表格数据数组
      var proname_arr = new Array();            //属性名数组
      //console.info(tOptions);
      if(tOptions != undefined){
         //构造表头数组
         for(var i = 0;i< tOptions.cols.length;i++){
            var _th = tOptions.cols[i];
            for(var k=0;k<_th.length;k++){
               if(_th[k].field != undefined){
                  proname_arr.push(_th[k].field);
                  thead_arr.push(_th[k].title);
               }
            }
         }
         //构造表格内部数据数组
         for(var j = 0;j < tOptions.data.length;j++){
            var _data = tOptions.data[j];
            for(var k=0;k<proname_arr.length;k++){
               thody_arr.push(_data[proname_arr[k]]);
            }
         }
      }
      return {
             thead: [thead_arr],
            tbody:[thody_arr]
      };
   }
   // 绑定导出数据对象
    GLOBAL.Table.cTblData = createTableData;
})(jQuery, window, document, GLOBAL);
// 生成阿里图标的元素
@@ -463,3 +770,84 @@
   var outerHTML = i[0].outerHTML;
   return outerHTML;
}
//生成阿里图标的元素
function create_fa_font(cla, color, data) {
   var i = $('<i class="fa"></i>');
   i.addClass(cla);
   i.css({
      'color': color
   });
   Object.keys(data).forEach(function(key) {
      var attr = 'data-'+key
      i.attr(attr, data[key]);
   });
   // 获取字符串
   var outerHTML = i[0].outerHTML;
   return outerHTML;
}
// 生成跳转的链接
function skipUrl(page, province, city, county, home,battid,monnum) {
   var str = page+'?';
   if(province){
      str += '&province='+province;
   }
   if(city){
      str +='&city='+city;
   }
   if(county){
      str += '&county='+county;
   }
   if(home){
      str += '&home='+home;
   }
   if(battid){
      str += '&battid='+battid;
   }
   if(monnum){
      str += '&monnum='+monnum;
   }
   //var str = page+'?province='+province+'&city='+city+'&county='+county+'&home='+home;
   return str;
}
// 检测用户是否有权限
function checkUserPermit(permits, name) {
   var rs = false;
   // 遍历permits
   for(var i=0; i<permits.length; i++) {
      var _permit = permits[i];
      if(_permit.permit_item_name == name && _permit.permit_item_value==1) {
         rs = true;
         break;
      }
   }
   return rs;
}
//给GPRS发送指定的命令,获取AT返回值
function searchStationSignal(param,callback){
   $.ajax({
        type:"post",
        url: "Bts_gprs_stateAction_action_update?t="+(new Date().getTime()),
        async:true,
        dataType:'json',
        data:'json='+JSON.stringify(param),
        success: function(data){
         var model = eval('('+data.result+')');
         if(callback && typeof callback == 'function'){
            callback(model);
         }
       },error:function(e){
          var model = {
             code:0,
             data:e,
             msg:'通信失败'
          };
          if(callback && typeof callback == 'function'){
            callback(model);
         }
       }
   });
}