New file |
| | |
| | | <%@ 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> |