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");
};