| var layer; | 
| var form; | 
| var deviceList;// 当前仓库的所有设备列表 | 
| var depotId; | 
| var deviceType = DeviceType.TYPE_01;// 被选中的设备类型,默认是通风窗 | 
| var viewTargetStatus;// 目标状态,根据设备类型和当前值调用动效 | 
| var domSelectDevice;// 被选中的设备dom对象 | 
|   | 
| $(function () { | 
|     layui.use(['layer', 'form'], function () { | 
|         form = layui.form; | 
|         layer = layui.layer; | 
|         form.render(); | 
|   | 
|         // 监听仓库选择 | 
|         form.on('select(select_depotId)', function (obj) { | 
|             return onDepotChange(obj); | 
|         }); | 
|   | 
|         //初始化刷新数据 | 
|         initData(); | 
|     }); | 
|   | 
|     // 添加切换动作 | 
|     $(".js-tf-btn").click( | 
|         function () { | 
|             $(this).addClass("active").siblings(".js-tf-btn").removeClass( | 
|                 "active"); | 
|         }); | 
|   | 
|     $(".js-xg115-arrow").click(function () { | 
|         $(this).siblings(".xg115-btnhide").toggle(); | 
|         $(this).toggleClass("active"); | 
|     }); | 
|   | 
|     // 初始化ws | 
|     initWS(deptId, bizType, null, userId); | 
| }); | 
|   | 
| // socket信息返回處理 | 
| function socketOnMessage(pocket) { | 
|     //console.log(pocket); | 
|     window.parent.sysNotify(pocket.data); | 
|     if (pocket.orderResp == "MSG_SUCCESS") { | 
|         addLog(pocket.data); | 
|         //刷新信息 | 
|         query(false, true, false); | 
|     } else if (pocket.orderResp == "ORDER_INPROGRESS") | 
|         addLog(pocket.data); | 
|     else { | 
|         addRedLog(pocket.data); | 
|     } | 
| }; | 
|   | 
| function initData() { | 
|     if (depotId) { | 
|         $("#depotId").val(depotId); | 
|         query(true, true, true); | 
|         form.render(); | 
|     } | 
| } | 
|   | 
| /** | 
|  * 检测仓库类型是否发生改变,如果发生改变,重新切换页面 | 
|  */ | 
| function onDepotChange(obj) { | 
|     var depotType = obj.elem[obj.elem.selectedIndex].getAttribute('type'); | 
|     if (depotType == DEPOT_TYPE) { | 
|         query(true, true, true); | 
|     } else { | 
|         changeView(depotType); | 
|     } | 
| } | 
|   | 
| function changeView(depotType) { | 
|     //类型改变,自动切换页面 | 
|     if (socket) { | 
|         socket.close(); | 
|     } | 
|     depotId = $("#depotId").val(); | 
|     window.location.href = "./gateway?depotId=" + depotId + "&depotType=" + depotType; | 
|     return true; | 
| } | 
|   | 
| /** 视频查看直接跳转到视频概览页面**/ | 
| function showVideo() { | 
|     window.parent.openTab("./basic/security/aerial-video?t=1", "视频鸟瞰", "aerial-video"); | 
| }; | 
|   | 
| function closeAll() { | 
|     layer.msg("终端不支持当前功能……"); | 
| }; | 
|   | 
| // 状态查询 | 
| function queryStatus() { | 
|     depotId = $("#depotId").val(); | 
|     if (!depotId) { | 
|         layer.msg("请先选择仓库!"); | 
|         return; | 
|     } | 
|     //把当前页面的设备传递到后台 | 
|     var data = { | 
|         deptId: deptId, | 
|         depotId: depotId, | 
|         deviceList: [] | 
|     }; | 
|     var tips = $(".device"); | 
|     $.each(tips, function (index, item) { | 
|         data.deviceList.push({ | 
|             id: item.id, | 
|             depotId: item.getAttribute("depotid"), | 
|             passCode: item.getAttribute("passcode"), | 
|             name: item.getAttribute("name"), | 
|             serId: item.getAttribute("serid"), | 
|             link: item.getAttribute("link"), | 
|             type: item.getAttribute("type"), | 
|             companyId: companyId | 
|         }); | 
|     }); | 
|     $.ajax({ | 
|         type: "POST", | 
|         url: "../../basic/verb/query-status", | 
|         dataType: "json", | 
|         contentType: "application/json;charset=UTF-8", | 
|         data: JSON.stringify(data), | 
|         success: function (result) { | 
|             if ("ORDER_SUCCESS" != result.code) { | 
|                 layer.msg(result.msg); | 
|             } | 
|         }, | 
|         error: function (result) { | 
|             layer.msg("获取数据失败,请重新尝试!"); | 
|         } | 
|     }); | 
| }; | 
|   | 
| /** | 
|  * @param isNew 是否新库跟新仓库信息并执行状态刷新 | 
|  * @param isCut 是否切换页面 | 
|  * @param isQueryStatus 是否更新状态 | 
|  */ | 
| function query(isNew, isCut, isQueryStatus) { | 
|     depotId = $("#depotId").val(); | 
|     if (!depotId) { | 
|         layer.msg("请先选择仓库!"); | 
|         return; | 
|     } | 
|     $.ajax({ | 
|         type: "POST", | 
|         url: "../../basic/verb/list-device-manual", | 
|         dataType: "json", | 
|         contentType: "application/json;charset=UTF-8", | 
|         data: JSON.stringify({ | 
|             depotId: depotId | 
|         }), | 
|         success: function (result) { | 
|             if (result.code != "0000") { | 
|                 layer.msg(result.msg); | 
|                 deviceList = null; | 
|                 if(isCut){ | 
|                     toCutExe(viewAB,true); | 
|                 } | 
|                 return; | 
|             } | 
|             deviceList = result.data; | 
|   | 
|             if (isNew) { | 
|                 updateGrainInfo(); | 
|             } | 
|   | 
|             if(isCut){ | 
|                 toCutExe(viewAB,true); | 
|             } | 
|   | 
|             if (isQueryStatus) { | 
|                 queryStatus(); | 
|             } | 
|         }, | 
|         error: function (result) { | 
|             layer.msg("获取数据失败,请重新尝试!"); | 
|         } | 
|     }); | 
| }; | 
|   | 
| // 获取当前仓库的最新粮情数据信息 | 
| function updateGrainInfo() { | 
|     $.ajax({ | 
|         type: "POST", | 
|         url: "../../basic/common/grain-data", | 
|         dataType: "json", | 
|         contentType: "application/json;charset=UTF-8", | 
|         data: JSON.stringify({ | 
|             depotId: depotId, | 
|             deptId: deptId, | 
|             depotType: DEPOT_TYPE | 
|         }), | 
|         success: function (result) { | 
|             if (result.code != "0000") { | 
|                 addRedLog(result.msg) | 
|                 return; | 
|             } | 
|             var grainData = result.data; | 
|             // 更新信息 | 
|             $("#tempIn").text(grainData.tempIn); | 
|             $("#humidityIn").text(grainData.humidityIn); | 
|             $("#tempAve").text((grainData.tempAve).toFixed(1)); | 
|             $("#tempOut").text(grainData.tempOut); | 
|             $("#updateTime").text(grainData.receiveDate); | 
|         }, | 
|         error: function (result) { | 
|             layer.msg("当前仓库的粮情数据信息获取失败!"); | 
|         } | 
|     }); | 
| }; | 
|   | 
|   | 
| /** | 
|  * 切换效果 | 
|  * @param target 正反面 | 
|  * @param isCutImg 是否执行切图 | 
|  */ | 
| function toCutExe(target, isCutImg) { | 
|     // 获取当前仓库效果图 | 
|     viewAB = target; | 
|     if (isCutImg) { | 
|         cutImg(depotId, viewAB); | 
|     } | 
|     // 根据设备列表添加原型信息 | 
|     addDevice(deviceList, viewAB); | 
| }; | 
|   | 
| // 手动执行,同时更新状态 | 
| function toCut(target) { | 
|     toCutExe(target, true); | 
| }; | 
|   | 
| // 添加操作日志 | 
| function addLog(htmlStr) { | 
|     var info = $("#areationInfo").html(); | 
|     $("#areationInfo").html(htmlStr + "</br>" + info); | 
| }; | 
|   | 
| function addRedLog(htmlStr) { | 
|     var info = $("#areationInfo").html(); | 
|     $("#areationInfo").html( | 
|         "<span class='font-red'>" + htmlStr + "</span></br>" + info); | 
| }; | 
|   | 
| /** | 
|  * 弹出操作框 | 
|  */ | 
| function showControl(id) { | 
|     domSelectDevice = $("#" + id); | 
|     var curDepotId = domSelectDevice.attr("depotid"); | 
|     // 如果点击的设备不是选择仓库的,不执行 | 
|     if (curDepotId != depotId) { | 
|         addRedLog("当前所选设备:" + domSelectDevice.attr("name") + "【非所选仓库】"); | 
|         return; | 
|     } else { | 
|         addLog("当前所选设备:" + domSelectDevice.attr("name")); | 
|     } | 
|   | 
|     // 更新所选择的设备类型 | 
|     deviceType = domSelectDevice.attr("type"); | 
|     if (1 == deviceType) | 
|         deviceType = "01"; | 
|     if (2 == deviceType) | 
|         deviceType = "02"; | 
|     if (3 == deviceType) | 
|         deviceType = "03"; | 
|     if (4 == deviceType) | 
|         deviceType = "04"; | 
|   | 
|     var curStatus = domSelectDevice.attr("status"); | 
|   | 
|     // 根据设备类型弹出不一样的弹出框 | 
|     if (DeviceType.TYPE_01 == deviceType) {// 风窗 | 
|         layer.open({ | 
|             type: 1, | 
|             title: '设备操作-' + domSelectDevice.attr("name"), | 
|             area: ['450px', '210px'], | 
|             shade: 0, | 
|             content: $('#control-FC'), | 
|             btn: 0, | 
|             closeBtn: 2 | 
|         }); | 
|     } | 
|     if (DeviceType.TYPE_0B == deviceType) {// 通风口 | 
|         layer.open({ | 
|             type: 1, | 
|             title: '设备操作-' + domSelectDevice.attr("name"), | 
|             area: ['450px', '210px'], | 
|             shade: 0, | 
|             content: $('#control-FK'), | 
|             btn: 0, | 
|             closeBtn: 2 | 
|         }); | 
|     } | 
|     if (DeviceType.TYPE_0C == deviceType) {// 混流风机 | 
|         if (null == curStatus || DeviceStatus.W_CLOSE == curStatus) {// 设置风机按钮不可用 | 
|             disBtnFj(true, "control-HL"); | 
|         } else { | 
|             disBtnFj(false, "control-HL"); | 
|         } | 
|         layer.open({ | 
|             type: 1, | 
|             title: '设备操作-' + domSelectDevice.attr("name"), | 
|             area: ['450px', '270px'], | 
|             shade: 0, | 
|             content: $('#control-HL'), | 
|             btn: 0, | 
|             closeBtn: 2 | 
|         }); | 
|     } | 
|     if (DeviceType.TYPE_04 == deviceType) {// 环流风机 | 
|         layer.open({ | 
|             type: 1, | 
|             title: '设备操作-' + domSelectDevice.attr("name"), | 
|             area: ['450px', '150px'], | 
|             shade: 0, | 
|             content: $('#control-HL2'), | 
|             btn: 0, | 
|             closeBtn: 2 | 
|         }); | 
|     } | 
|     if (DeviceType.TYPE_02 == deviceType) {// 轴流风机 | 
|         if (null == curStatus || DeviceStatus.W_CLOSE == curStatus) {// 设置风机按钮不可用 | 
|             disBtnFj2(true, "control-ZL"); | 
|         } else { | 
|             disBtnFj2(false, "control-ZL"); | 
|         } | 
|         layer.open({ | 
|             type: 1, | 
|             title: '设备操作-' + domSelectDevice.attr("name"), | 
|             area: ['480px', '270px'], | 
|             shade: 0, | 
|             content: $('#control-ZL'), | 
|             btn: 0, | 
|             closeBtn: 2 | 
|         }); | 
|     } | 
| }; | 
|   | 
| // 根据DIV获取所有的按钮,风机的按钮序号是 2-4 | 
| function disBtnFj(tag, divId) { | 
|     var btns = $("#" + divId).find("button"); | 
|     if (tag) { | 
|         $(btns[2]).addClass("layui-btn-disabled"); | 
|         $(btns[2]).addClass("btn-dis"); | 
|         $(btns[2]).attr("disabled", true); | 
|         $(btns[3]).addClass("layui-btn-disabled"); | 
|         $(btns[3]).addClass("btn-dis"); | 
|         $(btns[3]).attr("disabled", true); | 
|         $(btns[4]).addClass("layui-btn-disabled"); | 
|         $(btns[4]).addClass("btn-dis"); | 
|         $(btns[4]).attr("disabled", true); | 
|     } else { | 
|         $(btns[2]).removeClass("layui-btn-disabled"); | 
|         $(btns[2]).removeClass("btn-dis"); | 
|         $(btns[2]).attr("disabled", false); | 
|         $(btns[3]).removeClass("layui-btn-disabled"); | 
|         $(btns[3]).removeClass("btn-dis"); | 
|         $(btns[3]).attr("disabled", false); | 
|         $(btns[4]).removeClass("layui-btn-disabled"); | 
|         $(btns[4]).removeClass("btn-dis"); | 
|         $(btns[4]).attr("disabled", false); | 
|     } | 
| }; | 
|   | 
| function disBtnFj2(tag, divId) { | 
|     var btns = $("#" + divId).find("button"); | 
|     if (tag) { | 
|         $(btns[2]).addClass("layui-btn-disabled"); | 
|         $(btns[2]).addClass("btn-dis"); | 
|         $(btns[2]).attr("disabled", true); | 
|         $(btns[3]).addClass("layui-btn-disabled"); | 
|         $(btns[3]).addClass("btn-dis"); | 
|         $(btns[3]).attr("disabled", true); | 
|     } else { | 
|         $(btns[2]).removeClass("layui-btn-disabled"); | 
|         $(btns[2]).removeClass("btn-dis"); | 
|         $(btns[2]).attr("disabled", false); | 
|         $(btns[3]).removeClass("layui-btn-disabled"); | 
|         $(btns[3]).removeClass("btn-dis"); | 
|         $(btns[3]).attr("disabled", false); | 
|     } | 
| }; | 
|   | 
| // 根据操作目标状态和选择的设备进行执行-目标状态 | 
| function toExecute(targetStatus) { | 
|     var batchTag = false; | 
|     if ("W_OPEN_ALL" == targetStatus) { | 
|         batchTag = true; | 
|         targetStatus = DeviceStatus.OPEN; | 
|     } | 
|     if ("W_CLOSE_ALL" == targetStatus) { | 
|         batchTag = true; | 
|         targetStatus = DeviceStatus.CLOSE; | 
|     } | 
|   | 
|     // 根据设备类型进行调整,针对风机类 | 
|     if (targetStatus == DeviceStatus.OPEN) { | 
|         if (deviceType == DeviceType.TYPE_02) | 
|             targetStatus = DeviceStatus.W_OPEN; | 
|         if (deviceType == DeviceType.TYPE_0C) | 
|             targetStatus = DeviceStatus.W_OPEN; | 
|     } | 
|   | 
|     if (targetStatus == DeviceStatus.CLOSE) { | 
|         if (deviceType == DeviceType.TYPE_02) | 
|             targetStatus = DeviceStatus.W_CLOSE; | 
|         if (deviceType == DeviceType.TYPE_0C) | 
|             targetStatus = DeviceStatus.W_CLOSE; | 
|     } | 
|   | 
|     viewTargetStatus = targetStatus; | 
|   | 
|     var data = { | 
|         depotId: depotId, | 
|         deptId: deptId, | 
|         batchTag: batchTag, | 
|         deviceType: deviceType, | 
|         targetStatus: targetStatus, | 
|         deviceList: [] | 
|     }; | 
|   | 
|     // 批量设备操作,只处理相同的设备类型 | 
|     if (batchTag) { | 
|         data.deviceList = deviceList; | 
|     } else { | 
|         data.deviceList.push({ | 
|             id: domSelectDevice.id, | 
|             depotId: domSelectDevice.attr("depotid"), | 
|             passCode: domSelectDevice.attr("passcode"), | 
|             name: domSelectDevice.attr("name"), | 
|             serId: domSelectDevice.attr("serid"), | 
|             link: domSelectDevice.attr("link"), | 
|             type: domSelectDevice.attr("type"), | 
|             targetStatus: targetStatus | 
|         }); | 
|     } | 
|   | 
|     // 开始调用后台执行 | 
|     layer.load(1); | 
|   | 
|     $.ajax({ | 
|         type: 'POST', | 
|         url: "../../basic/verb/control-device", | 
|         dataType: 'JSON', | 
|         contentType: "application/json;charset=UTF-8", | 
|         data: JSON.stringify(data), | 
|         success: function (result) { | 
|             layer.closeAll(); | 
|             if (result.code != "ORDER_SUCCESS") { | 
|                 layer.msg("执行失败:" + result.msg); | 
|             } else { | 
|                 layer.msg("操作指令发送成功,待终端响应……"); | 
|             } | 
|         }, | 
|         error: function (result) { | 
|             layer.closeAll(); | 
|             layer.msg("操作发生异常,暂时无法解决!!"); | 
|         } | 
|     }); | 
| }; |