hdw
2018-12-28 52b9fa3058bf7466d5a9d13d8272089cf67d8dee
提交内容
1个文件已添加
1个文件已修改
517 ■■■■■ 已修改文件
gx_tieta/WebRoot/batch-set-curr.jsp 453 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/iframe/setcurr.html 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
gx_tieta/WebRoot/batch-set-curr.jsp
@@ -20,6 +20,8 @@
        <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">
        <link rel="stylesheet" type="text/css" href="css/popup-tbl.css">
        <link rel="stylesheet" type="text/css" href="css/whyc-ui.css">
        <style>
            .dataTypeCont {
                width: 160px;
@@ -29,6 +31,18 @@
                min-width: 70px;
                margin-top: 4px;
            }
            .error-img {
                visibility: hidden;
                font-size: 20px;
                color: #FF0000;
            }
            .error-data {
                visibility:visible !important;
            }
            input.error-data {
                outline: none !important;
                border: 1px solid #FF0000 !important;
            }
        </style>
    </head>
     <body>
@@ -144,15 +158,92 @@
                        </div>
                        <button class="layui-btn layui-btn-sm mrl8" id="batchAdd"><i class="fa fa-plus mrr8"></i>添加电池组</button>
                        <button class="layui-btn layui-btn-sm" id="batchSetCurr">批量设置放电参数</button>
                        <button class="layui-btn layui-btn-sm" id="startTest">批量启动测试</button>
                        <button class="layui-btn layui-btn-sm" id="lookSetCurr">查询放电参数</button>
                    </div>
                </div>
                <!-- 表格内容 -->
                <table id="pageTbl" lay-filter="pageTbl"></table>
            </div>
        </div>
        <!-- bts设备弹出框 -->
        <div class="popup" id="bts">
            <div class="popup-title"><span>BTS设备<s:text name="Discharging"/><s:text name="Parameter_Set"/><!-- 放电参数设置 --></span> <a href="javascript:;" class="close">X</a></div>
            <div class="popup-content">
                <div class="popup-tbl">
                    <table>
                        <tbody>
                            <tr>
                                <th>测试类型<!-- 放电类型 --></th>
                                <th><s:text name="Discharging"/><s:text name="Time_long"/><!-- 放电时长 -->(0~5940<s:text name="Minutes"/>)</th>
                            </tr>
                            <tr>
                                <td>
                                    <select id="discharge_type">
                                        <option value="37"><s:text name="Capacity"/><s:text name="Test"/><!-- 容量测试 --></option>
                                        <option value="50"><s:text name="Internal_resistance"/><s:text name="Test"/><!-- 内阻测试 --></option>
                                    </select>
                                </td>
                                <td><input id="distime" type="text" value="600"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                            </tr>
                            <tr>
                                <th><s:text name="Discharging"/><s:text name="Hourly_rate"/>(0~300%)<!-- 放电小时率 --></th>
                                <th>放电容量百分比(0~300%)</th>
                            </tr>
                            <tr>
                                <td><input id="hourrate" type="text" value="10"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                                <td><input id="disCapPer" type="text" value="60"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                            </tr>
                            <tr>
                                <th>单体电压下限百分比(0~300%)</th>
                                <th>组端电压下限百分比(0~300%)</th>
                            </tr>
                            <tr>
                                <td><input id="monVolLowPer" type="text" value="90"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                                <td><input id="groupVolLowPer" type="text" value="90"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                            </tr>
                            <tr>
                                <th>单体下限数量百分比(0~100%)</th>
                                <th>充电电流百分比(0~300%)</th>
                            </tr>
                            <tr>
                                <td><input id="monNumLow" type="text" value="25"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                                <td><input id="chargeCurrPer" type="text" value="10"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                            </tr>
                            <tr>
                                <th><s:text name="Booster"/><s:text name="Upper_limit"/><!-- 升压上限 -->(V)</th>
                                <th><s:text name="On-line_voltage"/><s:text name="Low"/><s:text name="Dispose"/><!-- 在线电压低处理 --></th>
                            </tr>
                            <tr>
                                <td><input id="DCVolHighLimit" type="text" value="0"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                                <td>
                                    <select id="OnlineVolLowAction">
                                        <option value="0"><s:text name="Stop"/><s:text name="Test"/><!-- 停止测试 --></option>
                                        <option value="1"><s:text name="Continue"/><s:text name="Test"/><!-- 继续测试 --></option>
                                    </select>
                                </td>
                            </tr>
                            <tr>
                                <th>温度上限(℃)</th>
                            </tr>
                            <tr>
                                <td><input id="TempUpHighLimit" type="text" value="40"><i class="fa fa-frown-o error-img" title="数据格式错误"></i></td>
                            </tr>
                        </tbody>
                    </table>
                </div>
            </div>
            <div class="popup-footer">
                <input type="button" class="mrr8" name="" id="btn_set" value="参数设置" >                    <!-- 参数设置 -->
            </div>
        </div>
        <!-- 存储set-curr.html的信息 -->
        <div id="setCurrIframe"></div>
        <div id="setCurrBtn"></div>
        <script type="text/html" id="setStatus">
            {{# if(d.setCurr == 1){ }}
                <button class="layui-btn layui-btn-sm layui-btn-warm">设置放电参数成功</button>
                <button class="layui-btn layui-btn-sm">设置放电参数成功</button>
            {{# }else if(d.setCurr == 2){ }}
                <button class="layui-btn layui-btn-sm layui-btn-danger">设置放电参数失败</button>
            {{# }else { }}
@@ -162,9 +253,26 @@
        <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="js/popup.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="js/whyc-jqueryui.js"></script>
        <script type="text/javascript" src="pages/js/common.js"></script>
        <script type="text/javascript">
            var BTS_popup = new Popup($('#bts'));
            // 充放电弹出框设置
            $(function() {
                // 初始化bts弹出框
                $('#bts').find('.close').bind('click', function() {
                    BTS_popup.hidePopup();    // 隐藏bts弹出框和遮罩层
                });
                // 窗口大小改变
                $(window).resize(function() {
                    BTS_popup.hidePopup();    // 隐藏bts弹出框和遮罩层
                });
            });
            layui.use(['form', 'table', 'layer', 'element', 'laytpl'], function() {
                var table = layui.table;        // 获取表格模块
                var form = layui.form;            // 获取表单模块
@@ -430,6 +538,7 @@
                var layuiTbl = new LayuiTbl(tOptions, layui, laytpl, table.cache.pageTbl);
                
                // 点击添加电池组
                $('#setCurrIframe').data('setCurr', []);
                $('#batchAdd').click(function() {
                    var structData = structAddData();
                    // 判断是否选择要添加的内容
@@ -437,7 +546,7 @@
                        layer.msg(structData.msg);
                        return;
                    }
                    $('#setCurrIframe').data('setCurr', []);
                    // 弹出设置选择筛选条件
                    search(structData);
                });
@@ -512,6 +621,7 @@
                }
                
                // 点击批量设置放电电流参数
                var pageIframe = "";
                $('#batchSetCurr').click(function() {
                    var checkStatus = table.checkStatus('pageTbl');
                    var data = checkStatus.data;
@@ -519,16 +629,341 @@
                        layer.msg('请选择要设置的机房');
                        return;
                    }
                    // console.log(data);
                    // 设置放电参数
                    getDisCurrParam(data);
                    setBtsPopup();            // 设置BTS面板的初始值
                    BTS_popup.showPopup();    // 显示BTS面板
                });
                var btsCmd = GLOBAL.CMD.BTS;        // 获取BTS的CMD
                var setParamCmd = btsCmd.setDischargeParm;    // 设置参数的cmd
                var startTest = btsCmd.start;
                // 点击放电参数设置页面设置按钮
                $('#btn_set').click(function() {
                    if($(this).hasClass('whyc-btn-disabled')) {
                        layer.msg('存在不合法的数据');
                        return;
                    }
                    var checkStatus = table.checkStatus('pageTbl');
                    var data = checkStatus.data;
                    var ratio = getBtsPopup();
                    var currParam = getSetCurrParam(data, ratio);
                    // 判断是否设置机房
                    layer.confirm('是否确认批量设置参数', {icon: 3, title: '系统提示'}, function(index) {
                        layer.close(index);
                        ajaxSetParam(currParam);
                    });
                });
                // 请求设置参数
                function ajaxSetParam(param) {
                    var load = layer.load(1);
                    // 请求后台
                    $.ajax({
                        type: 'post'
                        ,async: true
                        ,url: 'Fbs9100_setparamAction_action_updatePro'
                        ,data: 'json='+JSON.stringify(param)
                        ,dataType: 'json'
                        ,success: function(res) {
                            console.log(res);
                            var rs = JSON.parse(res.result);
                            if(rs.code == 1) {
                                layer.msg('设置完成!');
                                BTS_popup.hidePopup();        // 关闭面板
                                var data = rs.data;
                                console.log(data);
                                var rsList = [];
                                for(var i=0; i<data.length; i++) {
                                    var _data = data[i];
                                    var _temp = {'doThings':''};
                                    if(_data.num==1) {
                                        _temp.setCurr = 1;
                                    }else {
                                        _temp.setCurr = 2;
                                    }
                                    rsList.push(_data);
                                    layuiTbl.updateTr(i, _temp);
                                }
                                $('#setCurrIframe').data('setCurr', rsList);
                            }else {
                                layer.msg('修改失败');
                            }
                        }
                        ,complete: function() {
                            layer.close(load);
                        }
                    });
                }
                // 构造批量设置放电参数的方法
                function getSetCurrParam(data, ratio) {
                    var rs = [];
                    for(var i=0; i<data.length; i++) {
                        var _data = data[i];
                        var disCurr = getDisCurr(_data.MonCapStd, ratio.hourrate);                            // 小时率
                        var chargeCurr = getChargeCurr(_data.MonCapStd, ratio.chargeCurrPer);                // 充电电流
                        var groupVolLow = getGroupVolLow(_data.MonVolStd, _data.MonCount, ratio.groupVolLowPer);        // 组端电压下限
                        var monVolLow = getMonVolLow(_data.MonVolStd, ratio.monVolLowPer);                    // 单体电压下限
                        var monNumLow = getMonNumLow(_data.MonCount, ratio.monNumLow);                        // 单体数量下限
                        var disCap = getDisCap(_data.MonCapStd, ratio.disCapPer);                            // 放电容量
                        var temp= {
                            num: 0
                            ,dev_id: _data.FBSDeviceId            // 设备id
                            ,op_cmd: setParamCmd                //  设置参数命令
                            ,TestCmd: ratio.testType            // 测试类型
                            ,HourRate: ratio.hourrate            // 小时率
                            ,DisCurr: disCurr                    // 放电电流
                            ,DisCap: disCap                        // 放电容量
                            ,DisTime: ratio.distime                // 放电时长
                            ,GroupVol_Low: groupVolLow            // 组端电压下限
                            ,MonomerVol_Low: monVolLow            // 单体电压下限
                            ,MonomerLowCount: monNumLow            // 单体数量下限
                            ,MonomerTmp_High: ratio.TempUpHighLimit        // 温度上限
                            ,OnlineLowAction: ratio.OnlineVolLowAction    // 在线电压低处理
                            ,ChargeCurrSet: chargeCurr            // 充电电流
                            ,DCVolHighLimit: ratio.DCVolHighLimit // 升压上限
                            ,BattGroupNum: _data.MonCount        // 电池个数
                        }
                        rs.push(temp);
                    }
                    return rs;
                }
                // 获取批量设置的参数
                function getBtsPopup() {
                    var temp={
                        num: 0
                        ,testType: $('#discharge_type').val()                 // 测试类型
                        ,distime: $('#distime').val()                        // 放电时长
                        ,hourrate: $('#hourrate').val()                        // 放电小时率
                        ,disCapPer: $('#disCapPer').val()                    // 放电容量百分比
                        ,monVolLowPer: $('#monVolLowPer').val()                // 单体电压下限百分比
                        ,groupVolLowPer: $('#groupVolLowPer').val()         // 组端电压下限百分比
                        ,monNumLow: $('#monNumLow').val()                    // 单体数量百分比
                        ,chargeCurrPer: $('#chargeCurrPer').val()            // 充电电流百分比
                        ,DCVolHighLimit: $('#DCVolHighLimit').val()            // 升压上限
                        ,TempUpHighLimit: $('#TempUpHighLimit').val()        // 温度上限
                        ,OnlineVolLowAction: $('#OnlineVolLowAction').val() // 在线电压低处理
                    };
                    return temp;
                }
                // 获取放电电流(标称容量的*小时率)
                function getDisCurr(monCapStd, ratio) {
                    return monCapStd*ratio/100;
                }
                // 获取组端电压下限(标称单体电压*单体数量*百分比)
                function getGroupVolLow(monVolStd, monCount, ratio) {
                    return monVolStd*monCount*ratio/100;
                }
                // 获取单体电压下限(标称单体电压*百分比)
                function getMonVolLow(monVolStd, ratio) {
                    return monVolStd*ratio/100;
                }
                // 单体数量下限(单体节数*百分比)
                function getMonNumLow(monCount, ratio) {
                    return Math.floor(monCount*ratio/100);
                }
                // 放电容量(标称容量*百分比)
                function getDisCap(monCapStd, ratio) {
                    return monCapStd*ratio/100;
                }
                // 充电电流(标称容量*百分比)
                function getChargeCurr(monCapStd, ratio) {
                    return monCapStd*ratio/100;
                }
                // 放电时长distime
                $('#distime').testVal({
                    pattern: /^[0-9]+$/,
                    regVal: true,
                    min: 0,
                    max: 5940,
                    msg: '取值范围0~5940'
                });
                
                var regs = {
                    pattern: /^[0-9]+$/,
                    regVal: true,
                    min: 0,
                    max: 300,
                    msg: '取值范围0~300'
                };
                
                // 获取放电参数
                function getDisCurrParam(data) {
                    console.log(data);
                    var data = GetHourRate();
                // 小时率
                $('#hourrate').testVal(regs);
                // 放电容量百分比
                $('#disCapPer').testVal(regs);
                // 单体电压下限百分比
                $('#monVolLowPer').testVal(regs);
                // 组端下限百分比
                $('#groupVolLowPer').testVal(regs);
                // 充电电流百分比
                $('#chargeCurrPer').testVal(regs);
                // 单体下限数量
                $('#monNumLow').testVal({
                    pattern: /^[0-9]+$/,
                    regVal: true,
                    min: 0,
                    max: 100,
                    msg: '取值范围0~100'
                });
                // 获取BTS面板的所有文本框
                $('#bts').on('input propertychange', 'input[type=text]', function() {
                    setBTSPopupStatus($(this).attr('id'), $(this).val());
                });
                // 显示已经修改的参数
                $('#lookSetCurr').click(function() {
                    var rsList = $('#setCurrIframe').data('setCurr');
                    if(rsList.length == 0) {
                        layer.msg('暂无查看内容,请先设置放电参数!');
                        return;
                    }
                    // 显示面板
                    layer.open({
                        type: 2
                        ,area: ['1200px', '500px']
                        ,resize: false
                        ,content: 'iframe/setcurr.html'
                    });
                });
                // 启动测试
                $('#startTest').click(function() {
                    var rsList = $('#setCurrIframe').data('setCurr');
                    if(rsList.length == 0) {
                        layer.msg('暂无无法启动,请先设置放电参数!');
                        return;
                    }
                    // 是否确定启动
                    layer.confirm('是否确定启动测试', {icon: 3, title: '系统提示'}, function(index) {
                        var param = getStartTestParam(rsList);
                        // 启动测试
                        ajaxStartTest(param);
                    });
                });
                // 构造启动测试的参数
                function getStartTestParam(param) {
                    for(var i=0; i<param.length; i++) {
                        param[i].op_cmd = startTest;
                        param[i].num = 0;
                    }
                    return param;
                }
                // 启动测试请求
                function ajaxStartTest(param) {
                    var load = layer.load(1)
                    // 请求后台
                    $.ajax({
                        type: 'post'
                        ,async: true
                        ,url: 'Fbs9100_setparamAction_action_updatePro_dis'
                        ,data: 'json='+JSON.stringify(param)
                        ,dataType: 'json'
                        ,success: function(res) {
                            var rs = JSON.parse(res.result);
                            if(rs.code == 1) {
                                var data = rs.data;
                                console.log(data)
                                layer.msg('启动成功');
                            }else {
                                layer.msg('启动失败');
                            }
                        }
                        ,complete: function() {
                            layer.close(load);
                        }
                    });
                }
                // 初始化设置参数的按钮
                var BTSBtn = {
                    disabled: function() {
                        $('#btn_set').addClass('whyc-btn-disabled');    // 设置参数按钮无效
                    },
                    active:function() {
                        $('#btn_set').removeClass('whyc-btn-disabled');    // 设置参数按钮有效
                    }
                };
                // 设置批量设置放电参数面板
                function setBtsPopup() {
                    $('#distime').val(600);                // 放电时长
                    $('#hourrate').val(10);                // 小时率
                    $('#disCapPer').val(60);            // 放电容量百分比
                    $('#monVolLowPer').val(90);            // 单体电压下限百分比
                    $('#groupVolLowPer').val(90);        // 组端电压下限百分比
                    $('#monNumLow').val(25);            // 单体数量百分比
                    $('#chargeCurrPer').val(10);        // 充电电流百分比
                    $('#DCVolHighLimit').val(56.4);        //  升压上限
                    $('#TempUpHighLimit').val(60);        //  温度上限
                    // 初始化面板状态
                    $('#bts').find('input').removeClass('error-data');        // 移除错误提示
                    $('#bts').find('.error-img').removeClass('error-data');    // 移除错误提示
                    BTSBtn.active();
                }
                //根据文本框内容设置61850的按钮状态
                function setBTSPopupStatus(id, val) {
                    var textList = BTS_popup.popup.find('input[type=text]');
                    var selectList = BTS_popup.popup.find('.popup-tbl select');
                    var errorStatus = BTS_popup.popup.data().errorStatus; // 获取是否读取参数失败
                    //console.log(BTS_popup.popup.data().attr);
                    // 读取设备参数失败
                    if(errorStatus) {
                        BTSBtn.disabled();
                        return false;    // 结束函数运行
                    }
                    // 遍历面板下的所有文本框查看是否有错误数据
                    var isDisabled = false;
                    textList.each(function() {
                        if($(this).hasClass('error-data')) {
                            isDisabled = true;
                        }
                    });
                    // 存在错误的数据
                    if(isDisabled) {
                        BTSBtn.disabled();
                        return false;    // 结束函数运行
                    }else {
                        BTSBtn.active();
                    }
                }
            });
        </script>
gx_tieta/WebRoot/iframe/setcurr.html
New file
@@ -0,0 +1,64 @@
<!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="../src/css/layui.css">
    <link rel="stylesheet" type="text/css" href="../pages/css/mylayui.css">
</head>
<body>
    <table id="pageTbl" lay-filter="pageTbl"></table>
    <script type="text/javascript" src="../js/jquery-1.8.3.js"></script>
    <script type="text/javascript" src="../js/base.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">
        layui.use(['form', 'laytpl', 'jquery', 'element', 'laydate', 'table'], function() {
            var form = layui.form;
            var laytpl = layui.laytpl;
            var $ = layui.jquery;
            var element = layui.element;
            var laydate = layui.laydate;
            var table = layui.table;
            var setCurr = parent.$('#setCurrIframe').data('setCurr');
            console.log(setCurr);
            // 表格模块
            var tOptions = {
                elem: '#pageTbl'
                ,toolbar: false
                ,defaultToolbar: []
                ,cellMinWidth: 80
                ,cols: [[
                    {field:'dev_id', title:'设备ID', align:'center', width: 140}
                    ,{field:'BattGroupNum', title:'单体数量', align:'center', width: 140}
                    ,{field:'HourRate', title:'放电小时率', align:'center', width: 160}
                    ,{field:'DisCurr', title:'放电电流', align:'center', width: 160}
                    ,{field:'DisCap', title:'放电电容', align:'center', width: 160}
                    ,{field:'DisTime', title:'放电时长', align:'center', width: 160}
                    ,{field:'GroupVol_Low', title:'组端电压下限', align:'center', width: 220}
                    ,{field:'MonomerVol_Low', title:'单体电压下限', align:'center', width: 220}
                    ,{field:'MonomerLowCount', title:'单体数量下限', align:'center', width: 220}
                    ,{field:'MonomerTmp_High', title:'温度上限', align:'center', width: 140}
                    ,{field:'OnlineLowAction', title:'在线电压低处理', align:'center', width: 240}
                    ,{field:'ChargeCurrSet', title:'充电电流', align:'center', width: 140}
                    ,{field:'DCVolHighLimit', title:'升压上限', align:'center', width: 140}
                ]]
                ,data: []
                ,limit: 20
                ,page: true
                ,height: 'full-11'
            };
            for(var i=0; i<setCurr.length; i++) {
                tOptions.data.push(setCurr[i]);
            }
            // 渲染表格
            table.render(tOptions);
        });
    </script>
</body>
</html>