whyclj
2018-12-19 04bc2d9b97c61ea79017d05f81053e719742f82f
gx_tieta/WebRoot/iframe/batt-info-edit.html
@@ -27,7 +27,8 @@
                <div class="layui-row layui-col-space8" id="battInfo"></div>
                <div style="height: 8px;"></div>
                <div class="layui-row">
                    <div class="layui-col-xs3 layui-col-xs-offset9 layui-col-sm3 layui-col-sm-offset9 layui-col-md2 layui-col-md-offset10 layui-col-lg2 layui-col-lg-offset10">
                    <div class="layui-col-xs5 layui-col-xs-offset7 layui-col-sm5 layui-col-sm-offset7 layui-col-md3 layui-col-md-offset9 layui-col-lg3 layui-col-lg-offset9">
                        <button class="layui-btn layui-btn-sm layui-btn-normal" id="addGroup">添加电池组</button>
                        <button class="layui-btn layui-btn-sm layui-btn-normal" lay-submit="" lay-filter="enEidt">确认编辑</button>
                        <button class="layui-btn layui-btn-sm layui-btn-normal" id="closePage">关闭面板</button>
                    </div>
@@ -126,33 +127,9 @@
        </div>
        <div class="layui-col-xs6 layui-col-sm6 layui-col-md4 layui-col-lg3">
            <div class="layui-block">
                <label class="layui-form-label">设备名称</label>
                <label class="layui-form-label">FBS设备名称</label>
                <div class="layui-input-block">
                    <input type="text" name="FBSDeviceName" lay-verify="required" id="devname" autocomplete="off" class="layui-input" value="{{= d.FBSDeviceName }}">
                </div>
            </div>
        </div>
        <div class="layui-col-xs6 layui-col-sm6 layui-col-md4 layui-col-lg3">
            <div class="layui-block">
                <label class="layui-form-label">设备索引<span class="red">*</span></label>
                <div class="layui-input-block">
                    <select name="GroupIndexInFBSDevice" id="devindex">
                        {{# layui.each([0,1,2,3], function(index) { }};
                            {{# if(index == d.GroupIndexInFBSDevice) { }}
                                <option value="{{ index }}" selected>{{ index }}</option>
                            {{# }else{ }}
                                <option value="{{ index }}">{{ index }}</option>
                            {{# } }}
                        {{# });  }}
                    </select>
                </div>
            </div>
        </div>
        <div class="layui-col-xs6 layui-col-sm6 layui-col-md4 layui-col-lg3">
            <div class="layui-block">
                <label class="layui-form-label">电池组ID</label>
                <div class="layui-input-block">
                    <input type="text" name="BattGroupId" lay-verify="required|number" id="groupid" disabled="" autocomplete="off" class="layui-input  layui-bg-gray" value="{{= d.BattGroupId }}">
                </div>
            </div>
        </div>
@@ -161,14 +138,6 @@
                <label class="layui-form-label">电池组编号</label>
                <div class="layui-input-block">
                    <input type="text" name="BattGroupNum" lay-verify="required|number" id="groupnum" disabled="" autocomplete="off" class="layui-input layui-bg-gray" value="{{= d.BattGroupNum }}">
                </div>
            </div>
        </div>
        <div class="layui-col-xs6 layui-col-sm6 layui-col-md4 layui-col-lg3">
            <div class="layui-block">
                <label class="layui-form-label">电池组名称</label>
                <div class="layui-input-block">
                    <input type="text" name="BattGroupName" lay-verify="required" id="groupname" autocomplete="off" class="layui-input" value="{{= d.BattGroupName }}">
                </div>
            </div>
        </div>
@@ -264,7 +233,7 @@
            <div class="layui-block">
                <label class="layui-form-label">基站手机号码<span class="red">*</span></label>
                <div class="layui-input-block">
                    <input type="text" name="station_phone" lay-verify="required|phone" id="stationphone" autocomplete="off" class="layui-input" value="{{= d.station_phone }}">
                    <input type="text" name="station_phone" lay-verify="required|number" id="stationphone" autocomplete="off" class="layui-input" value="{{= d.station_phone }}">
                </div>
            </div>
        </div>
@@ -333,7 +302,112 @@
                </div>
             </div>
        </div>
      <div class="layui-row layui-col-space8" id="battGroupInfo">
      {{# layui.each(d.btsinfo, function(index, item) { }}
         <div class="layui-col-lg6 batt-group-item">
            <div class="layui-card">
               <div class="layui-card-header layui-bg-gray">{{item.BattGroupName}}</div>
               <div class="layui-card-body">
                  <div class="layui-row layui-col-space8">
                     <div class="layui-col-lg6">
                        <div class="layui-block">
                               <label class="layui-form-label">设备索引<span class="red">*</span></label>
                               <div class="layui-input-block">
                              <select name="group{{item.GroupIndexInFBSDevice}}.index">
                                 {{# layui.each([0,1,2,3], function(k) { }}
                                           {{# if(item.GroupIndexInFBSDevice == k) { }}
                                               <option value="{{ k }}" selected>{{ k }}</option>
                                           {{# }else{ }}
                                               <option value="{{ k }}">{{ k }}</option>
                                           {{# } }}
                                       {{# });  }}
                              </select>
                               </div>
                            </div>
                     </div>
                     <div class="layui-col-lg6">
                        <div class="layui-block">
                               <label class="layui-form-label">电池组ID</label>
                               <div class="layui-input-block">
                                   <input type="text" name="group{{item.GroupIndexInFBSDevice}}.id" lay-verify="required" disabled="" autocomplete="off" class="layui-input layui-bg-gray battid" value="{{item.BattGroupId}}">
                               </div>
                            </div>
                     </div>
                     <div class="layui-col-lg6">
                        <div class="layui-block">
                               <label class="layui-form-label">电池组名称</label>
                               <div class="layui-input-block">
                                   <input type="text" name="group{{item.GroupIndexInFBSDevice}}.name" lay-verify="required" autocomplete="off" class="layui-input" value="{{item.BattGroupName}}">
                               </div>
                            </div>
                     </div>
                  </div>
               </div>
            </div>
           </div>
      {{# }); }}
      </div>
    </script>
    <script type="text/html" id="addBattGroupTpl">
      {{# layui.each(d, function(index, item) { }}
         <div class="layui-col-lg6 batt-group-item">
            <div class="layui-card">
               <div class="layui-card-header layui-bg-gray">{{item.name}}</div>
                  <div class="layui-card-body">
                     <div class="layui-row layui-col-space8">
                        <div class="layui-col-lg6">
                           <div class="layui-block">
                                  <label class="layui-form-label">设备索引<span class="red">*</span></label>
                              <div class="layui-input-block">
                                 <select name="group{{item.num}}.index">
                                    {{# layui.each([0,1,2,3], function(k) { }}
                                              {{# if(item.num == k) { }}
                                                  <option value="{{ k }}" selected>{{ k }}</option>
                                              {{# }else{ }}
                                                  <option value="{{ k }}">{{ k }}</option>
                                              {{# } }}
                                          {{# });  }}
                                 </select>
                                  </div>
                           </div>
                        </div>
                        <div class="layui-col-lg6">
                           <div class="layui-block">
                                  <label class="layui-form-label">电池组ID</label>
                                  <div class="layui-input-block">
                                      <input type="text" name="group{{item.num}}.id" lay-verify="required" disabled="" autocomplete="off" class="layui-input layui-bg-gray battid" value="{{item.id}}">
                                  </div>
                               </div>
                        </div>
                        <div class="layui-col-lg6">
                           <div class="layui-block">
                                  <label class="layui-form-label">电池组名称</label>
                                  <div class="layui-input-block">
                                      <input type="text" name="group{{item.num}}.name" lay-verify="required" autocomplete="off" class="layui-input" value="{{item.name}}">
                                  </div>
                               </div>
                        </div>
                     </div>
                  </div>
               </div>
            </div>
         </div>
      {{# }); }}
   </script>
   <script type="text/html" id="battGroupNum">
      <div style="width:300px; height: 40px;">
         <div style="margin-top: 20px;margin-left: 8px; margin-right: 8px; text-algin: center;">
            <span>新建&nbsp;</span>
            <select id="addGroupnum" style="width: 190px;height: 26px; border: 1px solid #ccc">
                {{# layui.each(d.num, function(index, item) { }}
                   <option value="{{ item }}">{{ item }}</option>
                {{# }); }}
            </select>个电池组
            <br><br>
         </div>
      </div>
   </script>
    <script type="text/javascript" src="../src/layui.js"></script>
    <script  type="text/javascript">
        layui.use(['form', 'laytpl', 'jquery', 'element', 'laydate'], function() {
@@ -345,7 +419,8 @@
            var battInfoTpl = $('#battInfoTpl').html();
         var editInfo = parent.$('#iframeEdit').data('data');
         //console.log(editInfo);
         editInfo.FbsDeviceIp = getDevIp(editInfo.FBSDeviceId);
         // console.log(editInfo);
            var data = {
                StationId: '4011100'
                ,StationName1: '广西省'
@@ -398,8 +473,6 @@
                    elem: '#usedate'
                    ,format: 'yyyy-MM-dd HH:mm:ss'
                });
            });
            
            // 验证信息
@@ -428,8 +501,26 @@
               $('#fbsip').val(getDevIp(val));
            });
            
            // 根据标称电压修改设置浮充电压阀值/设置离线电压阀值
            $('#battInfo').on('input propertychange', '#monvol', setFloatAndoutLine);
            // 根据单体数量修改设置浮充电压阀值/设置离线电压阀值
            $('#battInfo').on('input propertychange', '#moncount', setFloatAndoutLine);
            // 设置浮充电压阀值/设置离线电压阀值
            function setFloatAndoutLine() {
               var vol = $('#monvol').val();
               var monnum = $('#moncount').val();
               var chargeVol = (vol*1.117*monnum).toFixed(1);      // 浮充电压阀值
            var outlineVol = (vol*1.073*monnum).toFixed(1);      // 离线电压阀值
            $('#floatVolLevel').val(chargeVol);      // 浮充电压阀值
            $('#offlineVolLevel').val(outlineVol);   // 离线电压阀值
            }
            // 提交内容
            form.on('submit(enEidt)', function(data) {
               // console.log(data);
               layer.confirm('是否确认修改', {icon: 3, title:'提示'}, function(index){
                   var _data = data.field;
                   var province = _data.StationName1;      // 省
@@ -437,8 +528,9 @@
                   var home = _data.StationName3;         // 机房名称
                   var bts = _data.StationName4;         // 设备名称
                   _data.StationName = province+'-'+city+'-'+home+'-'+bts;
                   var temp = [_data];
                   //console.log(temp);
                   var battNum = getBattGroupNum();
                   var temp = analysisData(battNum, _data);
                   // console.log(temp);
                   // 更新数据
                   updBatt(temp);
               });
@@ -488,6 +580,7 @@
                     layer.msg('修改成功!3秒后面板自动关闭');
                     setTimeout(function() {
                        parent.$('#iframeClose').click();
                        parent.$('#paging .search').click();
                     }, 3000);
                  }else{
                     layer.msg('修改失败!');
@@ -501,6 +594,131 @@
                 }
              });
         }
         // 解析添加的数据
         function analysisData(btsinfo, data) {
            //console.log(arr);
            var rs = [];
            for(var i=0; i<btsinfo; i++) {
               var temp = {};
               var _num = i;
               var _index = 'group'+_num+'.index';
               var _name = 'group'+_num+'.name';
               var _id = 'group'+_num+'.id';
               Object.keys(data).forEach(function(key) {
                  if(checkKeyNotVal(key)) {
                     if(key == _index) {
                        temp.GroupIndexInFBSDevice = data[key];
                     }else if(key == _name){
                        temp.BattGroupName = data[key];
                     }else if(key == _id) {
                        temp.BattGroupId = data[key];
                     }
                  }else {
                     temp[key] = data[key];
                  }
               });
               rs.push(temp);
            }
            return rs;
         }
         // 检测当前属性是否为废属性
         function checkKeyNotVal(key) {
            var patt = /^group[0-9]{1}\./;
            return patt.test(key);
         }
         var battGroupNum = $('#battGroupNum').html();
         // 点击添加电池组按钮
         $('#addGroup').click(function() {
            getPreMaxBattGroupId();
            var num = getBattGroupNum();
            if(num>=4) {
               layer.msg('最多4组电池组');
               return;
            }
            var addNum = 4-num;
            //console.log(typeof addNum);
            var tmp = {num:[]};
            // 构造生成添加电池个数的数据
            for(var i=0; i<addNum; i++) {
               tmp.num.push(i+1);
            }
            //console.log(tmp);
             // 渲染内容
               laytpl(battGroupNum).render(tmp, function(html) {
                  //console.log(html);
                  // 打开面板设置新建电池组个数
               layer.open({
                  type: 1
                  ,title: '选择新建电池组个数'
                  ,content: html
                  ,area: ['335px', '165px']
                  ,fixed: true
                  ,resize: false
                  ,btn:['确定', '取消']
                  ,yes: function(index) {
                     layer.close(index);
                     var _num = $('#addGroupnum').val();
                     var _min = getBattGroupNum();
                     getMaxBattGroupId(_min, _num);      // 获取最大的电池组ID并生成指定的数据格式
                  }
               });
               });
         });
         // 获取最大的电池组数
         function getBattGroupNum() {
            var num = $('#battGroupInfo .batt-group-item').length;
            return num;
         }
         // 获取当前最大的电池组id
         function getPreMaxBattGroupId(battid) {
            var _maxid = $('#battGroupInfo .battid').eq(-1).val();      // 当前面板中最大的电池组id
            var rsMaxId = battid>_maxid?battid:Number(_maxid)+1;      // 当前数据库最大的电池组id
            return rsMaxId;                                    // 返回最大的电池组id
         }
         // 获取电池最大的id并生成指定格式的数据
         var addBattGroupTpl = $('#addBattGroupTpl').html();
         function getMaxBattGroupId(min, num) {
            var load = layer.load(1);   // 添加等待框
            // 请求后台获取最大电池组的id
            $.ajax({
               type: 'post'
               ,async: true
               ,url: "BattInfAction!searchMaxBattgroupId"
               ,data: null
               ,dataType: 'json'
               ,success: function(res) {
                  var rs = JSON.parse(res.result);
                  var battid = getPreMaxBattGroupId(rs.data);
                  var temp = [];
                  for(var i=0; i<num; i++) {
                     var _temp = {};
                     _temp.num = i+min;
                     _temp.id = i+battid;
                     _temp.name = '电池组'+(_temp.num+1);
                     temp.push(_temp);
                  }
                  laytpl(addBattGroupTpl).render(temp, function(html) {
                     var $html = $(html);
                     $('#battGroupInfo').append($html);
                     form.render();
                  });
               }
               ,complete: function() {
                  layer.close(load);      // 关闭等待框
               }
            });
         }
        });
    </script>
</body>