From 2fe250ece8de95b3f70172fe5b45793ab6a3084a Mon Sep 17 00:00:00 2001 From: D:/workspace/chenjingjing/git/gx_tieta/gx_tieta/.gitignore <chenjingjing@LAPTOP-E51P2139> Date: 星期五, 18 一月 2019 17:30:50 +0800 Subject: [PATCH] 未审批可更改 --- gx_tieta/WebRoot/batt-station-update1.jsp | 266 ++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 210 insertions(+), 56 deletions(-) diff --git a/gx_tieta/WebRoot/batt-station-update1.jsp b/gx_tieta/WebRoot/batt-station-update1.jsp index da68f44..a2d5656 100644 --- a/gx_tieta/WebRoot/batt-station-update1.jsp +++ b/gx_tieta/WebRoot/batt-station-update1.jsp @@ -15,7 +15,7 @@ <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> + <title>BTS璁惧鍗囩骇</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"> @@ -130,7 +130,14 @@ <!-- 鏁翠綋鐏拌壊閬僵灞� --> <div id="allShade"></div> <script type="text/html" id="barDemo"> - <a class="layui-btn layui-btn-xs" lay-event="update">鍗囩骇</a> + {{# if(d.updatestatusnum != 1){ }} + <a class="layui-btn layui-btn-xs" lay-event="update">鍗囩骇</a> + {{# } }} + </script> + <script type="text/html" id="upProgress"> + <div class="layui-progress layui-progress-big" lay-showpercent="true" lay-filter="upload{{d.fbsid}}" style="margin-top:6px"> + <div class="layui-progress-bar" lay-percent="0%"></div> + </div> </script> <script type="text/javascript" src="js/jquery-1.8.3.js"></script> <script type="text/javascript" src="js/echarts.js"></script> @@ -143,6 +150,28 @@ var table = layui.table; // 鑾峰彇琛ㄦ牸妯″潡 var form = layui.form; // 鑾峰彇琛ㄥ崟妯″潡 var layer = layui.layer; // 鑾峰彇寮瑰嚭妗嗘ā鍧� + var element = layui.element; // 鑾峰彇鍏冪礌鎿嶄綔妯″潡 + + // 璁剧疆妫�娴嬫枃浠跺悕寮瑰嚭妗嗙殑content + var cFilenameContent = '<div style="width:300px; height: 110px;"><div style="margin-top: 20px;margin-left: 8px; margin-right: 8px; text-algin: center;">'+ + '<span>閫夋嫨鏂囦欢鍚嶏細</span>'+ + '<select id="equipeTypeSel" style="width: 200px;height: 26px; border: 1px solid #ccc">'+ + '<option value="avr_dfu.uc3">avr_dfu.uc3</option>'+ + '<option value="E51_DFU.SM5">E51_DFU.SM5</option>'+ + '</select><br><br>'+ + '<span>绯� 缁� 绫� 鍨嬶細</span>'+ + '<select id="sysType" style="width: 200px;height: 26px; border: 1px solid #ccc">'+ + '<option value="12">1U</option>'+ + '<option value="2">2U</option>'+ + '</select><br><br>'+ + '<span>杈撳叆鐗堟湰鍙凤細</span>'+ + '<input type="text" id="newestVer" style="width: 200px;height: 24px; border: 1px solid #ccc">'+ + '</div></div>'; + + var cVerContent = '<div style="width:300px; height: 50px;"><div style="margin-top: 20px;margin-left: 8px; margin-right: 8px; text-algin: center;">'+ + '<span>杈撳叆鐗堟湰鍙凤細</span>'+ + '<input type="text" id="newestVer" style="width: 200px;height: 24px; border: 1px solid #ccc">'+ + '</div></div>'; var isNewLoad = true; var pre_province = getQueryString('province'); @@ -372,9 +401,11 @@ ,{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: 'version', title: '鐗堟湰鍙�', align: 'center'} + ,{field:'filename', title:'鍗囩骇鏂囦欢鍚�', align:'center'} ,{field:'status', title:'璇诲啓鐘舵��', align:'center'} + ,{field:'progress', title:'璇�/鍐欒繘搴�', align: 'center', templet:'#upProgress'} ,{field:'datapackage', title:'褰撳墠鏁版嵁鍖�', align:'center'} ,{fixed: 'right', title:'鎿嶄綔', align:'center', toolbar: '#barDemo', width:100} ]] @@ -404,8 +435,26 @@ updateList.push(data[i].fbsid); } + // 鎵撳紑闈㈡澘璁剧疆鍗囩骇璁惧埆鐨勭被鍨� + layer.open({ + type: 1 + ,title: '鍗囩骇鏂囦欢鍚�/鐗堟湰鍙�' + ,content: cFilenameContent + ,fixed: true + ,resize: false + ,btn:['璁剧疆', '鍙栨秷'] + ,yes: function(index) { + var filename = $('#equipeTypeSel').val(); + var newestVer = $('#newestVer').val(); + var sysType = $('#sysType').val(); + + // 鏍¢獙瑕佹洿鏂扮殑璁惧 + checkStationState(updateList, data, filename, newestVer, sysType); + layer.close(index); + } + }); // 鏍¢獙瑕佹洿鏂扮殑璁惧 - checkStationState(updateList, data); + // checkStationState(updateList, data); }); // 鐐瑰嚮琛ㄦ牸鐨則oolbar @@ -428,8 +477,24 @@ var updateList = [data.fbsid]; var allData = [data]; - // 鏍¢獙瑕佹洿鏂扮殑璁惧 - checkStationState(updateList, allData); + // 鎵撳紑闈㈡澘璁剧疆鍗囩骇璁惧埆鐨勭被鍨� + layer.open({ + type: 1 + ,title: '鍗囩骇鏂囦欢鍚�/鐗堟湰鍙�' + ,content: cFilenameContent + ,fixed: true + ,resize: false + ,btn:['璁剧疆', '鍙栨秷'] + ,yes: function(index) { + var newestVer = $('#newestVer').val(); + var sysType = $('#sysType').val(); + // 鏍¢獙瑕佹洿鏂扮殑璁惧 + checkStationState(updateList, allData, data.filename, newestVer, sysType); + layer.close(index); + } + }); + + } // 鐐瑰嚮娣诲姞鐢熸垚琛ㄦ牸 @@ -486,17 +551,19 @@ var formaterData = formaterAddData(rs.data, allData); //瑙f瀽鏁版嵁 if(formaterData.length) { // 閬嶅巻formaterData + //console.log(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.filename = getFnameByVer(_formaterData.StationIp); // 鍗囩骇鏂囦欢鍚嶇О tmp.updatestatusnum = 0; // 0 绛夊緟鍗囩骇 tmp.updatestatus = '绛夊緟鍗囩骇'; // 鍗囩骇鐘舵�� tmp.status = '鍐�'; // 璇诲啓鐘舵�� tmp.datapackage = 1; // 褰撳墠鏁版嵁鍖� + tmp.version = _formaterData.StationIp; // 鐗堟湰鍙� tmp.isNewAdd = true; //console.log(tmp); allData.push(tmp); @@ -504,6 +571,7 @@ // 鐢熸垚琛ㄦ牸鏁版嵁 table.render(tOptions); + renderTblPorgess(allData); }else { layer.msg('娌℃湁瑕佹坊鍔犵殑鍐呭锛�'); } @@ -618,14 +686,17 @@ for(var i=0; i<rs.data.length; i++) { var _data = rs.data[i]; var num = -1; - // 閬嶅巻鐜版湁鐨則blData + // 璁$畻杩涘害 + var currentPer = getStrPercent(_data.dfu_data_blocknum, _data.dfu_data_blocklen, _data.dfu_file_len, _data.dfu_wr_stat); + updateTblPorgress(_data.dev_id, currentPer); + //console.log(currentPer); + // 閬嶅巻鐜版湁鐨則blData/鏍规嵁琛ㄦ牸鐨勮鍒玦d瀵硅幏鍙栧埌鍊艰繘琛屾帓搴忎互渚垮搴旇〃鏍煎唴瀹� for(var k=0; k<tblData.length;k++) { var _tblData = tblData[k]; if(_tblData.fbsid == _data.dev_id) { num = k; break; } - } if(num == -1) { @@ -650,7 +721,7 @@ tmp.datapackage[num] = dfuData; } var pageTbl = $('#pageTbl'); - + //console.log(tmp); // 鏇存柊琛ㄦ牸鍐呭 Object.keys(tmp).forEach(function(key) { updateLayuiTblCol(pageTbl, key, tmp[key]); @@ -687,8 +758,8 @@ } - //楠岃瘉璁惧鏄惁鍏佽璁惧杩涜杩滅▼鍗囩骇 - function checkStationState(temp, all){ + // 楠岃瘉璁惧鏄惁鍏佽璁惧杩涜杩滅▼鍗囩骇 + function checkStationState(temp, all, filename, newestVer, sysType){ $.ajax({ type: "post", url: "Fbs9100s_dfu_stateAction_action_judgeStation", @@ -700,13 +771,13 @@ //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); // 鏃犳硶鏇存柊鐨勮澶囦俊鎭� + var updateData = checkUpdating(data, all, filename, newestVer, sysType); + $('#updateIframeData').data('update', updateData.good); // 鍙洿鏂扮殑璁惧淇℃伅 + $('#updateIframeData').data('errorUpdate', updateData.bad); // 鏃犳硶鏇存柊鐨勮澶囦俊鎭� + //console.log(updateData); // 鍒ゆ柇鏄惁鏈夊崌绾х殑璁惧 - if(updateData.length == 0) { + if(updateData.good.length == 0) { if(temp.length == 1) { layer.msg('褰撳墠璁惧鏃犳硶鍗囩骇锛�'); }else { @@ -720,27 +791,34 @@ layer.open({ type: 2, title: '鏇存柊璁惧', - area: ['700px', '524px'], + area: ['960px', '524px'], fixed: false, //涓嶅浐瀹� maxmin: true, content: 'iframe/batt-station-update.html', btn: ['纭鍗囩骇', '鍙栨秷'], yes: function(index, layero) { - var updateData = $('#updateIframeData').data('update'); // 鑾峰彇鍙崌绾ц澶囩殑淇℃伅 + var goodUpdateData = $('#updateIframeData').data('update'); // 鑾峰彇鍙崌绾ц澶囩殑淇℃伅 // 鏍规嵁鍙崌绾ц澶囩殑淇℃伅鏋勯�犳煡璇㈡潯浠� var updateList = []; - for(var i=0; i<updateData.length; i++) { + for(var i=0; i<goodUpdateData.length; i++) { + var _data = goodUpdateData[i]; + //var filename = getFnameByVer(_data.version); var _tmp = { - dev_id: updateData[i].fbsid + dev_id: _data.fbsid + ,dfu_file: _data.filename }; - + console.log(_data); // 娣诲姞鍒拌澶囧崌绾у垪琛ㄤ腑 - updateList.push(_tmp); + if(_data.filename && _data.filename.length != 0) { + updateList.push(_tmp); + } + } - + //console.log(updateList); + //return; // 鍏抽棴寮瑰嚭闈㈡澘 layer.close(index); - + // console.log(updateList); // 鍗囩骇璁惧 updateBTSDevice(updateList); //console.log(updateList); @@ -762,34 +840,12 @@ } - // 浠庤繑鍥炵殑鍙崌绾х殑璁惧涓墧闄ゆ鍦ㄥ崌绾х殑璁惧 - 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]; - - // 鍒ゆ柇褰撳墠璁惧鏄惁姝e湪鍗囩骇 - if(_all.updatestatusnum == 1) { - isError = false; - } - } - - // 鏍规嵁isError鍒よ鏄惁鏄笉鍙坊鍔犵殑鏈烘埧 - if(isError) { - rs.push(_all); - } - } - - return rs; - } - - // 鑾峰彇鏃犳硶鍗囩骇鐨勮澶� - function checkErrorUpdate(rsData, all) { - var rs = []; + // 鏍煎紡璇濆崌绾х殑璁惧 + function checkUpdating(rsData, all, filename, newestVer, sysType) { + var rs = { + good: [] + ,bad: [] + }; // 閬嶅巻all for(var i=0; i<all.length; i++) { var _all = all[i]; @@ -799,15 +855,22 @@ // 鍒ゆ柇褰撳墠璁惧鏄惁姝e湪鍗囩骇 if(_all.updatestatusnum != 1) { - if(_all.fbsid == _rsData.FBSDeviceId) { - isError = false; + if(_all.fbsid == _rsData.FBSDeviceId && _all.filename == filename) { + // 妫�娴嬪綋鍓嶇増鏈彿鏄惁涓烘渶鏂� + var isNewstVer = checkNewestVer(newestVer, _all.version); + var isSysType = checkSysType(sysType, _all.version); + if(!isNewstVer && isSysType) { + isError = false; + } } } } // 鏍规嵁isError鍒よ鏄惁鏄笉鍙坊鍔犵殑鏈烘埧 if(isError) { - rs.push(_all); + rs.bad.push(_all); + }else { + rs.good.push(_all); } } @@ -859,6 +922,8 @@ tmp.fbsid = _data.dev_id; // 璁惧id tmp.fbsname = _data.fBSDeviceName; // 璁惧鍚嶇О tmp.updatestatusnum = 1; // 0 绛夊緟鍗囩骇 1姝e湪鍗囩骇 + tmp.version = _data.note; // 鐗堟湰鍙� + tmp.filename = _data.dfu_file; // 鍗囩骇鏂囦欢鍚嶇О 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; // 褰撳墠鏁版嵁鍖� @@ -869,11 +934,100 @@ // 鏇存柊琛ㄦ牸 table.render(tOptions); + renderTblPorgess(allData); } } }); } + // 娓叉煋杩涘害鏉� + function renderTblPorgess(tblData) { + // 閬嶅巻tblData鏍规嵁fbsid娓叉煋杩涘害鏉� + for(var i=0; i<tblData.length; i++) { + var fbsid = tblData[i].fbsid; + + // 娓叉煋杩涘害鏉� + element.render('progress', 'upload'+fbsid); + } + + } + + // 鏇存柊杩涘害鏉� + function updateTblPorgress(fbsid, percent) { + + // 鏇存柊杩涘害鏉� + element.progress('upload'+fbsid, percent); + } + + // 璁$畻杩涘害 + function getStrPercent(current, blocklen, all, status) { + var rs = '0%'; + if(all != 0) { + var num = Math.ceil(current*blocklen*100/all); + if(num>=100) { + num = status == 1?'鍐欏畬鎴�':'鍗囩骇瀹屾垚'; + + } + + rs = num+'%'; + } + + return rs; + } + //console.log(getFnameByVer('D:8,V2.53.40')); + // 鏍规嵁鐗堟湰鍙疯幏鍙栨枃浠剁殑鍚嶇О + function getFnameByVer(version) { + var fileList = [ + { + filename: 'avr_dfu.uc3' + ,pattern: /^.*\.24\.[0-9]*$/ + } + ,{ + filename: 'E51_DFU.SM5' + ,pattern: /^.*\.53\.[0-9]*$/ + } + ]; + + // 閬嶅巻骞惰幏鍙杅ilename + var filename = undefined; + for(var i=0; i<fileList.length; i++) { + var _fileList = fileList[i]; + if(_fileList.pattern.test(version)) { + filename = _fileList.filename; + } + } + + return filename; + } + + //console.log(checkNewestVer('42', 'D:8,V2.53.44')); + // 楠岃瘉鐗堟湰 + function checkNewestVer(ver ,version) { + var pattern = '^.*\\.[0-9]*\\.([0-9]*)$'; + var reg = new RegExp(pattern); + reg.test(version); + // 鍒ゆ柇褰撳墠鐗堟湰鏄惁涓烘渶鏂扮増鏈� + var isNewest = false; + if(ver == RegExp.$1) { + isNewest = true; + } + return isNewest; + } + + //checkSysType('12', 'D:8,V12.53.44'); + // 楠岃瘉褰撳墠鐗堟湰2v/12v + function checkSysType(sys ,version) { + var pattern = '^.*V([0-9]*)\\.[0-9]*\\.[0-9]*$'; + var reg = new RegExp(pattern); + reg.test(version); + //console.log(RegExp.$1); + var rs = false; + if(sys == RegExp.$1) { + rs = true; + } + // console.log(rs); + return rs; + } }); </script> </body> -- Gitblit v1.9.1