| | |
| | | <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;
|
| | |
| | | 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>
|
| | |
| | | </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 { }}
|
| | |
| | | <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; // 获取表单模块
|
| | |
| | | var layuiTbl = new LayuiTbl(tOptions, layui, laytpl, table.cache.pageTbl);
|
| | |
|
| | | // 点击添加电池组
|
| | | $('#setCurrIframe').data('setCurr', []);
|
| | | $('#batchAdd').click(function() {
|
| | | var structData = structAddData();
|
| | | // 判断是否选择要添加的内容
|
| | |
| | | layer.msg(structData.msg);
|
| | | return;
|
| | | }
|
| | | |
| | | $('#setCurrIframe').data('setCurr', []);
|
| | | // 弹出设置选择筛选条件
|
| | | search(structData);
|
| | | });
|
| | |
| | | }
|
| | |
|
| | | // 点击批量设置放电电流参数
|
| | | var pageIframe = "";
|
| | | $('#batchSetCurr').click(function() {
|
| | | var checkStatus = table.checkStatus('pageTbl');
|
| | | var data = checkStatus.data;
|
| | |
| | | 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>
|