var viewAB = "01";// 默认正面
/**
* 根据设备列表渲染设备示意图,要求被渲染的divID = device_view
*
* @param listDevice
*/
renderDevice = function(listDevice) {
// 首先清空div中的内容
$("#device_view").empty();
// 根据设备列表添加原型信息
addDevice(listDevice, viewAB);
};
// 切换图片a=正面,b=背面
function cutImg(depotId, target) {
$("#device_view").empty();
var verbImg = imgMap[depotId];
var imgPath = "../../static/img/n2/" + verbImg.file + "/" + verbImg.a;
if (target == "02") {
imgPath = "../../static/img/n2/" + verbImg.file + "/" + verbImg.b;
}
$("#device_view").css("background", "url(" + imgPath + ") no-repeat");
viewAB = target;
};
//动态添加设备信息
function addDevice(list) {
if (!list || list.length == 0)
return;
var mainImg = $("#device_view");
var parentLeft = mainImg.offset().left, parentTop = mainImg.offset().top;
var temp;
var left = 0, top = 0;
var imgResult;
$.each(list, function (index, item) {
// 获取PC的位置
left = parentLeft + item.posX - 20;
top = parentTop + item.posY - 10;
// left = item.posX - 15;
// top = item.posY - parentTop + 10;
// console.log(item.name+"---"+left +"---"+top);
temp = "";
if (viewAB == "01" && item.location == "02") {
return true;// 跳过
}
if (viewAB == "02" && item.location == "01") {
return true;// 跳过
}
imgResult = getStatusImg(item);
if (!imgResult.statusImg) {
return true;// 跳过
}
temp += "
";
if (imgResult.statusImg.indexOf("gif") > 0) {
temp += "

";
} else {
if (DeviceType.TYPE_07 == item.type || DeviceType.TYPE_09 == item.type) {
temp += "

";
} else {
temp += "

";
}
}
//表示有故障
if(imgResult.errorTag){
temp +="
";
}
temp +="
";
mainImg.append(temp);
});
};
//根据设备类型和状态,获取当前设备的显示状态图片
function getStatusImg(item) {
var result = {
statusImg: null,
errorTag: false
}
if (DeviceType.TYPE_01 == item.type) {
if (!item.status || DeviceStatus.ERROR == item.status) {
result.statusImg = "../../static/img/device/STATUS_01_CLOSE.png";
result.errorTag = true;
return result;
}
if (DeviceStatus.CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_01_CLOSE.png";
return result;
}
if (DeviceStatus.OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_01_OPEN.png";
return result;
}
}
if (DeviceType.TYPE_02 == item.type) {
if (!item.status || DeviceStatus.ERROR == item.status) {
result.statusImg = "../../static/img/device/STATUS_02_W_CLOSE.png";
result.errorTag = true;
return result;
}
if (DeviceStatus.W_CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_02_W_CLOSE.png";
return result;
}
if (DeviceStatus.W_OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_02_W_OPEN.png";
return result;
}
if (DeviceStatus.F_CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_02_W_OPEN.png";
return result;
}
if (DeviceStatus.F_OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_02_F_OPEN.gif";
return result;
}
if (DeviceStatus.F_OPEN_F == item.status) {
result.statusImg = "../../static/img/device/STATUS_02_F_OPEN_F.gif";
return result;
}
}
if (DeviceType.TYPE_04 == item.type) {
if (!item.status || DeviceStatus.ERROR == item.status) {
result.statusImg = "../../static/img/device/STATUS_04_CLOSE.png";
result.errorTag = true;
return result;
}
if (DeviceStatus.CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_04_CLOSE.png";
return result;
}
if (DeviceStatus.F_CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_04_CLOSE.png";
return result;
}
if (DeviceStatus.OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_04_OPEN.gif";
return result;
}
if (DeviceStatus.F_OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_04_OPEN.gif";
return result;
}
}
if (DeviceType.TYPE_07 == item.type || DeviceType.TYPE_09 == item.type) {// 普通阀门和主阀门
if (!item.status){
result.statusImg = "../../static/img/device/icon-off.png";
result.errorTag = true;
return result;
}
if (DeviceStatus.ERROR == item.status){
result.statusImg = "../../static/img/device/icon-off.png";
return result;
}
if (DeviceStatus.CLOSE == item.status){
result.statusImg = "../../static/img/device/icon-off.png";
return result;
}
if (DeviceStatus.OPEN == item.status){
result.statusImg = "../../static/img/device/icon-on.png";
return result;
}
}
if (DeviceType.TYPE_0B == item.type) {
if (!item.status || DeviceStatus.ERROR == item.status) {
result.statusImg = "../../static/img/device/STATUS_0B_CLOSE.png";
result.errorTag = true;
return result;
}
if (DeviceStatus.CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_0B_CLOSE.png";
return result;
}
if (DeviceStatus.OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_0B_OPEN.png";
return result;
}
}
if (DeviceType.TYPE_0C == item.type) {
if (!item.status || DeviceStatus.ERROR == item.status) {
result.statusImg = "../../static/img/device/STATUS_0C_W_CLOSE.png";
result.errorTag = true;
return result;
}
if (DeviceStatus.W_CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_0C_W_CLOSE.png";
return result;
}
if (DeviceStatus.W_OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_0C_W_OPEN.png";
return result;
}
if (DeviceStatus.F_CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_0C_W_OPEN.png";
return result;
}
if (DeviceStatus.F_OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_0C_F_OPEN.gif";
return result;
}
if (DeviceStatus.F_OPEN_F == item.status) {
result.statusImg = "../../static/img/device/STATUS_0C_F_OPEN_F.gif";
return result;
}
}
if (DeviceType.TYPE_0D == item.type) {
if (!item.status || DeviceStatus.ERROR == item.status) {
result.statusImg = "../../static/img/device/STATUS_0D_CLOSE.png";
result.errorTag = true;
return result;
}
if (DeviceStatus.CLOSE == item.status) {
result.statusImg = "../../static/img/device/STATUS_0D_CLOSE.png";
return result;
}
if (DeviceStatus.OPEN == item.status) {
result.statusImg = "../../static/img/device/STATUS_0D_OPEN.gif";
return result;
}
}
return result;
};
// 根据CSS标签控制那些组件支持拖拽.device
function dragDevice() {
var tips = $(".device");
if (tips.length == 0) {
return;
}
var container = $("#device_view");
var parentLeft = container.offset().left, parentTop = container.offset().top;
// console.log("parentTop=" + parentTop);
var maxX = 1800, maxY = 1000;
$.each(tips, function(index, item) {
var dd = new Dragdrop({
target : item,
area : [ 0, maxX, 0, maxY ],
callback : function(obj) {
console.log('x:' + (obj.moveX) + ' y:' + (obj.moveY));
}
});
dd.dragAll();
});
};
// 保存设备位置信息
function updatePos() {
var tips = $(".device");
if (tips.length == 0) {
return;
}
var container = $("#device_view");
var parentLeft = container.offset().left, parentTop = container.offset().top;
// 封装数据进行保存
var data = new Array();
var id = null, curDepotId = null;
var offset;
$.each(tips, function(index, item) {
id = item.id;
curDepotId = item.getAttribute("depotid");
offset = $('#' + id).offset();
// console.log(item);
// console.log("left=" + (offset.left - parentLeft) + "-----top="
// + (offset.top - parentTop));
data[index] = {
bizId : id,
depotId : curDepotId,
selfTag : viewAB,
posX : offset.left - parentLeft,
posY : offset.top - parentTop
};
});
$.ajax({
type : 'POST',
url : "../../basic/common/update-n2-pos",
dataType : 'JSON',
contentType : "application/json;charset=UTF-8",
data : JSON.stringify(data),
success : function(result) {
layer.msg(result.msg);
},
error : function(result) {
layer.msg(result.msg);
}
});
};
/**
* 根据设备类型和目标状态,调整动画效果
*
* @param deviceType
* 设备类型
* @param targetStatus
* 目标状态
* @param isEnd
* 是否执行完成
*/
function updateAnimate(deviceType, targetStatus, isEnd) {
// TODO 待调整
$("#img_animate").attr('src',"");
}