81041
2018-11-15 b17551812c691d3eab98e9d3eb62a93f927057ff
Merge branch 'dev_lxw' of https://whyclxw1@gitlab.com/whyclxw1/gx_tieta.git into dev_lxw
2个文件已添加
1个文件已修改
994 ■■■■■ 已修改文件
gx_tieta/WebRoot/batt-station-update1.jsp 878 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/iframe/batt-station-update.html 110 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/pages/css/mylayui.css 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/batt-station-update1.jsp
New file
@@ -0,0 +1,878 @@
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
<%@ taglib uri="/struts-tags" prefix="s" %>
<!DOCTYPE HTML>
<html>
    <head>
        <base href="<%=basePath%>">
        <meta charset="UTF-8">
        <meta name="viewport" content="width=device-width, initial-scale=1">
        <meta http-equiv="pragma" content="no-cache">
        <meta http-equiv="cache-control" content="no-cache">
        <meta http-equiv="expires" content="0">
        <meta http-equiv="keywords" content="keyword1,keyword2,keyword3">
        <meta http-equiv="description" content="This is my page">
        <title>机房站点升级功能</title>
        <link rel="stylesheet" type="text/css" href="pages/css/base.css">
        <link rel="stylesheet" type="text/css" href="jqueryui/jquery-ui.css">
        <link rel="stylesheet" type="text/css" href="src/css/layui.css">
        <link rel="stylesheet" type="text/css" href="pages/css/mylayui.css">
        <style>
            .dataTypeCont {
                width: 160px;
                text-align: center;
            }
            .dataTypeCont .layui-form-switch {
                min-width: 70px;
                margin-top: 4px;
            }
        </style>
    </head>
     <body>
         <!--头部内容开始-->
        <jsp:include page="Top.jsp" flush="true"/>
        <!--头部内容结束-->
        <!--导航开始-->
        <jsp:include page="nav.jsp" flush="true"/>
        <!-- 主体内容 -->
        <div class="layui-page-container">
            <!-- 条件筛选 -->
            <div class="layui-page-filter">
                <div class="page-filter-header layui-page-filter-fweight">机房站点升级功能</div>
                <div class="page-filter-content">
                    <table>
                        <tr class="layui-page-filter-tbl-header layui-page-filter-fweight">
                            <td>省</td>                        <!-- 省 -->
                            <td>市</td>                        <!-- 市 -->
                             <td>区/县</td>                        <!-- 市 -->
                            <td><s:text name="Computer_name"/></td>                            <!-- 机房名称 -->
                        </tr>
                        <tr>
                            <td>
                                <div class="layui-form" lay-filter="provinceFilter">
                                    <div class="layui-form-item">
                                        <div class="layui-input-block">
                                            <select name="province" id="province" lay-filter="province">
                                                <option value="">请选择省</option>
                                            </select>
                                        </div>
                                    </div>
                                </div>
                            </td>
                            <td>
                                <div class="layui-form" lay-filter="cityFilter">
                                    <div class="layui-form-item">
                                        <div class="layui-input-block">
                                            <select name="city" id="city" lay-filter="city">
                                                <option value="">请选择市/区</option>
                                            </select>
                                        </div>
                                    </div>
                                </div>
                            </td>
                             <td>
                                <div class="layui-form" lay-filter="countyFilter">
                                    <div class="layui-form-item">
                                        <div class="layui-input-block">
                                            <select name="county" id="county" lay-filter="county">
                                                <option value="">请选择区/县</option>
                                            </select>
                                        </div>
                                    </div>
                                </div>
                            </td>
                            <td>
                                <div class="layui-form" lay-filter="homeFilter">
                                    <div class="layui-form-item">
                                        <div class="layui-input-block">
                                            <select name="home" id="home" lay-filter="home">
                                                <option value="">请选择机房</option>
                                            </select>
                                        </div>
                                    </div>
                                </div>
                            </td>
                        </tr>
                    </table>
                </div>
            </div>
            <!-- 页面主题内容 -->
            <div class="layui-page-content" style="position: relative;">
                <div class="layui-tbl-filter">
                    <div class="layui-form layui-form-pane"  lay-filter="tblFilter">
                        <div class="layui-inline">
                            <div class="layui-input-inline">
                                <div class="layui-form" lay-filter="addTypeFilter">
                                    <select name="addType" id="addType" lay-filter="addType">
                                        <option value="0">单个机房</option>
                                        <option value="5">全区/县</option>
                                        <option value="2">全市</option>
                                        <option value="1">全省</option>
                                    </select>
                                </div>
                            </div>
                        </div>
                        <button class="layui-btn layui-btn-sm mrl8" id="addUpdate"><i class="fa fa-plus mrr8"></i>添加</button>
                        <button class="layui-btn layui-btn-sm" id="acUpdate"><i class="fa fa-refresh mrr8"></i>批量升级</button>
                    </div>
                </div>
                <!-- 表格内容 -->
                <table id="pageTbl" lay-filter="pageTbl"></table>
            </div>
        </div>
        <!-- 存储iframe需要的值 -->
        <div id="updateIframeData"></div>
        <!-- 整体灰色遮罩层 -->
        <div id="allShade"></div>
        <script type="text/html" id="barDemo">
            <a class="layui-btn layui-btn-xs" lay-event="update">升级</a>
        </script>
        <script type="text/javascript" src="js/jquery-1.8.3.js"></script>
        <script type="text/javascript" src="js/echarts.js"></script>
        <script type="text/javascript" src="jqueryui/jquery-ui.min.js"></script>
        <script type="text/javascript" src="src/layui.js"></script>
        <script type="text/javascript" src="pages/js/mylayui.js"></script>
        <script type="text/javascript" src="pages/js/pages/control-common.js"></script>
        <script type="text/javascript">
            layui.use(['form', 'table', 'layer', 'element'], function() {
                var table = layui.table;        // 获取表格模块
                var form = layui.form;            // 获取表单模块
                var layer = layui.layer;        // 获取弹出框模块
                var isNewLoad = true;
                var pre_province = getQueryString('province');
                // 查询省下拉框
                searchProvince();
                // 查询省
                var filterLoad = layer.load();
                function searchProvince() {
                    // 请求后台查询
                    $.ajax({
                        type:'post',
                        async:true,
                        url: 'User_battgroup_baojigroup_battgroupAction!serchStationName1InGroup',
                        data: null,
                        dataType: 'json',
                        success:function(result) {
                            var rs = JSON.parse(result.result);
                            var list = [];                // option结果集
                            var ele = $('#province');    // 目标select
                            if(rs.code == 1) {
                                var data = rs.data;
                                list.push(getLayuiSelect('请选择省/直辖市', '', {}, undefined));
                                // 遍历查询结果
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    var _tmp = getLayuiSelect(_data, _data, {}, {});
                                    if(pre_province == _data && isNewLoad){
                                        _tmp = getLayuiSelect(_data, _data, {}, {},true);
                                    }
                                    list.push(_tmp);
                                }
                            }else {
                                list.push(getLayuiSelect('暂无省/直辖市', '', {}, undefined));
                            }
                            // 根据对象数组生成下拉列表
                            createLayuiSelect(ele, list);
                            form.render('select', 'provinceFilter');
                            // 查询市
                            searchCity();
                        }
                    });
                }
                // 切换省-市
                form.on('select(province)', function(data) {
                    // 查询市
                    searchCity(true);
                });
                // 查询市
                function searchCity(isLoad) {
                    // 构造查询条件
                    var tmp = {
                        StationName1: $("#province").val()
                    };
                    var pre_city = getQueryString('city');
                    // 是否添加等待
                    if(isLoad) {
                        filterLoad = layer.load();
                    }
                    // 根据构造条件查询内容
                    $.ajax({
                        type: 'post',
                        async: true,
                        url: 'BattInfAction!serchStationName2',
                        dataType: 'json',
                        data: "json = "+JSON.stringify(tmp),
                        success: function(result) {
                            var rs = JSON.parse(result.result);
                            var list = [];                // option结果集
                            var ele = $('#city');    // 目标select
                            if(rs.code == 1) {
                                var data = rs.data;
                                list.push(getLayuiSelect('请选择市/区', '', {}, undefined));
                                // 遍历查询结果
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    var _tmp = getLayuiSelect(_data.StationName2, _data.StationName2, {}, _data);
                                    if(pre_city == _data.StationName2 && isNewLoad){
                                        _tmp = getLayuiSelect(_data.StationName2, _data.StationName2, {}, _data,true);
                                    }
                                    list.push(_tmp);
                                }
                            }else {
                                list.push(getLayuiSelect('暂无市/区', '', {}, undefined));
                            }
                            // 根据对象数组生成下拉列表
                            createLayuiSelect(ele, list);
                            form.render('select', 'cityFilter');
                            // 查询区县
                            searchCounty();
                        }
                    });
                }
                // 切换市-区县
                form.on('select(city)', function(data) {
                    // 查询区县
                    searchCounty(true);
                });
                // 查询区/县
                function searchCounty(isLoad) {
                    // 构造查询条件
                    var tmp = {
                        StationName1: $("#province").val(),
                        StationName2: $("#city").val()
                    };
                    // 是否添加等待
                    if(isLoad) {
                        filterLoad = layer.load();
                    }
                    var pre_county = getQueryString('county');
                    // 根据构造条件查询内容
                    $.ajax({
                        type: 'post',
                        async: true,
                        url: 'BattInfAction!serchStationName5',
                        dataType: 'json',
                        data: "json = "+JSON.stringify(tmp),
                        success: function(result) {
                            var rs = JSON.parse(result.result);
                            //console.info(rs);
                            var list = [];                // option结果集
                            var ele = $('#county');    // 目标select
                            if(rs.code == 1) {
                                var data = rs.data;
                                list.push(getLayuiSelect('请选择区/县', '', {}, undefined));
                                // 遍历查询结果
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    var _tmp = getLayuiSelect(_data.StationName5, _data.StationName5, {}, _data);
                                    if(pre_county ==  _data.StationName5 && isNewLoad){
                                        _tmp = getLayuiSelect(_data.StationName5, _data.StationName5, {}, _data,true);
                                    }
                                    //console.info(_tmp);
                                    list.push(_tmp);
                                }
                            }else {
                                list.push(getLayuiSelect('暂无区/县', '', {}, undefined));
                            }
                            // 根据对象数组生成下拉列表
                            createLayuiSelect(ele, list);
                            form.render('select', 'countyFilter');
                            // 查询机房
                            searchHome();
                        }
                    });
                }
                // 切换市-区县
                form.on('select(county)', function(data) {
                    // 查询区县
                    searchHome(true);
                });
                // 查询机房
                function searchHome(isLoad) {
                    // 构造查询条件
                    var tmp = {
                        StationName1:$("#province").val(),
                        StationName2:$("#city").val(),
                        StationName5:$("#county").val(),
                    };
                    var pre_home = getQueryString('home');
                    var auto_seach = false;
                    // 是否添加等待
                    if(isLoad) {
                        filterLoad = layer.load();
                    }
                    // 根据构造条件查询内容
                    $.ajax({
                        type: 'post',
                        async: true,
                        url: 'BattInfAction!serchStationName3',
                        dataType: 'json',
                        data: "json = "+JSON.stringify(tmp),
                        success: function(result) {
                            var rs = JSON.parse(result.result);
                            var list = [];                // option结果集
                            var ele = $('#home');    // 目标select
                            if(rs.code == 1) {
                                var data = rs.data;
                                list.push(getLayuiSelect('请选择机房', '', {StationId: '', dev_id: ''}, undefined));
                                // 遍历查询结果
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    var _attr = {
                                        StationId: _data.StationId,
                                        dev_id: _data.FBSDeviceId
                                    };
                                    var _tmp = getLayuiSelect(_data.StationName, _data.StationName3, _attr, _data);
                                    if(pre_home == _data.StationName && isNewLoad){
                                        _tmp = getLayuiSelect(_data.StationName, _data.StationName3, _attr, _data,true);
                                        auto_seach = true;
                                    }
                                    list.push(_tmp);
                                }
                            }else {
                                list.push(getLayuiSelect('暂无机房', '', {}, undefined));
                            }
                            // 根据对象数组生成下拉列表
                            createLayuiSelect(ele, list);
                            form.render('select', 'homeFilter');
                            isNewLoad = false;
                            layer.close(filterLoad);
                        }
                    });
                }
                // 表格模块
                var tOptions = {
                    elem: '#pageTbl'
                    ,toolbar: true
                    ,defaultToolbar: []
                    ,cellMinWidth: 80
                    ,cols: [[
                        {type: 'checkbox', fixed: 'left'}
                        ,{field:'stationid', title:'机房ID', align:'center'}
                        ,{field:'stationname', title:'机房名称', align:'center', width: 400}
                        ,{field:'fbsid', title:'设备ID', align:'center'}
                        ,{field:'fbsname', title:'设备名称', align:'center'}
                        ,{field:'updatestatus', title:'升级状态', align:'center'}
                        ,{field:'status', title:'读写状态', align:'center'}
                        ,{field:'datapackage', title:'当前数据包', align:'center'}
                        ,{fixed: 'right', title:'操作', align:'center', toolbar: '#barDemo', width:100}
                    ]]
                    ,data:[]
                    ,limit: 1000
                    ,page: false
                    ,height: 'full-252'
                };
                // 生成表格数据
                table.render(tOptions);
                // 批量升级
                $('#acUpdate').click(function() {
                    var checkStatus = table.checkStatus('pageTbl'); // 获取选中的内容
                    var data = checkStatus.data;
                    // 判断是否勾选内容
                    if(data.length == 0) {
                        layer.msg('请选择要升级的设备!');
                        return;
                    }
                    // 要更新的设备id列表
                    var updateList = [];
                    // 遍历data获取
                    for(var i=0; i<data.length; i++) {
                        updateList.push(data[i].fbsid);
                    }
                    // 校验要更新的设备
                    checkStationState(updateList, data);
                });
                // 点击表格的toolbar
                table.on('tool(pageTbl)', function(obj) {
                    var event = obj.event;
                    switch(event) {
                        case 'update':
                            // 格式化当前设备的信息并检测
                            formaterEquipeData(obj.data);
                        break;
                        default:
                            layer.msg('功能开发中...');
                        break;
                    }
                });
                // 检测当前设备的信息
                function formaterEquipeData(data) {
                    // 构造查询条件
                    var updateList = [data.fbsid];
                    var allData = [data];
                    // 校验要更新的设备
                    checkStationState(updateList, allData);
                }
                // 点击添加生成表格
                $('#addUpdate').click(function() {
                    var structData = structAddData();
                    // 判断是否选择要添加的内容
                    if(structData.msg) {
                        layer.msg(structData.msg);
                        return;
                    }
                    // 根据对象查询内容
                    addStationOnTable(structData);
                });
                //添加设备到表格
                var load;
                function addStationOnTable(temp){
                    load = layer.load(1);
                    $.ajax({
                        type: "post",
                        url: "Fbs9100s_dfu_stateAction_action_addPro",                        //将当前需要升级的设备添加到数据库表中
                        async:true,
                        dataType:'json',
                        data:"json = "+JSON.stringify(temp),
                        success: function(data){
                            var rs = JSON.parse(data.result);
                            // console.log(rs);
                            if(rs.code == 1){
                                searchAddStationInfo(temp);                                    //添加成功的时候查询当前已经添加到数据库表中的机房信息
                            }else{
                                layer.msg('添加失败');
                            }
                        },error:function(e){
                            layer.msg('添加失败');
                        }
                    });
                }
                //查询添加到表格中的设备信息
                function searchAddStationInfo(temp){
                    $.ajax({
                        type: "post",
                        url: "Fbs9100s_dfu_stateAction_action_serchInserStation",
                        async:true,
                        dataType:'json',
                        data:"json = "+JSON.stringify(temp),
                        success: function(data){
                            var rs = JSON.parse(data.result);
                            if(rs.code == 1 && rs.data.length>0){
                                var allData = tOptions.data;
                                var formaterData = formaterAddData(rs.data, allData);        //解析数据
                                if(formaterData.length) {
                                    // 遍历formaterData
                                    for(var i=0; i<formaterData.length; i++) {
                                        var _formaterData = formaterData[i];
                                        var tmp = {};
                                        tmp.stationid = _formaterData.StationId;        // 机房id
                                        tmp.stationname = _formaterData.StationName;    // 机房名称
                                        tmp.fbsid = _formaterData.FBSDeviceId;            // 设备id
                                        tmp.fbsname = _formaterData.FBSDeviceName;        // 设备名称
                                        tmp.updatestatusnum = 0;                        // 0 等待升级
                                        tmp.updatestatus = '等待升级';                        // 升级状态
                                        tmp.status = '写';                                // 读写状态
                                        tmp.datapackage = 1;                            // 当前数据包
                                        tmp.isNewAdd = true;
                                        //console.log(tmp);
                                        allData.push(tmp);
                                    }
                                    // 生成表格数据
                                    table.render(tOptions);
                                }else {
                                    layer.msg('没有要添加的内容!');
                                }
                            }else{
                                layer.msg('添加失败');
                            }
                            layer.close(load);
                        },error:function(e){
                            layer.msg('添加失败');
                            layer.close(load);
                        }
                    });
                }
                // 点击添加构造查询
                function structAddData() {
                    //1省(文本值)              2:市(文本值)            5:区县(文本值)            0:机房  (设备id)
                    var addType = $('#addType').val();    // 添加机房的方式
                    var msg = '';    // 提示信息
                    var rs = {
                        num: addType,
                        StationName: ''
                    };
                    switch(addType) {
                        case '1':
                            var province = $('#province').val();
                            rs.StationName = province;
                            msg = '请选择省';
                        break;
                        case '2':
                            var city = $('#city').val();
                            rs.StationName = city;
                            msg = '请选择市';
                        break;
                        case '5':
                            var county = $('#county').val();
                            rs.StationName = county;
                            msg = '请选择区/县';
                        break;
                        case '0':
                            var home = $('#home').find('option:selected').attr('stationid');
                            rs.StationName = home;
                            msg = '请选择机房';
                        break;
                    }
                    if(!rs.StationName) {
                        rs.msg = msg;
                    }
                    return rs;
                }
                // 格式化加载的数据
                function formaterAddData(addData, all) {
                    //console.log(addData);
                    var rs = [];
                    // 遍历addData的值
                    for(var i=0; i<addData.length; i++) {
                        var _addData = addData[i];
                        var fbsid = _addData.FBSDeviceId;    // 设备的ID
                        var isAdd = true;    // 是否添加
                        for(var k=0; k<all.length;k++) {
                            var _all = all[k];
                            if(_all.fbsid == fbsid) {
                                isAdd = false;
                            }
                        }
                        // 根据isAdd添加数据
                        if(isAdd) {
                            rs.push(_addData);
                        }
                    }
                    return rs;
                }
                var myTimeOutThreath;        // 计时器
                fulshMyTable();                //更新表格
                //更新表格线程
                function fulshMyTable(){
                    //console.info(allUpdataList);
                    var temp = new Array();
                    for(var i =0 ; i< tOptions.data.length ; i++){
                        temp.push(tOptions.data[i].fbsid);
                    }
                    if(temp.length > 0){
                        updateDevUpdate(temp,fulshMyTable);
                    }else{
                        window.clearTimeout(myTimeOutThreath);
                        myTimeOutThreath = window.setTimeout(fulshMyTable,4000);
                    }
                }
                //更新设备更新的表格
                function updateDevUpdate(temp,callback){
                    //console.info(temp);
                    $.ajax({
                        type: "post",
                        url: "Fbs9100s_dfu_stateAction_action_serchByCondition",
                        async:true,
                        dataType:'json',
                        data:"json = "+JSON.stringify(temp),
                        success: function(data){
                            var rs = JSON.parse(data.result);
                            var tmp = {
                                updatestatus:[],
                                status: [],
                                datapackage: []
                            };
                            //console.log(rs);
                            if(rs.code == 1 && rs.data.length>0){
                                var tblData = tOptions.data;
                                for(var i=0; i<rs.data.length; i++) {
                                    var _data = rs.data[i];
                                    var num = -1;
                                    // 遍历现有的tblData
                                    for(var k=0; k<tblData.length;k++) {
                                        var _tblData = tblData[k];
                                        if(_tblData.fbsid == _data.dev_id) {
                                            num = k;
                                            break;
                                        }
                                    }
                                    if(num == -1) {
                                        continue;
                                    }
                                    // 更新内容
                                    var _tblData = tblData[num];
                                    if(_data.dfu_en == 1){
                                        _tblData.isNewAdd = false;                    //判断是否是第一次添加数据
                                    }
                                    var dfuEn = _data.dfu_en == 1?'升级中':_tblData.isNewAdd?'等待升级':_data.dfu_en == 0?'升级完成':'';
                                    var dfuWr = _data.dfu_wr_stat == 1?'写':_data.dfu_wr_stat == 2?'读':_data.dfu_wr_stat == 3?'完成':'';
                                    var dfuData = _data.dfu_data_blocknum;
                                    // 更新表格配置项的值
                                    _tblData.updatestatus = dfuEn;
                                    _tblData.status = dfuWr;
                                    _tblData.datapackage = dfuData;
                                    _tblData.updatestatusnum = _data.dfu_en;    // 0等待升级  1升级完成
                                    tmp.updatestatus[num] = dfuEn;
                                    tmp.status[num] = dfuWr;
                                    tmp.datapackage[num] = dfuData;
                                }
                                var pageTbl = $('#pageTbl');
                                // 更新表格内容
                                Object.keys(tmp).forEach(function(key) {
                                    updateLayuiTblCol(pageTbl, key, tmp[key]);
                                });
                            }else{
                            }
                            window.clearTimeout(myTimeOutThreath);
                            myTimeOutThreath = window.setTimeout(callback,4000);
                        },error:function(e){
                            window.clearTimeout(myTimeOutThreath);
                            myTimeOutThreath = window.setTimeout(callback,4000);
                        }
                    });
                }
                // 更新layui框架的指定的列
                function updateLayuiTblCol(tbl, field, list) {
                    var layuiTbl = tbl.next('.layui-table-view');
                    var layuiTblContent = layuiTbl.find('.layui-table-box .layui-table-body table');
                    var tr = layuiTblContent.find('tr');
                    // 遍历list的值更新表格指定的单元格
                    for(var i=0; i<list.length; i++) {
                        var _tr = tr.eq(i);
                        var td = _tr.find('td');
                        td.each(function() {
                            var tdField = $(this).data('field');
                            if(tdField == field) {
                                $(this).find('.layui-table-cell').text(list[i]);
                            }
                        });
                    }
                }
                //验证设备是否允许设备进行远程升级
                function checkStationState(temp, all){
                    $.ajax({
                        type: "post",
                        url: "Fbs9100s_dfu_stateAction_action_judgeStation",
                        async:true,
                        dataType:'json',
                        data:"json = "+JSON.stringify(temp),
                        success: function(result){
                            var rs = JSON.parse(result.result);
                            //console.log(rs);
                            if(rs.code == 1) {
                                var data = rs.data;
                                var updateData = checkUpdating(data, all);
                                var errorUpdate = checkErrorUpdate(data, all);
                                $('#updateIframeData').data('update', updateData);                // 可更新的设备信息
                                $('#updateIframeData').data('errorUpdate', errorUpdate);    // 无法更新的设备信息
                                // 判断是否有升级的设备
                                if(updateData.length == 0) {
                                    if(temp.length == 1) {
                                        layer.msg('当前设备无法升级!');
                                    }else {
                                        layer.msg('暂无可升级的设备!');
                                    }
                                    return;
                                }
                                // 显示面板
                                layer.open({
                                    type: 2,
                                    title: '更新设备',
                                    area: ['700px', '524px'],
                                    fixed: false, //不固定
                                    maxmin: true,
                                    content: 'iframe/batt-station-update.html',
                                    btn: ['确认升级', '取消'],
                                    yes: function(index, layero) {
                                        var updateData = $('#updateIframeData').data('update');    // 获取可升级设备的信息
                                        // 根据可升级设备的信息构造查询条件
                                        var updateList = [];
                                        for(var i=0; i<updateData.length; i++) {
                                            var _tmp = {
                                                dev_id: updateData[i].FBSDeviceId
                                            };
                                            // 添加到设备升级列表中
                                            updateList.push(_tmp);
                                        }
                                        // 关闭弹出面板
                                        layer.close(index);
                                        // 升级设备
                                        updateBTSDevice(updateList);
                                        //console.log(updateList);
                                    }
                                });
                            }else {
                                if(temp.length == 1) {
                                    layer.msg('当前设备无法升级!');
                                }else {
                                    layer.msg('暂无可升级的设备!');
                                }
                            }
                        },
                        error: function() {
                            layer.msg('校验可升级设备失败!');
                        }
                    });
                }
                // 从返回的可升级的设备中剔除正在升级的设备
                function checkUpdating(rsData, all) {
                    var rs = [];
                    // 遍历all
                    for(var i=0; i<all.length; i++) {
                        var _all = all[i];
                        var isError = true;
                        for(var k=0; k<rsData.length; k++) {
                            var _rsData = rsData[k];
                            // 判断当前设备是否正在升级
                            if(_all.updatestatusnum == 1) {
                                isError = false;
                            }
                        }
                        // 根据isError判读是否是不可添加的机房
                        if(isError) {
                            rs.push(_all);
                        }
                    }
                    return rs;
                }
                // 获取无法升级的设备
                function checkErrorUpdate(rsData, all) {
                    var rs = [];
                    // 遍历all
                    for(var i=0; i<all.length; i++) {
                        var _all = all[i];
                        var isError = true;
                        for(var k=0; k<rsData.length; k++) {
                            var _rsData = rsData[k];
                            // 判断当前设备是否正在升级
                            if(_all.updatestatusnum != 1) {
                                if(_all.fbsid == _rsData.FBSDeviceId) {
                                    isError = false;
                                }
                            }
                        }
                        // 根据isError判读是否是不可添加的机房
                        if(isError) {
                            rs.push(_all);
                        }
                    }
                    return rs;
                }
                //批量升级BTS设备
                function updateBTSDevice(temp){
                    $.ajax({
                        type: "post",
                        url: "Fbs9100s_dfu_stateAction_action_updatePro",
                        async:true,
                        dataType:'json',
                        data:"json = "+JSON.stringify(temp),
                        success: function(data){
                            var rs = JSON.parse(data.result);
                            console.info(rs);
                            if(rs.code == 1){
                                layer.msg("启动远程升级");
                            }else{
                                layer.msg("启动远程失败");
                            }
                        }
                    });
                }
                // 查询正在升级的设备
                searchUpgrades();
                // 查询正在升级的设备
                function searchUpgrades() {
                    $.ajax({
                        type: "post",
                        url: "Fbs9100s_dfu_stateAction_action_searchAll",
                        async:true,
                        dataType:'json',
                        data:null,
                        success: function(result){
                            var rs = JSON.parse(result.result);
                            // 遍历查询结果
                            if(rs.code == 1) {
                                var data = rs.data;
                                //console.log(data);
                                var allData = tOptions.data;
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    var tmp = {};
                                    tmp.stationid = _data.stationId;            // 机房id
                                    tmp.stationname = _data.stationName;        // 机房名称
                                    tmp.fbsid = _data.dev_id;                    // 设备id
                                    tmp.fbsname = _data.fBSDeviceName;            // 设备名称
                                    tmp.updatestatusnum = 1;                    // 0 等待升级 1正在升级
                                    tmp.updatestatus = '正在升级';                    // 升级状态
                                    tmp.status = _data.dfu_wr_stat == 1?'写':_data.dfu_wr_stat == 2?'读':_data.dfu_wr_stat == 3?'完成':'';                            // 读写状态
                                    tmp.datapackage = _data.dfu_data_blocknum;                        // 当前数据包
                                    tmp.isNewAdd = false;
                                    allData.push(tmp);
                                }
                                // 更新表格
                                table.render(tOptions);
                            }
                        }
                    });
                }
            });
        </script>
    </body>
</html>
gx_tieta/WebRoot/iframe/batt-station-update.html
New file
@@ -0,0 +1,110 @@
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>机房信息</title>
    <link rel="stylesheet" href="../css/basic.css">
    <link rel="stylesheet" href="../src/css/layui.css">
    <link rel="stylesheet" href="../css/common.css">
    <link rel="stylesheet" href="../pages/css/mylayui.css">
    <style>
        body.homeinfo-tab .layui-tab {
            margin: 0;
        }
        body.homeinfo-tab .layui-tab-card{
            border: none;
        }
        body.homeinfo-tab .layui-tab-content {
            padding: 0;
        }
    </style>
</head>
<body class="homeinfo-tab">
    <div class="abs">
        <div class="layui-tab layui-tab-card" lay-filter="homeInfoTab" id="homeInfoTab" style="height: 100%;">
            <ul class="layui-tab-title">
                <li class="layui-this">可升级设备<span class="layui-badge layui-bg-blue" id="updateBadge">0</span></li>
                <li>不可升级设备<span class="layui-badge" id="errorUpdateBadge">0</span></li>
            </ul>
            <div class="layui-tab-content abs abs-top41 abs-overflow-y">
                <div class="layui-tab-item layui-show" id="update"></div>
                <div class="layui-tab-item" id="errorUpdate"></div>
            </div>
        </div>
    </div>
    <script type="text/html" id="updateTpl">
        <table class="hdw-tbl">
            <thead>
                <tr>
                    <th style="width:30%">设备ID</th>
                    <th>机房名称</th>
                </tr>
            </thead>
            <tbody>
                {{# layui.each(d, function(index, item){ }}
                    <tr>
                        <td>{{ item.FBSDeviceId }}</td>
                        <td>{{ item.StationName }}</td>
                    </tr>
                {{# }); }}
            </tbody>
        </table>
    </script>
    <script type="text/html" id="errorUpdateTpl">
        {{# if(d.length == 0){ }}
            <div style="text-align: center; font-size:18px;margin-top: 8px">暂无数据</div>
        {{# }else{ }}
            <table class="hdw-tbl">
                <thead>
                    <tr>
                        <th style="width:30%">设备ID</th>
                        <th>机房名称</th>
                    </tr>
                </thead>
                <tbody>
                    {{# layui.each(d, function(index, item){ }}
                        <tr>
                            <td>{{ item.fbsid }}</td>
                            <td>{{ item.stationname }}</td>
                        </tr>
                    {{# }); }}
                </tbody>
            </table>
        {{# } }}
    </script>
    <script src="../js/jquery-1.8.3.js"></script>
    <script src="../src/layui.js"></script>
    <script>
        layui.use(['element', 'laytpl'], function() {
            var element = layui.element;
            var laytpl = layui.laytpl;
            var updateTpl = $('#updateTpl').html();
            var errorUpdateTpl = $('#errorUpdateTpl').html();
            // 获取数据
            var updateData = parent.$('#updateIframeData').data('update');
            var errorUpdateData = parent.$('#updateIframeData').data('errorUpdate');
            updateData = updateData?updateData: [];
            errorUpdateData= errorUpdateData?errorUpdateData:[];
            // 更新徽标
            $('#updateBadge').text(updateData.length);
            $('#errorUpdateBadge').text(errorUpdateData.length);
            // console.log(updateData);
            // 渲染可升级设备的表格
            laytpl(updateTpl).render(updateData, function(html) {
                $('#update').html(html);
            });
            // 渲染不可升级设备的表格
            laytpl(errorUpdateTpl).render(errorUpdateData, function(html) {
                $('#errorUpdate').html(html);
            });
        });
    </script>
</body>
</html>
gx_tieta/WebRoot/pages/css/mylayui.css
@@ -65,6 +65,12 @@
    color: #FFFFFF;
}
.layui-tbl-filter {
    position: absolute;
    top: 8px;
    left: 8px;
    z-index: 891;
}
/*分页样式*/
#paging{
    -webkit-user-select: none;