var cmenu; var selectedRowID = null; var selectedGroup = undefined; //var refreshTimer = null; var page = 1, rows = 500; function createContextMenu() { cmenu = $('
').menu().appendTo('body'); cmenu.menu('appendItem', { text: lang.RoomStatusSetting, onclick: function () { $("#dialog").window({ title: lang.RoomStatusSetting, href: "/RoomStatus/RoomStatus/", queryParams: { HostID: selectedRowID }, resizable: false, maximized: false, width: 550, height: 250 }).window('center').window("open"); } }); cmenu.menu('appendItem', { text: lang.DeviceInfo, onclick: function () { $("#dialog").window({ title: lang.DeviceInfo, href: '/RoomStatus/DeviceStatus/', queryParams: { HostID: selectedRowID }, resizable: false, maximized: false, width: 800, height: 400 }) .window('center').window("open"); } }); } function showContextMenu(hostID, event) { //window.event.preventDefault(); if (!cmenu) { createContextMenu(); } selectedRowID = hostID; cmenu.menu('show', { left: window.event.clientX, top: window.event.clientY }); } function showRoomDetail(hostID) { if (hostID > 0) { $("#dialog") .window({ title: lang.GuestRoomDetailed, href: "/RoomStatus/RoomDetail/", queryParams: { HostID: hostID }, resizable: true, maximized: false, draggable: true, width: 800, height: 430 }).window('center').window('open'); } else { $.tools.alert(lang.PleaseSelectTheData); } } avalon.libraries.ms.$init = function (vm) { for (var i in vm) { if (vm.hasOwnProperty(i) && typeof vm[i] === "function") { vm[i] = vm[i].bind(vm) } } } function lineWidth(floor) { if (vm.switchLine) { return 'auto'; } else { return floor.FloorRooms.length * 104; } } function cbtGroupOnSelect(row) { if (row.id != 0) { selectedGroup = row.id; loadRooms({ group: row.id }); } } function cbxServiceFormatter(row) { var styles = 'background:' + row.Color + ';'; if (row.Code == '') { styles += 'color:#000;' } return '
' + row.Name + '
'; } function cbxServiceOnSelect(row) { var styles = row.Code == '' ? { background: '#FFF', color: '#000'} : { background: row.Color, color: '#FFF' }; $(this).combobox('textbox').css(styles); vm.queryType = 0; vm.queryService = row; } function cbxRoomStatusFormatter(row) { var styles = 'background:' + row.Color + ';'; if (row.ID == 0) { styles += 'color:#000;' } return "
" + row.Name + "
"; } function cbxRoomStatusOnSelect(row) { var styles = row.ID == 0 ? { background: "#FFF", color: "#000"} : { background: row.Color, color: "#FFF" }; $(this).combobox("textbox").css(styles); vm.queryType = 1; vm.queryRoomStatus = row; } function cbxAirFormatter(row) { var styles = "background:" + row.Color + ";"; if (row.ID == -1) { styles += "color:#000;" } return "
" + row.Name + "
"; } function cbxAirOnSelect(row) { var styles = row.ID == -1 ? { background: "#FFF", color: "#000"} : { background: row.Color, color: "#FFF" }; $(this).combobox("textbox").css(styles); vm.queryType = 2; vm.queryValve = row; } //空调模式 function airMode(mode) { switch (mode) { case 1: return lang.Refrigeration; case 2: return lang.Heating; case 3: return lang.BlowingIn; default: return ''; } } //空调风速 function fanSpeed(speed) { switch (speed) { case 1: return lang.low; case 2: return lang.Middle; case 3: return lang.HighSpeed; default: return ''; } } function serviceActive(service) { return vm.queryService.Code === service.Code && service.Status == 1; } function roomBackground(host) { var color = '#FFFFFF'; if (host.HostStatus) { switch (vm.queryType) { case 0://服务 for (var i in host.Services) { if (host.Services[i].Code == vm.queryService.Code && host.Services[i].Status == 1) { color = host.Services[i].Color; break; } } break; case 1://房态 if (vm.queryRoomStatus.ID != 0) { if (vm.queryRoomStatus.ID == host.RoomStatusID) { color = vm.queryRoomStatus.Color; } else if (vm.queryRoomStatus.ID == 32 && host.IsConnectingRoom) { color = vm.queryRoomStatus.Color; } } break; } } else { color = '#C9CBCA'; } return color; } var vm = avalon.define({ $id: 'rooms', queryType: 0, queryService: { Code: "", Name: "", Color: "" }, queryRoomStatus: { ID: 0, Name: "", Color: "" }, queryValve: { ID: 0, Name: "", Color: "" }, switchLine: true, floors: [] }); function loadRooms(opts, callback) { var options = opts || {}; !options.timeRefresh && $.tools.ajaxLoading(lang.LoadingData); $.ajax({ url: "/RoomStatus/LoadRooms/", type: "POST", cache: false, data: { page: page, rows: rows, groupId: options.group, isAirDetect: $("#chkAirDetect").is(':checked') }, success: function (r) { if (r.IsSuccess) { var tdCount = Math.floor(document.documentElement.clientWidth / 124); $('#rooms').html(""); var strHtml = ""; for (var i = 0; i < r.Data.length; i++) { for (var j = 0; j < r.Data[i].FloorRooms.length; j++) { if (j == 0) { strHtml += ""; } else if ($("#chkSwitchLine").is(':checked') && (j + 1) % tdCount == 1) { strHtml += ""; } var strRoomTemp = ""; //室内温度:大于28°显示红色,小于22°显示蓝色,默认显示绿色 if (r.Data[i].FloorRooms[j].RoomTemp > 28) { strRoomTemp = ""; } else if (r.Data[i].FloorRooms[j].RoomTemp < 22) { strRoomTemp = ""; } strHtml += "
  • "; strHtml += "
    " + r.Data[i].FloorRooms[j].RoomNumber; var CarbonVIP_Status = r.Data[i].FloorRooms[j].CarbonVIP; if (CarbonVIP_Status == "open") { strHtml += ""+r.Data[i].FloorRooms[j].RoomNumber+"
    "; } else if (CarbonVIP_Status == "close") { strHtml += ""+r.Data[i].FloorRooms[j].RoomNumber+""; } else if (CarbonVIP_Status == "exists_nostatus") { strHtml += ""+r.Data[i].FloorRooms[j].RoomNumber+""; } else { } //strHtml += "
    "; if ($("#chkAirDetect").is(':checked') && r.Data[i].FloorRooms[j].AirDetects.length > 0) {//显示空气质量检测 for (var k = 0; k < r.Data[i].FloorRooms[j].AirDetects.length; k++) { strHtml += "
    " + r.Data[i].FloorRooms[j].AirDetects[k].Name + ":" + r.Data[i].FloorRooms[j].AirDetects[k].Value + "
    "; } strHtml += "
    "; } else { //strHtml += "
    " + r.Data[i].FloorRooms[j].Power + "
    "; strHtml += "
    " + r.Data[i].FloorRooms[j].RoomStatus + " "+r.Data[i].FloorRooms[j].Power+"
    "; strHtml += "
    " + lang.Identity + ":" + r.Data[i].FloorRooms[j].Identity + " " + r.Data[i].FloorRooms[j].PowerSupplyName + "
    "; strHtml += "
    " + r.Data[i].FloorRooms[j].AirStatusName + " " + strRoomTemp + r.Data[i].FloorRooms[j].RoomTemp + "℃ " + r.Data[i].FloorRooms[j].SettingTemp + "℃" + "
    "; strHtml += "
    " + r.Data[i].FloorRooms[j].ValveName + " " + airMode(r.Data[i].FloorRooms[j].Mode) + " " + fanSpeed(r.Data[i].FloorRooms[j].FanSpeed) + "
    "; if (r.Data[i].FloorRooms[j].Peripheral != "") { strHtml += "
    " + r.Data[i].FloorRooms[j].Peripheral + "
    "; } strHtml += "
    " + lang.CurrentService + ":" + r.Data[i].FloorRooms[j].Services.length + "
    "; strHtml += "
    "; for (var k = 0; k < r.Data[i].FloorRooms[j].Services.length; k++) { strHtml += "" + r.Data[i].FloorRooms[j].Services[k].Name + ""; } strHtml += "
    "; } strHtml += "
"; } strHtml += ""; } strHtml += ""; $('#rooms').html(strHtml); tdCount = null; strHtml = null; } !options.timeRefresh && $.tools.ajaxLoadEnd(); callback && callback(); }, error: function () { !options.timeRefresh && $.tools.ajaxLoadEnd(); callback && callback(); } }); } var timeoutID1 = null; function startTimeRefresh() { window.clearTimeout(timeoutID1); timeoutID1 = null; loadRooms({ timeRefresh: true, group: selectedGroup }, function () { timeoutID1 = setTimeout("startTimeRefresh()", 8000); }); } function refresh() { $('#cbtGroup').combotree('reset'); $('#cbxService').combobox('select', ''); $('#cbxRoomStatus').combobox('select', 0); loadRooms(); } $(function () { startTimeRefresh(); });