var testList=[{"id":"1","name":"温湿度#1","type":"2001","port":"1","address":"1","libname":"abc","libnamezh":"测试","vld":"0"},{"id":"6","name":"配电#1","type":"1004","port":"1","address":"1","libname":"abc","libnamezh":"测试","vld":"0"},{"id":"7","name":"电表#1","type":"1003","port":"1","address":"1","libname":"abc","libnamezh":"测试","vld":"0"},{"id":"8","name":"精密空调#1","type":"2002","port":"1","address":"1","libname":"abc","libnamezh":"测试","vld":"0"},{"id":"9","name":"UPS#1","type":"1001","port":"1","address":"1","libname":"abc","libnamezh":"测试","vld":"0"},{"id":"10","name":"UPS#2","type":"1002","port":"1","address":"1","libname":"abc","libnamezh":"测试","vld":"0"},{"id":"11","name":"电池组#1","type":"1005","port":"1","address":"1","libname":"abc","libnamezh":"测试","vld":"0"},{"id":"12","name":"普通空调#1","type":"2003","port":"1","address":"1","libname":"abc","libnamezh":"测试","vld":"0"}]; var form; var table; var element; var deviceList = []; //定义设备的通道信息 var listPassCodeData = []; layui.use(['layer'], function () { layer = layui.layer; }); if (TEST_TAG) { deviceList = testList; renderDevice(); }else{ //查询设备信息并渲染 queryDeviceList(); } //初始化协议库列表 initLibname(); $(document).ready(function () { //添加协议库下拉监听 $("#device-libname").change(function () { var val = $(this).children('option:selected').val(); flushPassCodeDataByLibname(val); }); }); //查询扩展设备信息 function queryDeviceList() { $.get("./cgi-bin/device-expand/query", function (data, status) { if ("success" == status) { deviceList = data; renderDevice(); } else { window.parent.notify("系统获取扩展设备列表出错!"); } }, "json"); } //渲染设备列表 function renderDevice() { var html = ''; // console.log(deviceList); $.each(deviceList, function (index, item) { html += '' + item.name + ''; html += '' + item.id + ''; html += '' + item.address + ''; html += '' + item.port + ''; // html += '' + item.libnamezh + ''; html += '' + (item.vld==0?'启用':'停用') + ''; html += ''; html += ''; if(item.vld==0){ html += ''; }else { html += ''; } html += ''; html += ''; }); $("#deviceList").html(html); } //初始化协议库列表 function initLibname() { $.get("./cgi-bin/libname/libname-list", function (data, status) { if ("success" == status) { renderLibname(data); } else { window.parent.notify("系统获取协议库列表失败!"); } }, "json"); } //初始化协议库列表 function renderLibname(list) { $.each(list, function (index, item) { $("#device-libname").append(""); }); }; //设备编辑 function deviceUpdate(index) { $(".pop-btn").hide(); if(index != -1){ $(".pop-name").html("编辑设备配置信息"); $("#edit").show(); var cur = deviceList[index]; $("#device-id").attr("readOnly",true); $("#device-id").val(cur.id); $("#device-name").val(cur.name); $("#device-type").val(cur.type); $("#device-address").val(cur.address); $("#device-libname").val(cur.libname); $("#device-port").val(cur.port); $("#device-vld").val(cur.vld); //根据ID获取当前设备的PASSCODE数据 -同步获取 // flushPassCodeDataByDeviceId(cur.id); }else{ $("#device-id").attr("readOnly",false); $(".pop-name").html("新增设备配置信息"); $("#add").show(); } layer.open({ skin: 'mypop', type: 1, // title: '警报信息', title: false, area: ['55%', '45%'], closeBtn: 0, shade: 0, scrollbar: false, content: $('#editDeviceDom') }); } //新增设备 function copy(index) { $(".pop-btn").hide(); $("#add").show(); //赋值 -表单 var cur = deviceList[index]; $("#device-id").attr("readOnly",false); $("#device-id").val(cur.id); $("#device-name").val(cur.name); $("#device-type").val(cur.type); $("#device-address").val(cur.address); $("#device-libname").val(cur.libname); $("#device-port").val(cur.port); $("#device-vld").val(cur.vld); //根据ID获取当前设备的PASSCODE数据 -同步获取 // flushPassCodeDataByDeviceId(data.id); //弹出框 layer.open({ skin: 'mypop', type: 1, // title: '警报信息', title: false, area: ['55%', '45%'], closeBtn: 0, shade: 0, scrollbar: false, content: $('#editDeviceDom') }); }; //执行保存 function save(btn) { var data = { id : $("#device-id").val(), name : $("#device-name").val(), type : $("#device-type").val(), address : $("#device-address").val(), libname : $("#device-libname").val(), libnamezh : $("#device-libname option[value='"+$("#device-libname").val()+"']").text(), port : $("#device-port").val(), vld : $("#device-vld").val() }; // console.log("----------需要执行保存的数据信息--------"); // console.log(JSON.stringify(data)); if (!data.id) { window.parent.notify("设备ID不能为空!"); return; } var r = /^\d{4}$/; console.log(r.test(data.id)); if(!r.test(data.id)){ window.parent.notify("设备ID不是一个4位的正整数!"); return; } if (data.id<1000 || data.id>1999) { window.parent.notify("扩展设备ID设置范围为1000~1999!"); return; } var url = "./cgi-bin/device-expand/add"; if ("edit" == btn) { url = "./cgi-bin/device-expand/edit"; } $.post(url, JSON.stringify(data), function (data, status) { if (data.code == "success") { layer.closeAll(); window.parent.notify("数据保存成功,页面自动刷新!"); queryDeviceList(); } else { window.parent.notify("数据保存出错,请重新操作!"+data.msg+"!"); } }, "json"); } //数据删除 function deviceDel(index) { var data = deviceList[index]; var param = {"id": data.id}; layer.confirm('确定删除此条数据吗?', function (index) { $.post("./cgi-bin/device-expand/delete", JSON.stringify(param), function (data, status) { if ("success" == data.code) { layer.close(index); window.parent.notify("数据删除成功,页面自动刷新!"); queryDeviceList(); } else { layer.close(index); window.parent.notify("数据删除失败"); } }, "json"); }); } //状态设置 function changeStatus(index) { var data = deviceList[index]; var param = {"id": data.id}; var msg = "确定要停用么?", url = "./cgi-bin/device-expand/val-1"; if (1 == data.vld) { msg = "确定启用用么?"; url = "./cgi-bin/device-expand/val-0"; } layer.confirm(msg, function (index) { $.post(url, JSON.stringify(param), function (data, status) { if ("success" == data.code) { layer.close(index); window.parent.notify("操作成功,页面自动刷新!"); queryDeviceList(); } else { layer.close(index); window.parent.notify("数据操作失败,请重新尝试!"); } }, "json"); }); } function closepopBtn() { //清空表单信息 $("#device-expand")[0].reset(); layer.closeAll(); } //根据协议库更新passCode数据 function flushPassCodeDataByLibname(libname) { if ("" == libname) return; var param = {"libname": libname}; $.post("./cgi-bin/libname/passcode-by-libname", JSON.stringify(param), function (data, status) { if ("success" == status) { //为设备类型赋值 $("#device-type").val(data.type); //通道信息 listPassCodeData = data.passcode; } else { window.parent.notify("根据协议" + libname + "获取通道信息失败!"); } }, "json"); }; //根据设备ID获取通道信息列表 -设置为同步请求 function flushPassCodeDataByDeviceId(id) { if(TEST_TAG){ renderPassCode(); return; } $.ajaxSettings.async = false; var param = {"id": id}; $.post("./cgi-bin/libname/passcode-by-id", JSON.stringify(param), function (data, status) { if ("success" == status) { listPassCodeData = data; } else { window.parent.notify("根据设备ID=" + id + "获取通道信息失败!"); } }, "json"); };