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 container = $("#device_view"); var parentLeft = container.offset().left, parentTop = container.offset().top; // var parentWidth = container.width(), parentHeight = container.height(); 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; temp = ""; if (viewAB == "01" && item.location == "02") { return true;// 跳过 } if (viewAB == "02" && item.location == "01") { return true;// 跳过 } imgResult = getStatusImg(item); temp += "
"; if (DeviceType.TYPE_03 == item.type) { temp += ""; } else if (DeviceType.TYPE_04 == item.type) { temp += ""; } else if (viewAB == "02") { temp += ""; } else { temp += ""; } //表示有故障 if (imgResult.errorTag) { temp += ""; } temp += "
"; container.append(temp); }); }; // 根据设备类型和状态,获取当前设备的显示状态图片 function getStatusImg(item) { var result = { statusImg: null, errorTag: false }; //轴流风窗 if (DeviceType.TYPE_02 == item.type) { if (!item.status || DeviceStatus.ERROR == item.status) { result.statusImg = "../../static/img/device/CIR_02_W_CLOSE.png"; result.errorTag = true; return result; } if (DeviceStatus.W_CLOSE == item.status) { result.statusImg = "../../static/img/device/CIR_02_W_CLOSE.png"; return result; } if (DeviceStatus.W_OPEN == item.status) { result.statusImg = "../../static/img/device/CIR_02_W_OPEN.png"; return result; } if (DeviceStatus.F_CLOSE == item.status) { result.statusImg = "../../static/img/device/CIR_02_F_CLOSE.png"; return result; } if (DeviceStatus.F_OPEN == item.status) { result.statusImg = "../../static/img/device/CIR_02_F_OPEN.gif"; return result; } if (DeviceStatus.F_OPEN_F == item.status) { result.statusImg = "../../static/img/device/CIR_02_F_OPEN_F.gif"; return result; } } //离心风机 if (DeviceType.TYPE_03 == item.type) { if (!item.status || DeviceStatus.ERROR == item.status) { result.statusImg = "../../static/img/device/CIR_03_CLOSE.png"; result.errorTag = true; return result; } if (DeviceStatus.CLOSE == item.status || DeviceStatus.F_CLOSE == item.status) { result.statusImg = "../../static/img/device/CIR_03_CLOSE.png"; return result; } if (DeviceStatus.OPEN == item.status || DeviceStatus.F_OPEN == item.status) { result.statusImg = "../../static/img/device/CIR_03_OPEN.gif"; return result; } } //环流风机 if (DeviceType.TYPE_04 == item.type) { if (!item.status || DeviceStatus.ERROR == item.status) { result.statusImg = "../../static/img/device/CIR_04_CLOSE.png"; result.errorTag = true; return result; } if (DeviceStatus.CLOSE == item.status || DeviceStatus.F_CLOSE == item.status) { result.statusImg = "../../static/img/device/CIR_04_CLOSE.png"; return result; } if (DeviceStatus.OPEN == item.status || DeviceStatus.F_OPEN == item.status) { result.statusImg = "../../static/img/device/CIR_04_OPEN.gif"; return result; } } //阀门 if (DeviceType.TYPE_07 == item.type || DeviceType.TYPE_09 == item.type) { if (!item.status || DeviceStatus.ERROR == item.status) { result.statusImg = "../../static/img/device/CIR_07_CLOSE.png"; result.errorTag = true; return result; } if (DeviceStatus.CLOSE == item.status) { result.statusImg = "../../static/img/device/CIR_07_CLOSE.png"; return result; } if (DeviceStatus.OPEN == item.status) { result.statusImg = "../../static/img/device/CIR_07_OPEN.png"; return result; } } //通风口 if (DeviceType.TYPE_0B == item.type) { if (!item.status || DeviceStatus.ERROR == item.status) { result.statusImg = "../../static/img/device/CIR_0B_CLOSE.png"; result.errorTag = true; return result; } if (DeviceStatus.CLOSE == item.status) { result.statusImg = "../../static/img/device/CIR_0B_CLOSE.png"; return result; } if (DeviceStatus.OPEN == item.status) { result.statusImg = "../../static/img/device/CIR_0B_OPEN.png"; 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("-----------parentLeft----" + parentLeft); // console.log("-----------parentTop----" + parentTop); //var parentWidth = container.width(), parentHeight = container.height(); var maxX = 1300, maxY = 750; $.each(tips, function (index, item) { var dd = new Dragdrop({ target: item, area: [0, maxX, 0, maxY], callback: function (obj) { // console.log('x:' + (obj.moveX - parentLeft) + ' y:' + (obj.moveY - parentTop)); } }); 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 parentWidth = container.width(), parentHeight = container.height(); console.log("-----------parentLeft----" + parentLeft); console.log("-----------parentTop----" + parentTop); // 封装数据进行保存 var data = new Array(); var id, curDepotId = null, offset; $.each(tips, function (index, item) { id = item.id; curDepotId = item.getAttribute("depotid"); offset = $('#' + id).offset(); //调整为相对位置 posX = offset.left - parentLeft; posY = offset.top - parentTop; data[index] = { bizId: id, depotId: curDepotId, selfTag: viewAB, posX: posX, posY: posY }; }); console.log(data); $.ajax({ type: 'POST', url: "../../basic/common/update-verb-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); } }); }