From 478a6e251361cf00ea18c08a453b0c8caaa9ef6f Mon Sep 17 00:00:00 2001 From: lgq <1015864684@qq.com> Date: 星期六, 12 七月 2025 17:24:15 +0800 Subject: [PATCH] 修改SNMP导出OID表格,增加设备类型列 --- local/www/sys-snmp-conf.html | 441 +++++++++++++++++++++++++++++++----------------------- 1 files changed, 251 insertions(+), 190 deletions(-) diff --git a/local/www/sys-snmp-conf.html b/local/www/sys-snmp-conf.html index 0c7a8cd..2da61ef 100644 --- a/local/www/sys-snmp-conf.html +++ b/local/www/sys-snmp-conf.html @@ -1,190 +1,251 @@ -<!DOCTYPE html> -<html> -<head> -<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> -<meta name="viewport" - content="width=device-width, initial-scale=1, maximum-scale=1"> -<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> -<meta name="renderer" content="webkit"> -<title>鏅鸿兘杩愮淮绠$悊绯荤粺-SNMP</title> - - <link rel="stylesheet" type="text/css" href="plugins/layui/css/layui.css" /> - <link rel="stylesheet" type="text/css" href="css/page/device-control.css" /> - <style> - .layui-col-md4 { - width: 100%; - } - - .layui-inline { - margin-left: unset; - } - - .layui-layer-dialog .layui-layer-content { - border-bottom: solid 1px #eae5e5; - } - .btns button{ - width: 120px; - } - - </style> -</head> - -<body class="pdgxq-body"> - <div class="i-container"> - <div class="jmkt-main"> - <div class="layui-fluid"> - <div class="pdgxq-m1 layui-row layui-col-space20"> - <!--pdgxq-m1-left end--> - <div class="layui-col-lg12 layui-col-md12 img-main" id="img-main" style="padding: 20px;"> - <div class="pdgxq-m1-left pdgxq-m1-box" style="width: 100%;"> - <form class="layui-form" id="form-param" lay-filter="form-param" action=""> - <div class="layui-row" style="padding: 20px 0;"> - - <div class="layui-col-md4"> - <div class="layui-inline" style="margin-left: -16%"> - <label class="layui-form-label">SNMP妯$粍锛�</label> - <div class="layui-input-block"> - <input type="checkbox" id="enable" name="enable" lay-skin="switch" - lay-filter="switch" lay-text="鍚敤|鍋滅敤"> - </div> - </div> - </div> - <div class="layui-col-md4"> - <div class="layui-inline"> - <label class="layui-form-label">鐗堟湰鍙凤細</label> - <div class="layui-input-block"> - <input id="ver" type="text" name="ver" value="V2.0" - class="layui-input" readonly> - </div> - </div> - </div> - <div class="layui-col-md4"> - <div class="layui-inline"> - <label class="layui-form-label">鍏辩敤浣撳悕绉帮細</label> - <div class="layui-input-block"> - <input id="publicName" type="text" name="publicName" value="public" - class="layui-input" readonly> - </div> - </div> - </div> - <div class="layui-col-md4"> - <div class="layui-inline"> - <label class="layui-form-label">绔彛鍙凤細</label> - <div class="layui-input-block"> - <input id="port" type="text" name="port" value="161" - class="layui-input" readonly> - </div> - </div> - </div> - - <div class="layui-col-md4" style=""> - <div class="layui-inline"> - <div class="layui-input-block btns" style="margin-left: 15px"> - - <button style="margin-right: 50px; font-size: 16px" - class="layui-btn layui-btn-warm" - onclick="javaScript:downLoadF(); return false;">瀵煎嚭OID琛� - </button> - </div> - </div> - </div> - - </div> - </form> - </div> - </div> - - </div> - <!--pdgxq-m1 end--> - </div> - </div> - <!--jmkt-main end--> - </div> - <!--i-container end--> - - <script type="text/javascript" src="js/jquery.min.js"></script> - <script src="plugins/layui/layui.js"></script> - <script src="js/constant.js"></script> - <script type="text/javascript"> - - var layer;// 瀹氫箟鍏ㄥ眬鍙橀噺 - var form; - var laydate; - $(function () { - layui.use(['layer', 'form', 'laydate'], function () { - layer = layui.layer; - form = layui.form; - laydate = layui.laydate; - - form.on('switch(switch)', function(data){ - //寮�鍏崇姸鎬佹敼鍙樻椂瑙﹀彂 - changeStatus(this.checked); - }); - query(); - }); - }); - - function query() { - $.ajaxSettings.async = false; - $.get("./cgi-bin/snmp/query", function (data, status) { - if ("success" == status) { - form.val('form-param', { - "enable": data.enable//0-鍚敤锛�1-绂佺敤 - }); - form.render(); - } else { - window.parent.parent.notify("绯荤粺鑾峰彇鐩戞帶璁惧淇℃伅澶辫触锛�"); - } - }, "json"); - } - - /** - * 淇敼鐘舵�� - * @param enable true or false - */ - function changeStatus(enable) { - var obj = {"enable":enable}; - $.post("./cgi-bin/snmp/enable", JSON.stringify(obj), function (data, status) { - if (data.code == "success") { - //window.parent.parent.notify("鏁版嵁淇濆瓨鎴愬姛"); - window.parent.parent.notify("SNMP妯$粍鐘舵�佷繚瀛樻垚鍔�"); - } else { - window.parent.parent.notify("鏁版嵁淇濆瓨鍑洪敊锛岃閲嶆柊鎿嶄綔锛�"+data.msg+"锛�"); - } - }, "json"); - } - - //瀵煎嚭 - function downLoadF() { - $.ajaxSettings.async = false; - $.get("./cgi-bin/snmp/download", function (data, status) { - if ("success" == data.code) { - downLoadF2(); - }else{ - window.parent.parent.notify("鐢熸垚oid琛ㄥ嚭閿�"); - } - }, "json"); - } - - function downLoadF2() { - var fileName = "oid_list.csv"; - var url = "./cgi-bin/download/download.cgi?filename=/temp/oid_list.csv"; - - // 瀵逛簬<a>鏍囩锛屽彧鏈� Firefox 鍜� Chrome锛堝唴鏍革級 鏀寔 download 灞炴�� - if ('download' in document.createElement('a')) { // 鏀寔a鏍囩download鐨勬祻瑙堝櫒 - var link = document.createElement('a'); // 鍒涘缓a鏍囩 - link.download = fileName;// a鏍囩娣诲姞灞炴�� - link.style.display = 'none'; - // link.href = URL.createObjectURL(blob); - link.href = url; - document.body.appendChild(link); - link.click(); // 鎵ц涓嬭浇 - URL.revokeObjectURL(link.href); // 閲婃斁url - document.body.removeChild(link); // 閲婃斁鏍囩 - } else { // 鍏朵粬娴忚鍣� - navigator.msSaveBlob(url, fileName); - } - } - </script> -</body> -</html> +<!DOCTYPE html> +<html> +<head> +<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> +<meta name="viewport" + content="width=device-width, initial-scale=1, maximum-scale=1"> +<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1"> +<meta name="renderer" content="webkit"> +<title>鏅鸿兘杩愮淮绠$悊绯荤粺-SNMP</title> + + <link rel="stylesheet" type="text/css" href="plugins/layui/css/layui.css" /> + <link rel="stylesheet" type="text/css" href="css/page/device-control.css" /> + <style> + .layui-col-md4 { + width: 100%; + } + + .layui-inline { + margin-left: unset; + } + + .layui-layer-dialog .layui-layer-content { + border-bottom: solid 1px #eae5e5; + } + .btns button{ + width: 120px; + } + @media only screen and (max-width:1080px) and (max-height: 1920px){ + .i-container { + min-width: 750px; + height: 100%; + overflow-y: scroll; + } + /** 闅愯棌鍒楄〃涓嬫媺婊氬姩鏉� **/ + .div-body::-webkit-scrollbar { + display: none; + } + /*IE 10+ ----闅愯棌婊氬姩鏉�*/ + .div-body { + -ms-overflow-style: none; + } + /*Firefox ----闅愯棌婊氬姩鏉�*/ + .div-body { + scrollbar-width: none; + } + .pdgxq-m1-left{ + height: 1400px; + } + } + </style> +</head> + +<body class="pdgxq-body"> + <div class="i-container div-body"> + <div class="jmkt-main"> + <div class="layui-fluid"> + <div class="pdgxq-m1 layui-row layui-col-space20"> + <!--pdgxq-m1-left end--> + <div class="layui-col-lg12 layui-col-md12 img-main" id="img-main" style="padding: 20px;"> + <div class="pdgxq-m1-left pdgxq-m1-box" style="width: 100%;"> + <form class="layui-form" id="form-param" lay-filter="form-param" action=""> + <div class="layui-row" style="padding: 20px 0;"> + + <div class="layui-col-md4"> + <div class="layui-inline" style="margin-left: -16%"> + <label class="layui-form-label">SNMP妯$粍锛�</label> + <div class="layui-input-block"> + <input type="checkbox" id="enable" name="enable" lay-skin="switch" + lay-filter="switch" lay-text="鍚敤|鍋滅敤"> + </div> + </div> + </div> + <div class="layui-col-md4"> + <div class="layui-inline"> + <label class="layui-form-label">鐗堟湰鍙凤細</label> + <div class="layui-input-block"> + <input id="ver" type="text" name="ver" value="V2.0" + class="layui-input" readonly> + </div> + </div> + </div> + <div class="layui-col-md4"> + <div class="layui-inline"> + <label class="layui-form-label">鍏辩敤浣撳悕绉帮細</label> + <div class="layui-input-block"> + <input id="publicName" type="text" name="publicName" value="public" + class="layui-input" readonly> + </div> + </div> + </div> + <div class="layui-col-md4"> + <div class="layui-inline"> + <label class="layui-form-label">绔彛鍙凤細</label> + <div class="layui-input-block"> + <input id="port" type="text" name="port" value="161" + class="layui-input" readonly> + </div> + </div> + </div> + + <div class="layui-col-md4" style=""> + <div class="layui-inline"> + <div class="layui-input-block btns" style="margin-left: 15px"> + + <button style="margin-right: 50px; font-size: 16px" + class="layui-btn layui-btn-warm" + onclick="javaScript:downLoadF(); return false;">瀵煎嚭OID琛� + </button> + </div> + </div> + </div> + + </div> + </form> + </div> + </div> + + </div> + <!--pdgxq-m1 end--> + </div> + </div> + <!--jmkt-main end--> + </div> + <!--i-container end--> + + <script type="text/javascript" src="js/jquery.min.js"></script> + <script src="plugins/layui/layui.js"></script> + <script src="js/constant.js"></script> + + <script src="plugins/external/jszip.min.js"></script> + <script src="plugins/external/FileSaver.js"></script> + <script src="plugins/external/excel-gen.js"></script> + + <script type="text/javascript"> + + var layer;// 瀹氫箟鍏ㄥ眬鍙橀噺 + var form; + var laydate; + $(function () { + layui.use(['layer', 'form', 'laydate'], function () { + layer = layui.layer; + form = layui.form; + laydate = layui.laydate; + + form.on('switch(switch)', function(data){ + //寮�鍏崇姸鎬佹敼鍙樻椂瑙﹀彂 + changeStatus(this.checked); + }); + query(); + }); + }); + + function query() { + $.ajaxSettings.async = false; + $.get("./cgi-bin/snmp/query", function (data, status) { + if ("success" == status) { + form.val('form-param', { + "enable": data.enable//0-鍚敤锛�1-绂佺敤 + }); + form.render(); + } else { + window.parent.parent.notify("绯荤粺鑾峰彇鐩戞帶璁惧淇℃伅澶辫触锛�"); + } + }, "json"); + } + + /** + * 淇敼鐘舵�� + * @param enable true or false + */ + function changeStatus(enable) { + var obj = {"enable":enable}; + $.post("./cgi-bin/snmp/enable", JSON.stringify(obj), function (data, status) { + if (data.code == "success") { + window.parent.parent.notify("鏁版嵁淇濆瓨鎴愬姛"); + } else { + window.parent.parent.notify("鏁版嵁淇濆瓨鍑洪敊锛岃閲嶆柊鎿嶄綔锛�"+data.msg+"锛�"); + } + }, "json"); + } + + //瀵煎嚭 + function downLoadF() { + $.ajaxSettings.async = false; + $.get("./cgi-bin/snmp/query_oid", function (data, status) { + renderHtml(data); + // if ("success" == data.code) { + // renderHtml(data); + // }else{ + // window.parent.parent.notify("鐢熸垚oid琛ㄥ嚭閿�"); + // } + }, "json"); + } + + function renderHtml(data) { + console.log(data); + + + var thead = ""; + thead += "<thead><tr>"; + thead += "<th>璁惧鍚嶇О</th>"; + thead += "<th>OID</th>"; + thead += "<th>璁惧ID</th>"; + thead += "<th>璁惧绫诲瀷</th>"; + thead += "<th>閫氶亾鍙�</th>"; + thead += "<th>鏁版嵁鍚嶇О</th>"; + thead += "<th>澶囨敞</th>"; + thead += "</tr></thead>"; + + var tbody = ""; + if (data != null && data.length > 0) { + $.each(data, function (index, item) { + tbody += "<tr><td>" + item.device + "</td>"; + tbody += "<td>" + item.oid + "</td>"; + tbody += "<td>" + item.index1 + "</td>"; + tbody += "<td>" + item.type + "</td>"; + tbody += "<td>" + item.index2 + "</td>"; + tbody += "<td>" + item.param + "</td>"; + tbody += "<td>" + (item.unit ?? "") + "</td></tr>"; + }); + }else { + tbody += '<tr><td colspan="8">鏆傛湭鍒涘缓璁惧</td></tr>'; + } + var html = thead + tbody; + + tableToExcel(html); + } + + + function tableToExcel(html) { + var name = "鍛婅璁板綍"; + var uri = 'data:application/vnd.ms-excel;base64,'; + var template = '<html><head><meta charset="UTF-8"></head><body><table border="1">{table}</table></body></html>'; + + if(!html){ + layer.msg("娌℃湁鑾峰彇鍒拌瀵煎嚭鐨勫唴瀹癸紒"); + } + + var ctx = {worksheet: name || 'Worksheet', table: html}; + window.location.href = uri + base64(format(template, ctx)) + } + function format(s, c) { + return s.replace(/{(\w+)}/g,function(m, p) { return c[p]; }); + } + + function base64(s) { + return window.btoa(unescape(encodeURIComponent(s))) +}; + </script> +</body> +</html> -- Gitblit v1.9.3