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 += '<tr><td>' + item.name + '</td>';
|
html += '<td>' + item.id + '</td>';
|
html += '<td>' + item.address + '</td>';
|
html += '<td>' + item.port + '</td>';
|
// html += '<td>' + item.libnamezh + '</td>';
|
html += '<td>' + (item.vld==0?'启用':'停用') + '</td>';
|
html += '<td><button style="height: 29px;line-height: 29px;" ' +
|
'class="layui-btn layui-btn-normal" onclick="deviceUpdate(\''+ index +'\')">编辑</button>';
|
html += '<button style="height: 29px;line-height: 29px;" ' +
|
'class="layui-btn layui-btn-normal" onclick="copy(\''+ index +'\')">复制</button>';
|
if(item.vld==0){
|
html += '<button style="height: 29px;line-height: 29px;" ' +
|
'class="layui-btn layui-btn-warm" onclick="changeStatus(\''+ index +'\')">停用</button>';
|
}else {
|
html += '<button style="height: 29px;line-height: 29px;" ' +
|
'class="layui-btn" onclick="changeStatus(\''+ index +'\')">启用</button>';
|
}
|
html += '<button style="height: 29px;line-height: 29px;" ' +
|
'class="layui-btn layui-btn-danger" onclick="deviceDel(\''+ index +'\')">删除</button>';
|
html += '</td></tr>';
|
});
|
$("#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("<option value='"+item.libname+"'>"+item.libnamezh+"</option>");
|
});
|
};
|
|
//设备编辑
|
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");
|
};
|