// io.sails.autoConnect = false; // io.sails.url = "http://" + alarmServiceIP + ":" + alarmServicePort + ""; // socket=""; // if(alarmServiceIP!=""&&alarmServicePort!=""){ // socket = io.sails.connect(); // } //socket = io.sails.connect(); /** * Created by han on 2017/1/8. */ //var alarmServiceURL="http://"+alarmServiceIP+":"+alarmServicePort+"/"; //socket = io.connect(io.sails.url); var socket; (function () { var socketOption = { path: '/wsaccess/socket.io/' }; if (isAuthEnable != "True") { socketOption.reconnection = false; } if (!socket) { socket = GD.io("http://" + authServiceIP + ":" + authServicePort, socketOption); socket.socketio.on('connect', function (e) { alarmInit(); }); // socket.on('message', function (result) { }); // socket.on('disconnect', function () { // }); // socket.on('error', function (data) { // console.log(data); // // alert('后台服务连接失败'); // // return; // }) } })(); (function (W) { var GD = W.GD || {}; function setAlarmTableStyle(borderPaneReal, tablePane, topToolbar, bottomToolBar, leftBar, tablestyle) { var tableHeader = tablePane.getTableHeader(), tableView = tablePane.getTableView(); var $tableHeader = $(tableHeader.getView()), $bottomToolBarView = $(bottomToolBar.getView()); function setTableHeaderStyle() { // tableHeader.setHeight((tablestyle.headheight || 63)*ratio.ratioY); // tableHeader.getLabelFont = function () { // return tablystyle.headerfontstyle + tablestyle.headerfontsize*ratio.ratioY + 'px ' + tablestyle.headerfontfamily; // } // tablestyle.headBackImage = tablestyle.headBackImage || 'Script/image/title背景.png'; // if (tablestyle.headBackImage) { // $tableHeader.css({ // background: 'url('+ PAGEROOTDIR + tablestyle.headBackImage +') center center no-repeat', // backgroundSize: '100% 100%' // }) // } else { // $tableHeader.css({ // background: 'liner-gradient(to bottom, '+ tablestyle.headcolor +', '+ tablestyle.headGradientcolor + ')', // }) // } } function setTableBodyStyle() { (function (unSelData, selData) { var dm = tablePane.getDataModel(), sm = dm.getSelectionModel(), drawColumn = tableHeader.drawColumn; tablePane.getTableView().getCheckIcon = function (d) { if (sm.contains(d)) { return selData } return unSelData; } tableHeader.drawColumn = function (g, column, x, y, width, height) { var img; if (!(column.getName() || column.getDisplayName())) { if (sm.getSelection()._as.length > 0) { img = selData; } else { img = unSelData; } ht.Default.drawImage(g, img, x + 0.5 * width - 6, y + height * 0.5 - 6, 12, 12); } else { drawColumn.apply(this, arguments); } } })( { width: 12, height: 12, comps: [ { type: 'rect', background: 'rgb(255,255,255)', borderWidth: 2, borderColor: 'rgb(204,214,215)' } ] }, { width: 12, height: 12, comps: [ { type: 'rect', background: 'rgb(255,255,255)', borderWidth: 2, borderColor: 'rgb(204,214,215)', rect: [0, 0, 12, 12] }, { type: 'shape', shadow: false, points: [2, 6, 6, 10, 10, 2], segments: [1, 2, 2], borderWidth: 2, borderColor: 'rgb(186,118,81)' } ] } ); } function setLeftBarStyle() { if (!leftBar) return; var $leftBarView = $(leftBar.getView()); $leftBarView.css({ background: 'linear-gradient(to bottom, ' + tablestyle.backcolor + ', rgb(7, 45, 110))', }).find('div').css({ cursor: 'pointer' }) } function setBorderPaneStyle() { borderPaneReal.setBottomHeight(60 * ratio.ratioY); borderPaneReal.setTopHeight(60 * ratio.ratioY); borderPaneReal.setLeftWidth(45 * ratio.ratioX); $(borderPaneReal.getView()).css({ border: '1px solid rgb(14,37,79)' }) } function setBottomToolBarStyle() { if (!bottomToolBar) return; $bottomToolBarView.css({ borderTop: '5px solid rgb(27,51,95)', backgroundColor: 'rgb(11,32,89)' }).find('div').css({ left: 0 }) bottomToolBar.setLabelFont(16 * ratio.ratioY + 'px "苹方 粗体"'); bottomToolBar.setLabelColor('rgb(7,192,255)'); var confirmButton = bottomToolBar.getItemById('confirm'), confirmAllButton = bottomToolBar.getItemById('confirmAll'); var cssobj = { borderRadius: 0, cursor: 'pointer', boxShadow: '1px 1px 4px rgb(20,20,20)', backgroundImage: 'url(' + PAGEROOTDIR + 'Script/image/f4button.png)', backgroundSize: '100% 100%', backgroundPosition: 'center', backgroundRepeat: 'no-repeat', marginLeft: -20 } function setButtonStyle(button) { var $buttonView = $(button.element.getView()); button.element.setBorderColor('rgba(0,0,0,0)'); button.element.setBackground('rgba(0,0,0,0)'); button.element.setSelectBackground('rgba(0,0,0,0)'); button.element.setLabelFont(16 * ratio.ratioY + 'px "苹方 粗体"'); button.element.setWidth(80 * ratio.ratioX); button.element.setHeight(30 * ratio.ratioY); $buttonView.css(cssobj).hover(function () { $(this).css({ boxShadow: '0 0 10px rgb(200, 200, 200)' }) }, function () { $(this).css({ boxShadow: '1px 1px 4px rgb(20,20,20)', }) }).mousedown(function () { $(this).css({ marginTop: 1, marginLeft: 1 }) }).mouseup(function () { $(this).css({ marginTop: 0, marginLeft: 0 }) }); } if (confirmButton) { setButtonStyle(confirmButton); } if (confirmAllButton) { setButtonStyle(confirmAllButton); } } function setTopToolBarStyle() { if (!topToolbar) return; topToolbar.setLabelColor('rgb(160,160,160)'); topToolbar.setLabelFont('bold ' + 21 * ratio.ratioY + 'px "苹方 特粗"') topToolbar.setItemGap(20 * ratio.ratioX); var items = topToolbar.getItems(), element, item, values, icons; for (var i = 0, len = items.length; i < len; i++) { item = items[i] || {}; element = item.element; if (!element) continue; if (element instanceof ht.widget.ComboBox) { (function (element) { // element.setBackground('url('+ PAGEROOTDIR +'Script/image/alarmComboboxBG.png) center center no-repeat'); element.getLabelColor = function (u, i) { if (!this.isOpened() && !i) { return 'rgb(218,219,172)'; } else { return i ? 'rgb(0,0,0)' : 'rgb(0,0,0)'; } } element.setLabelFont('bold ' + 18 * ratio.ratioY + 'px "苹方 特粗"') element.onOpened = function () { var view = this._listView.getView(), $view = $(view); $view.css({ // background: 'rgb(255,255,255)' maxHeight: 500 * ratio.ratioY, cursor: 'pointer' }); $(this.getView()).find('input').css({ 'display': 'none' }) } // element.setDropDownWidth(140); element._dropDownBackground = 'rgb(255,255,255)'; element.setSelectBackground('rgb(104,216,255)'); $(element.getView()).css({ border: '1px solid rgba(0,0,0,0)', height: 36 * ratio.ratioY, cursor: 'pointer' }).addClass('back-size100'); element.setDropDownIcon({ width: 9, height: 6, comps: [ { type: 'triangle', borderJoin: 'miter', background: 'rgba(35,213,91,0)', rotation: Math.PI } ] }); var drawValue = element.drawValue; element.drawValue = function (g, value, c, x, y, w, h) { var args = Array.prototype.slice.call(arguments, 0); args[3] = 20 * ratio.ratioX; drawValue.apply(this, args); } })(element); } else if (element instanceof ht.widget.MultiComboBox) { (function () { element.setDropDownIcon(null); $(element.getView()).css({ border: '1px solid rgba(0,0,0,0)', height: 36 * ratio.ratioY, cursor: 'pointer' }).addClass('back-size100'); element.getLabelColor = function (u, i) { if (!this.isOpened() && !i) { return 'rgb(218,219,172)'; } else { return i ? 'rgb(0,0,0)' : 'rgb(0,0,0)'; } } element.setLabelFont(18 * ratio.ratioY + 'px "苹方 粗体"') var drawValue = element.drawValue; element.drawValue = function (g, x, y, w, h) { var args = Array.prototype.slice.call(arguments, 0); args[1] = 20 * ratio.ratioY; drawValue.apply(this, args); } })(); } else if (element instanceof ht.widget.Button) { element.setBorderColor('rgba(0,0,0,0)'); element.setLabelColor('rgb(255,255,255)'); element.setSelectBackground('rgba(0,0,0,0)'); element.setLabelFont(18 * ratio.ratioY + 'px "苹方 粗体"'); element.setBackground('rgba(0,0,0,0)'); $(element.getView()).css({ width: 69 * ratio.ratioX, height: 30 * ratio.ratioY, cursor: 'pointer', backgroundImage: 'url(' + PAGEROOTDIR + 'Script/image/f2button.png)', backgroundPosition: 'center', backgroundSize: '100%' }).on('mousedown', function () { $(this).css({ margin: '1px 0 0 1px' }) }).on('mouseup', function () { $(this).css({ margin: 0 }) }) } else if (element) { $(element).css({ fontSize: 18 * ratio.ratioY + 'px', color: 'rgb(218,219,172)', fontWeight: 'normal' }) } } } if (tablestyle.IsHeadVisible) { setBorderPaneStyle(); setTableHeaderStyle(); setTableBodyStyle(); setTopToolBarStyle(); setBottomToolBarStyle(); setLeftBarStyle(); } } function setAreaTreeViewStyle(treeView) { treeView.getLabelColor = function () { return 'rgba(0,0,0,1)'; } treeView.getLabelFont = function () { return 18 * ratio.ratioY + 'px "苹方 粗体"'; } treeView.setSelectBackground('rgb(104,216,255)'); treeView.setRowHeight(36 * ratio.ratioY); treeView.getView().style.background = '#FCFCFC'; treeView.setIndent(24 * ratio.ratioX); treeView.setAutoHideScrollBar(false); } GD.setAlarmTableStyle = setAlarmTableStyle; GD.setAreaTreeViewStyle = setAreaTreeViewStyle; W.GD = GD; })(window); //自定义字段 state0 报警级别id state1区域id state2组id state3系统id var alarmLevelDic = {}; var GoldenAlarm = {}; // var flag = 1; //报警声音 0静音 1播放 var alarmCategoryDic = {}; var alarmCategoryDicName = {}; var alarmAreasDic = {}; var alarmLevelDicName = {}; var alarmGroupDic = {}; var alarmGroupDicName = {}; var dataAreaNameReal = {}; var alarmAreaDicName = {}; var alarmAreaDicNameId = {}; var currentAreaName = "*"; var audio = new Audio(); var alarmSystem = []; var alarmAreaIds = []; var alarmAreaData = []; var alarmSystemObj = {}; var allUnsureAlarm = []; var alarmGroupValueReal, alarmLevelValueReal, alarmStateValueReal, alarmAreaValueReal, realdataModelReal, formRealLeft, formHisLeft, toolbar2His, toolbar2Real, alarmFilterState = false, alarmAreaFilter = function () { return true; }; var isRealFirst = null; // 实时判断是否是首出故障 var isHisFirst = null; // 历史判断是否是首出故障 if (typeof (localStorage) != "undefined" || localStorage != null) { currentAreaName = localStorage.getItem("currentAreaName") == null ? "*" : localStorage.getItem("currentAreaName"); } var alarmAreas; var currentControlContent = ""; var areaIds = ""; var alarmInfoDialog; var alarmData = []; var alarmCateReal; var alarmLevelArray = [], _alarmLevelArray = []; var alarmLevelVisible; var alarmStates = ['*', '未确认', '已确认', '未恢复', '已恢复']; var alarmStatesDic = { '未确认': 'is_ensure=0', '已确认': 'is_ensure=1', '未恢复': 'is_reset=0', '已恢复': 'is_reset=1' }; var alarmHisTableColumnDic = { 'alarmtime': 'trigger_time', 'area': 'state1', 'tagName': 'tag_name', 'isFirst': 'is_first', 'alarmlevel': 'state0', 'levelId': 'level', 'ensureinfo': 'is_ensure', 'resetinfo': 'is_reset', 'state': '', 'alarmshuoming': 'alarm_message', 'alarmGroup': 'group_name', 'desc': 'user_data0', 'value': 'value', } function getFlag() { // 获取当前时间戳(以ms为单位) var timestamp = new Date().getTime().toString(); return timestamp; } //获取报警组 function getAlarmGroups(callback) { callback = callback || function () { }; var reqData = { "method": "GetGroups", "param": {} }; var flagnum = "group"; var eventName = "/alarm/doservice?" + flagnum; var dataTypes = []; dataTypes.push("*"); //console.log('报警组----'+flagnum); if (!GD.isEmptyObj(alarmGroupDic)) { callback(alarmGroupDic); return; } socket.alarmPost(eventName, reqData, function (data) { if (data.success) { var DataType = data.data.data; for (var i = 0; i < DataType.length; i++) { alarmGroupDic[DataType[i].group_name] = DataType[i]; alarmGroupDicName[DataType[i].id] = DataType[i]; dataTypes.push(DataType[i].group_name); } } callback(alarmGroupDic); }); return dataTypes; } //根据组名称获取组ID /*function getAlarmGroupNameByName(groupName){ return alarmGroupDic[groupName].id; } getAlarmGroupNameByName();*/ //根据报警类型名称获取报警类型ID function getAlarmCateByName(cateName) { if (cateName == null || cateName.length <= 0) return 0; for (var key in alarmCategoryDicName) { return alarmCategoryDicName[key].id; } } function getAlarmSnapshort(flagnum, callback, isAll) { callback = callback || function () { }; var extra = GD.getParams('extra') || {},//获取用户所属区域 userArea = extra.area || '*'; var condition = getFilterCondition(userArea, "*", null, null, null); var reqData = { page_no: 0, page_size: 500, "condition": condition }; var eventName = "/alarm/getSnapshots?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (!isAll) { callback(data); return ; } if (data && data.success) { var total = data.data.total; if (total < 500) { callback(data); return ; } reqData.page_size = total; socket.alarmPost(eventName, reqData, function (_data) { callback(_data); }) } else { callback(data); } }) } function refreshAlarmInfoWindow() { var flagnum = 'snapshotwindow'; getAlarmSnapshort(flagnum, function (data) { if (data && data.success) { var total = data.data.total; alarmData = data.data.data || []; // 弹窗 条件:(popup || is_first===1) && is_ensure === 0 (function (alarmData, total) { var ad = [], d, state0; for (var i = 0, len = alarmData.length; i < len; i++) { d = alarmData[i] || {}; state0 = d.state0 || '0'; if (d.is_first === 1 || alarmLevelDic[state0] && alarmLevelDic[state0].popup == 1) { if (d.is_ensure === 0) ad.push(d); } } setTimeout(function () { if (typeof (alarmAreasDic) != "undefined") { AlarmInfoShow(ad, ad.length, alarmDialogStyle); } }, 100); })(alarmData, total); } }, true) } var dataTypes = []; dataTypes.push("*"); var DataType; //获取报警级别 function getAlarmLevels() { var reqData = { "method": "GetLevels", "param": {} }; // var flagnum = getFlag(); var flagnum = "level"; var eventName = "/alarm/doservice?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { _alarmLevelArray = []; DataType = data.data.data; for (var i = 0; i < DataType.length; i++) { alarmId = i + 1; alarmLevelDic[DataType[i].level] = DataType[i]; alarmLevelDicName[DataType[i].level_name] = DataType[i]; dataTypes.push(DataType[i].level_name); _alarmLevelArray.push(DataType[i].level_name); } alarmFilterState = true; isRealFirst = 1; //获取实时页面上的故障信息 isRealFirst = null; flagnum = 'snapshotgz'; getAlarmSnapshort(flagnum, function (data) { if (data && data.success) { var total = data.data.total; alarmData = data.data.data || []; // 弹窗 条件:(popup || is_first===1) && is_ensure === 0 (function (alarmData, total) { var ad = [], d, state0; for (var i = 0, len = alarmData.length; i < len; i++) { d = alarmData[i] || {}; state0 = d.state0 || ''; if (d.is_first === 1 || alarmLevelDic[state0] && alarmLevelDic[state0].popup == 1) { if (d.is_ensure === 0) ad.push(d); } } setTimeout(function () { if (typeof (alarmAreasDic) != "undefined") { AlarmInfoShow(ad, ad.length, alarmDialogStyle); } }, 500); })(alarmData, total); var timenum = getFlag(); socket.alarmPost("/alarm/SubscribeNotify?" + timenum, function (data) { if (data[0] == "alarm_notify") { var aladata = data[1]; var refreshWindowFlag = false, refreshListFlag = false; var len = alarmData.length, state0, d; for (var j = 0; j < aladata.length; j++) { d = aladata[j] || {}; // if (typeof realdataModelReal != "undefined") { // var b = true; // attrobject = aladata[j]; // if (alarmStateValueReal != "*") { // var fieldValue = alarmStatesDic[alarmStateValueReal]; // if (fieldValue.split('=')[0] == "is_ensure") { // b = (attrobject.is_ensure == fieldValue.split('=')[1]); // } else if (fieldValue.split('=')[0] == "is_reset") { // b = (attrobject.is_reset == fieldValue.split('=')[1]); // } // } // if (dataAreaNameReal == "*" || attrobject.state1 == alarmAreaDicName[dataAreaNameReal].id) { // if (alarmGroupValueReal == "*" || attrobject.state2 == alarmGroupDic[alarmGroupValueReal].id) { // if ((alarmLevelValueReal.indexOf(alarmLevelDic[attrobject.state0].level_name) != -1 || alarmLevelValueReal == "*") && isRealFirst == attrobject.is_first) { // if (alarmStateValueReal == "*" || b) { // pageinputReal.value = 1; // getRealAlarmInfos(realdataModelReal, tablePaneReal, pageinputReal.value, rowssizeReal.getValue(), pageCountReal, dataAreaNameReal, alarmGroupValueReal, alarmLevelValueReal, alarmStateValueReal); // } // } // } // } // } //弹窗的条件 //未确认未恢复 并且(在报警客户端设置了弹窗或者首出故障) state0 = d.state0; if (((alarmLevelDic[state0] && alarmLevelDic[state0].popup === 1) || d.is_first === 1)) { /* if (d.is_ensure === 0 && d.is_reset === 0) { // 未确认未恢复 alarmData = alarmData.concat(d); AlarmInfoShow(alarmData, len, alarmDialogStyle); } else if (d.is_ensure === 1) { for (var k = 0; k < alarmData.length; k++) { if (alarmData[k].tag_name == d.tag_name) { alarmData.splice(k, 1); } } if (alarmData.length != 0) { len = alarmData.length - 1; } else { len = 0; } AlarmInfoShow(alarmData, len, alarmDialogStyle); } */ !refreshWindowFlag && (refreshWindowFlag = true); } } refreshWindowFlag && refreshAlarmInfoWindow(); if (refreshWindowFlag) { } else { realdataModelReal && getRealAlarmInfos(realdataModelReal, tablePaneReal, pageinputReal.value, rowssizeReal.getValue(), pageCountReal, dataAreaNameReal, alarmGroupValueReal, alarmLevelValueReal, alarmStateValueReal); } } }); } }, true) } }); // return dataTypes; } function getAlarmLevelsData(callback) { callback = callback || function () { }; if (!GD.isEmptyObj(alarmLevelDic)) { callback(alarmLevelDic); return; } var reqData = { "method": "GetLevels", "param": {} }; // var flagnum = getFlag(); var flagnum = "level"; var eventName = "/alarm/doservice?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { DataType = data.data.data; for (var i = 0; i < DataType.length; i++) { alarmId = i + 1; alarmLevelDic[DataType[i].level] = DataType[i]; alarmLevelDicName[DataType[i].level_name] = DataType[i]; dataTypes.push(DataType[i].level_name); } callback(alarmLevelDic); } else { callback({}); } }); } // 获取系统信息 function getAlarmSystem(cb) { var reqData = { "method": "GetSystem", "param": {} }; //var flagnum = getFlag(); var flagnum = "system"; //console.log("系统信息----"+flagnum); var eventName = "/alarm/doservice?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success && data.data) { return cb(data.data.data); } cb([]); }) } //根据等级名称获取等级ID function getAlarmLevelNameByName(levelName) { for (var key in alarmLevelDicName) { return alarmLevelDicName[key].level; } } //获取报警等级表 function getAlarmLevelTables(model, node) { model.clear(); var reqData = { "method": "GetLevels", "param": {} }; // var flagnum = getFlag(); var flagnum = "levels"; var eventName = "/alarm/doservice?" + flagnum;; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { var alarmLevels = data.data.data; var values = []; var datalen = alarmLevels.length; var lineColor = []; for (var i = 0; i < datalen; i++) { data = new ht.Data(); data.setId(i + 1); data.a('alarmName', alarmLevels[i].level_name); data.a('wavName', alarmLevels[i].wave_file); data.a('alarmColor', ARGB2HexString(alarmLevels[i].alarm_color)); data.a('resetColor', ARGB2HexString(alarmLevels[i].reset_color)); data.a('confirmColor', ARGB2HexString(alarmLevels[i].ensure_color)); data.a('normalColor', ARGB2HexString(alarmLevels[i].normal_color)); data.a('islight', alarmLevels[i].popup == 1 ? "是" : "否"); data.a('alarmLevel', alarmLevels[i].level); model.add(data); } model.sm().ss(data); } }); } //删除报警等级 function deleteAlarmLevels(levelIds) { var reqData = { "method": "DeleteLevel", "param": { level: Number(levelIds) } }; // var flagnum = getFlag(); var flagnum = "deletelevel"; var eventName = "/alarm/doservice?" + flagnum;; socket.alarmPost(eventName, reqData, function (data) { }) } //批量添加/修改报警等级 function updateAlarmLevels(alarmLevels) { var reqData = { "method": "UpdateLevel", "param": alarmLevels }; // var flagnum = getFlag(); var flagnum = "updatelevel"; var eventName = "/alarm/doservice?" + flagnum;; socket.alarmPost(eventName, reqData, function (data) { }) } //获取报警类别 function getAlarmCategories(callback) { callback = callback || function () { }; var reqData = { "method": "GetCategories", "param": {} }; // var flagnum = getFlag(); var flagnum = "category"; var eventName = "/alarm/doservice?" + flagnum;; var dataTypes = []; dataTypes.push("*"); if (!GD.isEmptyObj(alarmCategoryDic)) { callback(alarmCategoryDic); return; } socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { var DataType = data.data.data; for (var i = 0; i < DataType.length; i++) { alarmCategoryDic[DataType[i].id] = DataType[i]; alarmCategoryDicName[DataType[i].category_name] = DataType[i]; dataTypes.push(DataType[i].category_name); } callback(alarmCategoryDic); } else { callback({}); } }); return dataTypes; } //获取报警类型列表 function getAlarmCateTables(model) { model.clear(); var reqData = { "method": "GetCategories", "param": {} }; // var flagnum = getFlag(); var flagnum = "categories"; var eventName = "/alarm/doservice?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { var alarmCates = data.data.data; var datalen = alarmCates.length; for (var i = 0; i < datalen; i++) { data = new ht.Data(); data.a('alarmCateId', alarmCates[i].id); data.a('alarmCateName', alarmCates[i].category_name); model.add(data); } model.sm().ss(data); } }); } //批量修改报警类型 function updateAlarmCates(alarmCates) { var reqData = { "method": "UpdateCategory", "param": alarmCates }; //var flagnum = getFlag(); var flagnum = "updatecategory"; var eventName = "/alarm/doservice?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { }) } //删除报警类型 function deleteAlarmCates(cateIds) { var reqData = { "method": "DeleteCategory", "param": { id: Number(cateIds) } }; //var flagnum = getFlag(); var flagnum = "deletecategory"; var eventName = "/alarm/doservice?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { }) } //获取报警分组表 function getAlarmGropTables(model) { var reqData = { "method": "GetGroups", "param": {} }; // var flagnum = getFlag(); var flagnum = "groups"; var eventName = "/alarm/doservice?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (!data) return; model.clear(); var alarmGroup = data && data.data.data || []; var values = []; var datalen = alarmGroup.length; for (var i = 0; i < datalen; i++) { data = new ht.Data(); data.setId(alarmGroup[i].id); data.a('groupName', alarmGroup[i].group_name); model.add(data); } // model.sm().ss(data); }); } //添加或更新报警组信息 function updateAlarmGroup(alarmGroups) { var reqData = { "method": "UpdateGroup", "param": alarmGroups }; // var flagnum = getFlag(); var flagnum = "updategroup"; var eventName = "/alarm/doservice?" + flagnum;; socket.alarmPost(eventName, reqData, function (data) { }) } //删除分组 function deleteAlarmGrop(gropIds) { var reqData = { "method": "DeleteGroup", "param": { id: Number(gropIds) } }; //var flagnum = getFlag(); var flagnum = "deletegroup"; var eventName = "/alarm/doservice?" + flagnum;; socket.alarmPost(eventName, reqData, function (data) { }) } //获取报警区域 function getAlarmAreas(callback) { callback = callback || function () { }; var reqData = { "method": "GetAreas", "param": {} }; // var flagnum = getFlag(); var flagnum = "areas"; // console.log("报警区域---"+flagnum); var eventName = "/alarm/doservice?" + flagnum;; var dataTypes = []; dataTypes.push("*"); socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { var DataType = data.data.data; var nameid; for (var i = 0; i < DataType.length; i++) { nameid=DataType[i].area_name+DataType[i].id; dataTypes.push(DataType[i].area_name); alarmAreaDicName[DataType[i].area_name] = DataType[i]; alarmAreaDicNameId[nameid] = DataType[i]; alarmAreasDic[DataType[i].id] = DataType[i].area_name; } callback(DataType); } else { callback({}); } /*getAlarmAreasDicName(DataType); if(currentControlContent.indexOf("realalarm")!=-1){ getRealAlarmInfos(realdataModelReal,tablePaneReal,1,20,pageCountReal,currentAreaName,pointtypeReal,alarmCateValueReal,alarmLevelValueReal); } if(currentControlContent.indexOf("alarmpointconfig")!=-1){ getAlarmPoints(dataModelPointConfig,1,20,pageCountPointConfig,currentAreaName,pointtypePointConfig); } if(currentControlContent.indexOf("hisalarm")!=-1){ getHisAlarmInfos(hisdataModelHis,tablePaneHis,1,20,pageCountHis,currentAreaName,pointtypeHis,alarmCateValueHis,alarmLevelValueHis); }*/ }); return dataTypes; } //添加或更新报警区域信息 function updateAlarmArea(alarmAreas) { var reqData = { "method": "UpdateArea", "param": alarmAreas }; //var flagnum = getFlag(); var flagnum = "updatearea"; var eventName = "/alarm/doservice?" + flagnum;; socket.alarmPost(eventName, reqData, function (data) { }) } //删除报警区域信息 function deleteAlarmArea(areaId) { var reqData = { "method": "DeleteArea", "param": { id: Number(areaId) } }; // var flagnum = getFlag(); var flagnum = "deletearea"; var eventName = "/alarm/doservice?" + flagnum;; socket.alarmPost(eventName, reqData, function (data) { }) } //获取报警区域表 function getAlarmAreaTables(model) { var reqData = { "method": "GetAreas", "param": {} }; // var flagnum = getFlag(); var flagnum = "getareas"; var eventName = "/alarm/doservice?" + flagnum;; socket.alarmPost(eventName, reqData, function (data) { if (!data) return; model.clear(); var alarmArea = data.data && data.data.data || []; var values = []; var datalen = alarmArea.length; for (var i = 0; i < datalen; i++) { data = new ht.Data(); data.setId(alarmArea[i].id); data.a('areaName', alarmArea[i].area_name); data.a('parentId', alarmArea[i].parent_id); model.add(data); } // model.sm().ss(data); }); } //获取区域字典信息 function getAlarmAreasDicName(children) { if (children.length > 0) { for (var i = 0; i < children.length; i++) { if (alarmAreaDicName[children[i].area_name] > 0) { continue; } alarmAreaDicName[children[i].area_name] = children[i].id; // if(children[i].Children.length>0){ // getAlarmAreasDicName(children[i].Children); // } } } } function getAreaDic(areaInfos) { if (areaInfos.length > 0) { for (var i = 0; i < areaInfos.length; i++) { if (alarmAreasDic[areaInfos[i].Id] == areaInfos[i].Id) { continue; } alarmAreasDic[areaInfos[i].Id] = areaInfos[i]; if (areaInfos[i].Children.length) { getAreaDic(areaInfos[i].Children); } } } } //等待 function sleep(numberMillis) { var now = new Date(); var exitTime = now.getTime() + numberMillis; while (true) { now = new Date(); if (now.getTime() > exitTime) return; } } //获取条件搜索集合 function getFilterCondition(dataAreaName, alarmlevel, alarmgroup, startTime, endTime, alarmstate) { var condition = []; if (dataAreaName != null && dataAreaName != "*") { // var conditionAreaId = new FieldCondition(); // conditionAreaId.field = "state1"; // conditionAreaId.value = alarmAreaDicName[dataAreaName].id; // conditionAreaId.method = 0; // condition.push(conditionAreaId); // getAreaIds(alarmAreaDicName[dataAreaName].id); if (typeof (alarmAreaDicName[dataAreaName]) == "undefined") { var conditionAreaId = new FieldCondition(); conditionAreaId.field = "state1"; conditionAreaId.value = -1; conditionAreaId.method = 0; condition.push(conditionAreaId); } else { for (var i = 0; i < alarmAreaIds.length; i++) { var conditionAreaId = new FieldCondition(); conditionAreaId.field = "state1"; conditionAreaId.value = alarmAreaIds[i]; conditionAreaId.method = 0; condition.push(conditionAreaId); } } // console.log(alarmAreaIds); } /*if(pointtype!=null && pointtype!="*"){ var conditionPointType=new FieldCondition(); conditionPointType.field="TagType"; conditionPointType.value=DataType[pointtype]; conditionPointType.method=0; condition.push(conditionPointType); }*/ /*if(alarmcate!=null && alarmcate!="*"){ var conditionPointType=new FieldCondition(); conditionPointType.field="AlarmCategoryId"; conditionPointType.value=alarmCategoryDicName[alarmcate].Id; conditionPointType.method=0; condition.push(conditionPointType); }*/ if (alarmlevel != null && alarmlevel != "*") { // if (alarmLevelVisible) { // var conditionLevelInfo = new FieldCondition(); // conditionLevelInfo.field = "state0"; // conditionLevelInfo.value = alarmLevelDicName[alarmlevel].level; // conditionLevelInfo.method = 0; // condition.push(conditionLevelInfo); // } else { // for (var i = 0; i < alarmlevel.length; i++) { // var conditionLevelInfo = new FieldCondition(); // conditionLevelInfo.field = "state0"; // if (JSON.stringify(alarmLevelDicName) != "{}") { // conditionLevelInfo.value = alarmLevelDicName[alarmlevel[i]].level; //getAlarmLevelNameByName(alarmlevel); // } // conditionLevelInfo.method = 0; // condition.push(conditionLevelInfo); // } // } for (var i = 0; i < alarmlevel.length; i++) { if (alarmlevel[i] != "*") { var conditionLevelInfo = new FieldCondition(); conditionLevelInfo.field = "state0"; if (JSON.stringify(alarmLevelDicName) != "{}") { conditionLevelInfo.value = alarmLevelDicName[alarmlevel[i]] && alarmLevelDicName[alarmlevel[i]].level; //getAlarmLevelNameByName(alarmlevel); } conditionLevelInfo.method = 0; condition.push(conditionLevelInfo); } } } if (alarmgroup != null && alarmgroup != "*") { var contionGroupInfo = new FieldCondition(); contionGroupInfo.field = "state2"; contionGroupInfo.value = alarmGroupDic[alarmgroup] && alarmGroupDic[alarmgroup].id || "*"; contionGroupInfo.method = 0; condition.push(contionGroupInfo); } if (startTime) { var contionTimeInfo = new FieldCondition(); contionTimeInfo.field = "alarm_time"; contionTimeInfo.value = new Date(startTime).getTime(); //new Date(startTime).getTime()/1000; contionTimeInfo.method = 1; condition.push(contionTimeInfo); } if (endTime) { var contionTimeInfo = new FieldCondition(); contionTimeInfo.field = "alarm_time"; contionTimeInfo.value = new Date(endTime).getTime(); //new Date(endTime).getTime()/1000; contionTimeInfo.method = 2; condition.push(contionTimeInfo); } if (isHisFirst != null && (endTime != null || startTime != null)) { var contionInfo = new FieldCondition(); contionInfo.field = "is_first"; contionInfo.value = isHisFirst; //new Date(endTime).getTime()/1000; contionInfo.method = 0; condition.push(contionInfo); } if (isRealFirst != null && endTime == null && startTime == null) { var contionInfo = new FieldCondition(); contionInfo.field = "is_first"; contionInfo.value = isRealFirst; //new Date(endTime).getTime()/1000; contionInfo.method = 0; condition.push(contionInfo); } if (alarmstate != null && alarmstate != "*") { var contionStateInfo = new FieldCondition(); contionStateInfo.field = alarmStatesDic[alarmstate].split('=')[0]; contionStateInfo.value = alarmStatesDic[alarmstate].split('=')[1]; contionStateInfo.method = 0; condition.push(contionStateInfo); } return condition; } //设置报警点屏蔽属性 function setAlarmShield(tagName, value) { var tagnames = tagName.split(','); socket.emit('goldenalarm.setAlarmShield', { "TagNames": tagnames, "IsShield": value }); socket.once('goldenalarm.setAlarmShield', function (data) { if (data.result.ecode == "Ok") { } }); } //删除报警点 function deleteAlarmPoints(tagaName) { var reqData = tagaName; var eventName = "/alarm/deleteTags"; socket.alarmPost(eventName, reqData, function (data) { }) } //添加或更新报警点 function updateAlarmPoints(alarmPoints) { var reqData = alarmPoints; var eventName = "/alarm/appendTags"; socket.alarmPost(eventName, reqData, function (data) { }) } //获取实时报警信息 //realdataModelReal,tablePaneReal,pageinputReal.value,rowssizeReal.getValue(),pageCountReal,dataAreaNameReal,pointtypeReal,alarmCateValueReal,alarmLevelValueReal function getRealAlarmInfos(model, node, pageIndex, pageSize, pageCount, dataAreaName, alarmGroup, alarmlevel, alarmstate) { var condition = getFilterCondition(dataAreaName, alarmlevel, alarmGroup, null, null, alarmstate); var reqData = { page_no: pageIndex - 1, page_size: pageSize, "condition": condition }; // var flagnum = getFlag(); var flagnum = "snapshot"; var eventName = "/alarm/getSnapshots?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { model.clear(); var alarmRealInfos = data.data.data; pageCount.setValue(Math.ceil(data.data.page_count)); var pageNumData = toolbar2Real && toolbar2Real.getItemById('realAlarmTotalPageNum') || {}; pageNumData.label = '共 '+ (data.data.page_count || 1) +' 页'; toolbar2Real && toolbar2Real.redraw(); var datalen = alarmRealInfos.length; var lineColor = []; var resetColor = []; var ensureColor = []; var isEnsures = []; var isResets = []; for (var i = 0; i < datalen; i++) { data = new ht.Data(); data.setId(i + 1); data.a('tagName', alarmRealInfos[i].tag_name); data.a('groupName', alarmGroupDicName[alarmRealInfos[i].state2] && alarmGroupDicName[alarmRealInfos[i].state2].group_name); data.a('desc', alarmRealInfos[i].user_data0); data.a('value', GetDital(alarmRealInfos[i].value, 2)); data.a('ensureinfo', alarmRealInfos[i].is_ensure); data.a('resetinfo', alarmRealInfos[i].is_reset); data.a('isFirst', alarmRealInfos[i].is_first); var date = new Date(); // date.setTime(alarmRealInfos[i].alarm_time); date.setTime(alarmRealInfos[i].trigger_time); data.a('alarmtime', moment(date).format("YYYY-MM-DD HH:mm:ss")); data.a('area', alarmAreasDic[alarmRealInfos[i].state1]); if (typeof alarmLevelDic[alarmRealInfos[i].state0] != "undefined") { data.a('alarmlevel', alarmLevelDic[alarmRealInfos[i].state0].level_name); } data.a("levelId", alarmRealInfos[i].state0); if (!alarmRealInfos[i].is_ensure) { if (alarmRealInfos[i].is_reset) { data.a('state', "未确认|已恢复"); } else { data.a('state', "未确认|未恢复"); } } else { if (!alarmRealInfos[i].is_reset) { data.a('state', "已确认|未恢复"); } else { data.a('state', "已确认|已恢复"); } } data.a('alarmshuoming', alarmRealInfos[i].alarm_message); if (typeof alarmGroupDicName[alarmRealInfos[i].state2] != "undefined") { data.a('alarmGroup', alarmGroupDicName[alarmRealInfos[i].state2].group_name); } model.add(data); isEnsures.push(alarmRealInfos[i].is_ensure); isResets.push(alarmRealInfos[i].is_reset); } setTimeout(function () { node && node.getTableView && node.getTableView().redraw(); }, 100); } }); } // 获取实时报警数据 function getRealAlarmData(callback) { callback = callback || function () { }; var reqData = { page_no: pageIndex - 1, page_size: pageSize, "condition": condition }; // var flagnum = getFlag(); var flagnum = "snapshot"; var eventName = "/alarm/getSnapshots?" + flagnum; socket.alarmPost(eventName, reqData, callback); } //获取历史报警信息 function getHisAlarmInfos(model, node, pageIndex, pageSize, pageCountHis, dataAreaName, dataareaGroup, alarmlevel, startTime, endTime, alarmStateValueHis) { searchHisAlarmInfos(pageIndex, pageSize, dataAreaName, dataareaGroup, alarmlevel, startTime, endTime, alarmStateValueHis, function (_data) { if (!GD.isEmptyObj(_data)) { var alarmHisInfos = _data.data; pageCountHis.setValue && pageCountHis.setValue(_data.page_count); var pageNumData = toolbar2His && toolbar2His.getItemById('hisAlarmTotalPageNum') || {}; pageNumData.label = '共 '+ (_data.page_count || 1) +' 页'; toolbar2His && toolbar2His.redraw(); var datalen = alarmHisInfos.length, alarmnHisInfo; model.clear(); for (var i = 0; i < datalen; i++) { data = new ht.Data(); data.setId(i + 1); var date = new Date(); alarmnHisInfo = alarmHisInfos[i]; // date.setTime(alarmHisInfos[i].alarm_time); date.setTime(alarmnHisInfo.trigger_time); data.a('alarmtime', moment(date).format("YYYY-MM-DD HH:mm:ss")); data.a('area', alarmAreasDic[alarmnHisInfo.state1]); data.a('tagName', alarmnHisInfo.tag_name); data.a('isFirst', alarmnHisInfo.is_first); if (alarmLevelDic[alarmnHisInfo.state0]) { data.a('alarmlevel', alarmLevelDic[alarmnHisInfo.state0].level_name); } /*if(typeof alarmLevelDic[alarmnHisInfo.state0]!="undefined"){ data.a('alarmlevel',alarmLevelDic[alarmnHisInfo.state0].level_name); }*/ //alarmlevelId data.a('levelId', alarmLevelDic[alarmnHisInfo.state0] && alarmLevelDic[alarmnHisInfo.state0].level); data.a('ensureinfo', alarmnHisInfo.is_ensure); data.a('resetinfo', alarmnHisInfo.is_reset); // if (!alarmnHisInfo.is_ensure) { // data.a('state', "未确认"); // } else { // if (!alarmnHisInfo.is_ensure) { // data.a('state', "已确认"); // } else { // data.a('state', "已复位"); // } // } if (!alarmnHisInfo.is_ensure) { if (alarmnHisInfo.is_reset) { data.a('state', "未确认|已恢复"); } else { data.a('state', "未确认|未恢复"); } } else { if (!alarmnHisInfo.is_reset) { data.a('state', "已确认|未恢复"); } else { data.a('state', "已确认|已恢复"); } } data.a('alarmshuoming', alarmnHisInfo.alarm_message); if (alarmGroupDicName[alarmnHisInfo.state2]) { data.a('alarmGroup', alarmGroupDicName[alarmnHisInfo.state2].group_name); } data.a('desc', alarmnHisInfo.user_data0); data.a('value', GetDital(alarmnHisInfo.value, 2)); data.a('', alarmnHisInfo.message); //data.a('alarmtime', alarmnHisInfo.alarm_time); //data.a('alarmRecoveTime', alarmnHisInfo.trigger_time); //data.a('alarmlevel', alarmnHisInfo.state0); //data.a('alarmOper', alarmnHisInfo.user_data0==null?"无":alarmnHisInfo.user_data0); model.add(data); } } }) } // 查询报警历史信息 function searchHisAlarmInfos(pageIndex, pageSize, dataAreaName, dataareaGroup, alarmlevel, startTime, endTime, alarmStateValueHis, callback) { callback = callback || function () { }; if (!GD.testSearchTime(startTime, endTime)) { return; } var condition = getFilterCondition(dataAreaName, alarmlevel, dataareaGroup, startTime, endTime, alarmStateValueHis); var reqData = { page_no: Number(pageIndex - 1), page_size: pageSize, "condition": condition }; var flagnum = "searchhistory"; //var reqData = {page_no:pageIndex,page_size:pageSize,"condition":condition}; var eventName = "/alarm/getHistories?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { callback(data.data || {}); } else { callback({}); } }) } /*确认报警信息*/ function ensureAlarm(tagnames, callback) { callback = callback || function () { }; var arr = tagnames; // var flagnum = getFlag(); var flagnum = "ensure"; var eventName = "/alarm/ensure?" + flagnum; socket.alarmPost(eventName, arr, function (data) { callback(data) }); } //获取报警点 function getAlarmPoints(model, node, pageIndex, pageSize, pageCount, dataAreaName, pointtype) { model.clear(); var condition = []; if (dataAreaName != null && dataAreaName != "*") { var conditionAreaId = new FieldCondition(); conditionAreaId.field = "AlarmAreaId"; conditionAreaId.value = alarmAreaDicName[dataAreaName]; conditionAreaId.method = 0; condition.push(conditionAreaId); } if (pointtype != null && pointtype != "*") { var conditionPointType = new FieldCondition(); conditionPointType.field = "TagType"; conditionPointType.value = DataType[pointtype]; conditionPointType.method = 0; condition.push(conditionPointType); } var reqData = { page_no: 0, page_size: pageSize }; //var flagnum = getFlag(); var flagnum = "gettags"; var eventName = "/alarm/getTags?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { var alarmtagInfos = data.data.data; //pageCount.setValue(Math.ceil(data.data.pageCount/pageSize)); var datalen = alarmtagInfos.length; for (var i = 0; i < datalen; i++) { data = new ht.Data(); data.setId(i + 1); data.a('tagName', alarmtagInfos[i].tag_name); data.a('desc', alarmtagInfos[i].description); model.add(data); } // model.sm().ss(data); } }) } //获取标签点名称 function getTags(tagDataType, tagName, tagDesc, dataModel) { str = "http://" + webServiceIP + ":" + webServicePort + "/api/Point?tagType=" + tagDataType + "&tagNameFilter=" + tagName + "&tagDescFilter=" + tagDesc; str = encodeURI(str); $.ajax({ url: str, type: 'GET', dataType: 'json', cache: false, success: function (data) { var datalen = data.length; for (var i = 0; i < datalen; i++) { datas = new ht.Data(); datas.setId(data[i].Id); datas.a('configPointName', data[i].TableDotTag); datas.a('configPointDesc', data[i].Desc); dataModel.add(datas); } dataModel.sm().ss(data); }, complete: function (XHR, TS) { XHR = null; } }); } /* 质朴长存法*/ function pad(num, radix, n) { var hexStr = num.toString(radix) var len = hexStr.length; while (len < n) { hexStr = "0" + hexStr; len++; } return hexStr; } /* 32位颜色值转16进制字符串 */ function ARGB2HexString(argbValue) { var argbValue = parseInt(argbValue, 10); var colorValue = argbValue.toString(16); var cstr = ""; if (colorValue.length < 6) { for (var i = 0; i < 6 - colorValue.length; i++) { cstr += "0"; } colorValue = cstr + colorValue; } return '#' + colorValue; } //16进制颜色转换为10进制 function ARGBToInt(argbValue) { if (argbValue.length <= 0) return 0; if (argbValue.indexOf("#") != -1) { return parseInt(argbValue.substring(1, argbValue.length), 16); } if (argbValue.indexOf("rgb") != -1) { var hex = argbValue.colorHex() return parseInt(hex.substring(1, argbValue.length), 16); } } GoldenAlarm.getGroupsByAreaID = function getGroupsByAreaID(id, multi, callback) { if (arguments.length === 2 && typeof multi === 'function') { callback = multi; multi = false; } callback = callback || function () { }; var reqData = { "method": "GetGroupsByAreaID", "param": { id: id, multi: !!multi } }; var flagnum = "getGroupsByAreaId"; var eventName = "/alarm/doservice?" + flagnum; socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { var result = data.data.data; callback(result); } else { callback({}); } }); }; var reg = /^#([0-9a-fA-f]{3}|[0-9a-fA-f]{6})$/; String.prototype.colorHex = function () { var that = this; if (/^(rgb|RGB)/.test(that)) { var aColor = that.replace(/(?:\(|\)|rgb|RGB)*/g, "").split(","); var strHex = "#"; for (var i = 0; i < aColor.length; i++) { var hex = Number(aColor[i]).toString(16); if (hex === "0") { hex += hex; } strHex += hex; } if (strHex.length !== 7) { strHex = that; } return strHex; } else if (reg.test(that)) { var aNum = that.replace(/#/, "").split(""); if (aNum.length === 6) { return that; } else if (aNum.length === 3) { var numHex = "#"; for (var i = 0; i < aNum.length; i += 1) { numHex += (aNum[i] + aNum[i]); } return numHex; } } else { return that; } }; String.prototype.colorRgb = function () { var sColor = this.toLowerCase(); if (sColor && reg.test(sColor)) { if (sColor.length === 4) { var sColorNew = "#"; for (var i = 1; i < 4; i += 1) { sColorNew += sColor.slice(i, i + 1).concat(sColor.slice(i, i + 1)); } sColor = sColorNew; } var sColorChange = []; for (var i = 1; i < 7; i += 2) { sColorChange.push(parseInt("0x" + sColor.slice(i, i + 2))); } return "RGB(" + sColorChange.join(",") + ")"; } else { return sColor; } }; //获取随机数 function GetRandomNum(Min, Max) { var Range = Max - Min; var Rand = Math.random(); return (Min + Math.round(Rand * Range)); } var areaIds = ""; function DropDownBorderPane(master) { DropDownBorderPane.superClass.constructor.call(this, master); areaDataModel = new ht.DataModel(); var self = this, areaborderPane = self._borderPane = new ht.widget.BorderPane(), areatreeview = self._areatreeview = new ht.widget.TreeView(areaDataModel); areaIds = ","; for (var i = 0; i < alarmAreas.length; i++) { var parent = new ht.Data(); parent.setName(alarmAreas[i].Name); parent.setTag(name); if (areaIds.indexOf("," + alarmAreas[i].Id + ",") == -1) { areaIds += alarmAreas[i].Id + ","; } else { continue; } areaDataModel.add(parent); getAreaTree(alarmAreas[i].Children, parent, areaDataModel); } areaborderPane.setCenterView(areatreeview); areatreeview.getView().style.background = '#FCFCFC'; areatreeview.setAutoHideScrollBar(true); areatreeview.onDataDoubleClicked = function (data) { master.close(); } self.bindingHandleInputValueChange = self.handleInputValueChange.bind(self); } ht.Default.def(DropDownBorderPane, ht.widget.BaseDropDownTemplate, { getView: function () { return this._borderPane.getView(); }, handleInputValueChange: function () { }, initColumn: function () { }, getValue: function () { var names = "", sm = this._areatreeview.dm().sm(); sm.each(function (data) { names += data.getName() + ","; }); if (names !== "") { names = names.substr(0, names.length - 1); } else { names = currentAreaName; } return names; }, onClosed: function () { }, onOpened: function (v) { }, getHeight: function () { return 200; } }); //获取区域树结构 function getAreaTree(areaValue, parent, areaDataModel) { if (areaValue.length > 0) { for (var i = 0; i < areaValue.length; i++) { areaIds += areaValue[i].Id + ","; var children = areaValue[i]; var child = new ht.Data(); child.setName(areaValue[i].Name); child.setParent(parent); areaDataModel.add(child); if (children.Children.length > 0) { getAreaTree(children.Children, child, areaDataModel); } } } } //获取标签点数据类型 function getDataTypes() { var dataTypes = []; dataTypes.push("*"); for (var key in DataType) { dataTypes.push(key); } return dataTypes; } //开启订阅函数 //function startSubscribe(){ //socket.alarmPost("/alarm/SubscribeNotify", function (data) { // if (data.success = "true") { // socket.on("alarm_notify", function (data) { // if (typeof realdataModelReal != "undefined") { // var len=alarmData.length; // alarmData=alarmData.concat(data); // // alarmLevelDicName[DataType[i].level_name]=DataType[i]; // AlarmInfoShow(alarmData,len); // getRealAlarmInfos(realdataModelReal, tablePaneReal, pageinputReal.value, rowssizeReal.getValue(), pageCountReal, dataAreaNameReal, alarmGroupValueReal, alarmLevelValueReal); // } // }) // } //}); //} var drawCell = function (g, data, str, selected, column, x, y, w, h, tablestyle) { // if (data.a("levelId") == 0) { // var color = tablestyle.fontcolor; // var font = tablestyle.fontsize + "px " + tablestyle.fontfamily; // ht.Default.drawText(g, str, font, color, x, y, w, h, 'center'); // } else { var color = ""; // if (data.a("ensureinfo")) { // if (data.a("resetinfo")) { // color = alarmLevelDic[data.a("levelId")].normal_color; // } else { // color = alarmLevelDic[data.a("levelId")].reset_color; // } // } else if (data.a("resetinfo")) { // if (data.a("ensureinfo")) { // color = alarmLevelDic[data.a("levelId")].reset_color; // } else { // color = alarmLevelDic[data.a("levelId")].ensure_color; // } // //color=alarmLevelDic[data.a("levelId")].reset_color; // } else { // if (data.a("resetinfo")) { // color = alarmLevelDic[data.a("levelId")].ensure_color; // } else { // // console.log(data.a("levelId")+" "+alarmLevelDic[data.a("levelId")]); // color = alarmLevelDic[data.a("levelId")].alarm_color; // } // } if (data.a("ensureinfo")) { if (!data.a("resetinfo")) { //已确认未恢复 color = alarmLevelDic[data.a("levelId")] && alarmLevelDic[data.a("levelId")].ensure_color || '0'; } } else { if (!data.a("resetinfo")) { //未确认未恢复 color = alarmLevelDic[data.a("levelId")] && alarmLevelDic[data.a("levelId")].alarm_color || '0'; } else { //未确认已恢复 color = alarmLevelDic[data.a("levelId")] && alarmLevelDic[data.a("levelId")].reset_color || '0'; } } var hexColor = ARGB2HexString(color); //16711680 65280 16776960 0 16777215 //console.log(ARGBToInt("#ff0000")) ; //#ff0000 红色 //绿色 #00ff00 //黄色:ffff00 //黑色:000000 //白色:ffffff if (data.a('isFirst')) { hexColor = 'rgb(239,55,68)'; } var font = tablestyle.fontsize * ratio.ratioY + "px " + tablestyle.fontfamily; var cellWidth = GD.measureCanvasText(str, font), columnWidth = column.getWidth(); if (cellWidth > columnWidth) { column.setWidth(cellWidth); } ht.Default.drawText(g, str, font, hexColor, x, y, w, h, 'center'); // } } // 点击时序事件时隐藏列,点击其它时显示出来 function toggleColumnDisplay(btnName, tablePane, topToolBar, bottomToolBar) { if (!btnName) return; var columnModel = tablePane.getColumnModel(); var nameArr, name, v, items, userOperateColumn, checkColumn; if (btnName === '时序事件') { nameArr = ['alarmlevel', 'alarmtime', 'area']; if (topToolBar) { topToolBar.getItemById('alarmlavel').label = '状态:'; topToolBar.getItemById('alarmstatus').visible = false; topToolBar.getItemById('alarmlavel').visible = true; topToolBar.getItemById('alarmgroup').visible = false; topToolBar.redraw(); } } else { nameArr = ['state', 'alarmtime', 'area', "desc", "value", "alarmGroup", "alarmshuoming", "alarmlevel", 'tagName']; if (btnName === '全部') { topToolBar.getItemById('alarmstatus').visible = false; topToolBar.getItemById('alarmlavel').visible = false; topToolBar.getItemById('alarmgroup').visible = false; topToolBar.redraw(); } else { if (topToolBar) { topToolBar.getItemById('alarmlavel').label = '级别:'; topToolBar.getItemById('alarmstatus').visible = false; topToolBar.getItemById('alarmlavel').visible = true; topToolBar.getItemById('alarmgroup').visible = true; if (btnName === '首出故障') { topToolBar.getItemById('alarmstatus').visible = true; } topToolBar.redraw(); } } } // 实时报警只有点击首出故障时显示“确认”和“全部确认”按钮,其它隐藏。 ; (function () { if (!bottomToolBar) return; var confirmBtn = bottomToolBar.getItemById('confirm'), confirmAllBtn = bottomToolBar.getItemById('confirmAll'), f; if (btnName === '首出故障') { f = true; } else { f = false; } confirmBtn && (confirmBtn.visible = f); confirmAllBtn && (confirmAllBtn.visible = f); bottomToolBar.redraw(); })(); columnModel.each(function (data) { name = data.getName(); if (nameArr.indexOf(name) === -1) { v = false; } else { v = true; } if (name === undefined && data.isEditable()) { // checkcolumn v = true; } if (name === 'alarmlevel') { (btnName === '时序事件') ? data.setDisplayName('状态') : data.setDisplayName('报警级别'); } data.setVisible(v); if (name === 'state') { userOperateColumn = data; } if (!name) { checkColumn = data; } }); if (btnName === '首出故障') { userOperateColumn && userOperateColumn.setVisible(true); checkColumn && checkColumn.setVisible(true); } else { userOperateColumn && userOperateColumn.setVisible(false); checkColumn && checkColumn.setVisible(false); } } //实时报警信息控件 function createRealAlarm(x, y, width, height, tablestyle) { //console.log(tablestyle); currentControlContent += "realalarm"; alarmCateReal = tablestyle.alarmCategoryReal; alarmLevelVisible = tablestyle.alarmLevelVisible; var pageCount = 0; var borderPaneReal = new ht.widget.BorderPane(); realdataModelReal = new ht.DataModel(); tablePaneReal = new ht.widget.TablePane(realdataModelReal); tablePaneReal = createTableByObj(tablePaneReal, tablestyle); borderPaneReal.setCenterView(tablePaneReal); if (alarmLevelVisible) { formRealLeft = new ht.widget.FormPane(); formRealLeft.getView().style.background = tablestyle.backcolor; formRealLeft.setVGap(0); formRealLeft.setHGap(0); formRealLeft.setVPadding(0); formRealLeft.setHPadding(0); formRealLeft.setScrollBarSize(0); var rowheight = Math.ceil((height - 100) / alarmCateReal.length); (function () { // 左侧按钮排序 var d, rs = ['', '', '', '']; for (var i = 0, len = alarmCateReal.length; i < len; i++) { d = alarmCateReal[i]; if (d.name === '时序事件') { rs[1] = d; } else if (d.name === '告警提示') { rs[2] = d; } else if (d.name === '故障') { rs[3] = d; } else if (d.name === '全部') { rs[0] = d; } else { rs.push(d); } } alarmCateReal = rs; })(); formRealLeft.addRow([{ image: { width: 45 * ratio.ratioX, id: 'levelimg' + 10, name: 'aaa', } }], [45 * ratio.ratioX], 12 * ratio.ratioY); for (var i = 0; i < alarmCateReal.length; i++) { var curdata = alarmCateReal[i]; var imgsrc = imagePath + curdata.icon; if (alarmCateReal[i].name == '故障') { alarmLevelArray = curdata.alarmLevelList; isRealFirst = null; //alarmLevelValueReal = alarmLevelArray; } formRealLeft.addRow([{ image: { width: 45 * ratio.ratioX, icon: imgsrc, // togglable: true, id: 'levelimg' + i, name: curdata.name, data: curdata.alarmLevelList, clickicon: imagePath + curdata.clickicon, // stretch: 'fill', onClicked: function () { this.setIcon(this.clickicon); var rows = formRealLeft._rows; for (var j = 0; j < rows.length; j++) { var curimg = rows[j].items[0].element; if (curimg.id != this.id) { curimg.setIcon(rows[j].items[0].image.icon); } } pageinputReal.value = 1; realdataModelReal.clear(); alarmLevelArray = this.data; if (this.name == "首出故障") { isRealFirst = 1; } else if (this.name == "故障" || this.name == "全部") { isRealFirst = null; } else if (this.name === "时序事件") { } else { isRealFirst = 0; } if (alarmLevelArray != "*") { if (alarmLevelArray[0] != "*") { alarmLevelArray.unshift("*"); } alarmLevelValueReal = alarmLevelArray; alarmLevelReal.setValues(alarmLevelArray); alarmLevelReal.setValue(alarmLevelArray[0]); } else { alarmLevelValueReal = alarmLevelArray; alarmLevelReal.setValues(dataTypes); alarmLevelReal.setValue(dataTypes[0]); } toggleColumnDisplay(this.name, tablePaneReal, toolbarReal, toolbar2Real); searchRealInfo(); } } }], [45 * ratio.ratioX], 100 * ratio.ratioY); var rows = formRealLeft._rows; for (var j = 0; j < rows.length; j++) { var curimg = rows[j].items[0].element; if (curimg.name == '故障') { curimg.setIcon(rows[j].items[0].image.clickicon); } } } borderPaneReal.setLeftView(formRealLeft, 28); } function initData(data) { if (!data) return; var arr = data.colStyles || [], a, colStylesObj = {}; for (var i = 0, len = arr.length; i= 0) { GoldenAlarm.getGroupsByAreaID(data._id, function (groups) { var values = ['*']; for (var i = 0, group; group = groups[i++]; ) { values.push(group.group_name); } alarmGroupReal.setValues(values); alarmGroupReal.setValue(values[0]); }) } else { getAlarmGroups(function (groupData) { var groupNamrArr = ['*']; for (var key in groupData) { if (groupData.hasOwnProperty(key)) { groupNamrArr.push(key); } } alarmGroupReal.setValues(groupNamrArr); alarmGroupReal.setValue(groupNamrArr[0]); }); } searchRealInfo(); master.close(); } if (JSON.parse(localStorage.getItem('extra')).area == "" || localStorage.getItem('extra') == "\"\"") { var pdata = new ht.Data(); pdata.setName("*"); pdata.setTag("*"); pdata.setId(-1); treeView.dm().add(pdata); } var reqData = { "method": "GetAreas", "param": {} }; var flagnum = "areas"; var eventName = "/alarm/doservice?" + flagnum; if (alarmAreaData.length === 0) { socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { var DataType = data.data.data; alarmAreaData = DataType; setTreeViewData(DataType) } }) } else { setTreeViewData(alarmAreaData); } function setTreeViewData(DataType) { var map = {}, d; var curid = -1; // console.log(DataType); for (var i = 0; i < DataType.length; i++) { var curdata = DataType[i]; if (JSON.parse(localStorage.getItem('extra')).area == "" || localStorage.getItem('extra') == "\"\"") { if (!map[curdata.id]) { curid = curdata.id; d = new ht.Data(); d._id = curdata.id; d._pid = curdata.parent_id; d.setName(curdata.area_name); d.setTag(curdata.area_name); d.setParent(map[curdata.parent_id]); treeView.dm().add(d); map[curdata.id] = d; } } else { // if (!map[curdata.id]) { if (curdata.area_name == JSON.parse(localStorage.getItem('extra')).area) { curid = curdata.id; d = new ht.Data(); d._id = curdata.id; d._pid = curdata.parent_id; d.setName(curdata.area_name); d.setTag(curdata.area_name); d.setParent(map[curdata.parent_id]); treeView.dm().add(d); map[curdata.id] = d; } // } } } getAreaTreeData(treeView, DataType, curid, map); treeView.expandAll(); } } function getAlarmFilterData(count) { if (!(socket && socket.socketio && socket.socketio.connected)) { count++; if (count < 10) { setTimeout('getAlarmFilterData(' + count + ')', 500); } else { count = 0; } return; } getAlarmGroups(function (groupData) { var groupNamrArr = ['*']; for (var key in groupData) { if (groupData.hasOwnProperty(key)) { groupNamrArr.push(key); } } alarmGroupReal.setValues(groupNamrArr); alarmGroupReal.setValue(groupNamrArr[0]); }); getAlarmCategories(function (categroyData) { if (!categroyData) return; var categroyArr = ['*']; for (var key in categroyData) { if (categroyData.hasOwnProperty(key)) { categroyArr.push(categroyArr[key]); } } alarmCategoryReal.setValues(categroyArr); alarmCategoryReal.setValue(categroyArr[0]); }); } ht.Default.def(DropDownArea, ht.widget.BaseDropDownTemplate, { getView: function () { return this._treeView.getView(); }, onOpened: function (v) { if (v) { var treeView = this._treeView, nameArr = v.split(","); treeView.dm().each(function (data) { if (nameArr.indexOf(data.getName()) >= 0) { treeView.sm().as(data); } }); // $(treeView.getView()).css({ // width: 320 // }) } }, onClosed: function () { }, getValue: function () { var name = "", treeView = this._treeView; treeView.sm().each(function (data) { name = data.getName(); // localStorage.setItem(name,data.getId()); //console.log(data); }); return name; }, getHeight: function () { // return this._treeView.getRowSize()*this._treeView.getRowHeight()+10; return 300; }, // getWidth: function () { // return 320; // } }); // setInterval(function () { // getRealAlarmInfos(realdataModelReal, tablePaneReal, pageinputReal.value, tablestyle.PageSize, pageCountReal, dataAreaNameReal, alarmGroupValueReal, alarmLevelValueReal); // }, 5000) //toolbarReal.getLabelColor = tablestyle.fontcolor; toolbarReal.getView().style.background = tablestyle.backcolor; toolbarReal.getView().style.padding = 10; // borderPaneReal.setTopView(toolbarReal); //设置表头是否可见 if (!tablestyle.IsHeadVisible) { var tableheader = tablePaneReal.getTableHeader(); tableheader.setHeight(1); tableheader.getView().style.display = "none"; } //设置搜索条件是否可见 if (tablestyle.IsSearchVisible) { borderPaneReal.setTopView(toolbarReal); } toolbarReal.setStickToRight(false); pageinputReal = document.createElement('input'); pageinputReal.value = 1; pageinputReal.style.position = 'absolute'; pageinputReal.style.margin = 0; pageinputReal.style.padding = '0px 2px'; pageinputReal.style.outline = 0; pageinputReal.style.border = 0; pageinputReal.style.width = 60 * ratio.ratioX + 'px'; pageinputReal.style.height = ht.Default.widgetRowHeight + 'px'; pageinputReal.style.textAlign = 'center'; pageinputReal.style.fontFamily = '"苹方 粗体"'; pageinputReal.style.color = 'rgb(0,0,0)'; pageinputReal.style.fontSize = 17 * ratio.ratioY + 'px'; pageinputReal.style.fontWeight = 'bold'; pageinputReal.onfocus = function () { pageinputReal.style.outline = '1px solid ' + ht.Color.highlight; }; pageinputReal.onblur = function () { pageinputReal.style.outline = 0; }; pageinputReal.onkeydown = function (e) { if (e.keyCode === 13) { //self.request(); } }; rowssizeReal = new ht.widget.ComboBox(); rowssizeReal.setValues([10, 20, 30, 50, 100]); rowssizeReal.setValue(20); // rowssizeReal.setEditable(true); rowssizeReal.setWidth(50); rowssizeReal.setDropDownWidth(140); rowssizeReal.onValueChanged = function () { pageinputReal.value = 1; realdataModelReal.clear(); searchRealInfo(); //getRealAlarmInfos(realdataModelReal,tablePaneReal,pageinputReal.value,rowssizeReal.getValue(),pageCountReal,dataAreaNameReal,pointtypeReal,alarmCateValueReal,alarmLevelValueReal); } toolbar2Real = new ht.widget.Toolbar([ //{ // label: 'Rows:', // element: rowssizeReal // }, { id: 'bottomtoolbarsepratorleft', selected: false, unfocusable: true, button: { width: ((width * 0.5) - 90), editable: false, background: 'rgba(0,0,0,0)', selectBackground: 'rgba(0,0,0,0)', borderColor: 'rgba(0,0,0,0)', } }, { unfocusable: true, label: "<<", action: function () { pageinputReal.value = 1; realdataModelReal.clear(); searchRealInfo(); //getRealAlarmInfos(realdataModelReal,tablePaneReal,pageinputReal.value,rowssizeReal.getValue(),pageCountReal,dataAreaNameReal,pointtypeReal,alarmCateValueReal,alarmLevelValueReal); } }, { unfocusable: true, label: "<", action: function () { if (Number(pageinputReal.value) > 1) { pageinputReal.value = Number(pageinputReal.value) - 1; realdataModelReal.clear(); searchRealInfo(); //getRealAlarmInfos(realdataModelReal,tablePaneReal,pageinputReal.value,rowssizeReal.getValue(),pageCountReal,dataAreaNameReal,pointtypeReal,alarmCateValueReal,alarmLevelValueReal); } } }, { unfocusable: true, label: '页:', element: pageinputReal }, { unfocusable: true, label: '>', action: function () { if (Number(pageinputReal.value) < Number(pageCountReal.getValue())) { pageinputReal.value = Number(pageinputReal.value) + 1; searchRealInfo(); //getRealAlarmInfos(realdataModelReal,tablePaneReal,pageinputReal.value,rowssizeReal.getValue(),pageCountReal,dataAreaNameReal,pointtypeReal,alarmCateValueReal,alarmLevelValueReal); } } }, { unfocusable: true, label: ">>", action: function () { pageinputReal.value = pageCountReal.getValue(); searchRealInfo(); //getRealAlarmInfos(realdataModelReal,tablePaneReal,pageinputReal.value,rowssizeReal.getValue(),pageCountReal,dataAreaNameReal,pointtypeReal,alarmCateValueReal,alarmLevelValueReal); } }, { unfocusable: true, label: '共 1 页', id: 'realAlarmTotalPageNum' }, { id: 'bottomtoolbarseprator', selected: false, unfocusable: true, button: { width: ((width * 0.5) - 360), editable: false, background: 'rgba(0,0,0,0)', selectBackground: 'rgba(0,0,0,0)', borderColor: 'rgba(0,0,0,0)', } }, { unfocusable: true, id: 'confirm', visible: !alarmLevelVisible, button: { label: '确认', width: tablestyle.btnWidth, height: tablestyle.btnHeight, labelColor: tablestyle.btnfontcolor, labelFont: tablestyle.btnfontsize + "px " + tablestyle.btnfontfamily + "", selectBackground: tablestyle.btnAfterClickBackColor, border: 0, background: tablestyle.btnBackgroundColor, onClicked: function () { var tagobj = {}; var dicmapReal = tablePaneReal.getTableView().sm()._map; for (var key in dicmapReal) { var tagnamesReal = []; var EnsureUser = JSON.stringify(dicmapReal[key]._attrObject.desc); var Ensuretag = dicmapReal[key]._attrObject.tagName; tagobj = { "tag_name": Ensuretag, "ensure_info": EnsureUser }; tagnamesReal.push(tagobj); ensureAlarm(tagnamesReal); } // searchRealInfo(); //getRealAlarmInfos(realdataModelReal,tablePaneReal,pageinputReal.value,rowssizeReal.getValue(),pageCountReal,dataAreaNameReal,pointtypeReal,alarmCateValueReal,alarmLevelValueReal); } } }, { unfocusable: true, id: 'confirmAll', visible: !alarmLevelVisible, button: { label: '全部确认', width: tablestyle.btnWidth, height: tablestyle.btnHeight, border: 0, labelColor: tablestyle.btnfontcolor, labelFont: tablestyle.btnfontsize + "px " + tablestyle.btnfontfamily + "", selectBackground: tablestyle.btnAfterClickBackColor, background: tablestyle.btnBackgroundColor, onClicked: function () { var tagobj = {}; var dicmapReal = realdataModelReal.getDatas()._as; for (var i = 0; i < dicmapReal.length; i++) { var tagnamesReal = []; var EnsureUser = JSON.stringify(dicmapReal[i].a("desc")); var Ensuretag = dicmapReal[i].a("tagName"); tagobj = { "tag_name": Ensuretag, "ensure_info": EnsureUser }; tagnamesReal.push(tagobj); ensureAlarm(tagnamesReal); } // searchRealInfo(); //getRealAlarmInfos(realdataModelReal,tablePaneReal,pageinputReal.value,rowssizeReal.getValue(),pageCountReal,dataAreaNameReal,pointtypeReal,alarmCateValueReal,alarmLevelValueReal); } } } ]); //console.log(tablestyle.toolbarcolor); // toolbar2Real.getLabelColor = toolbarReal.getLabelColor = function (item) { // return tablestyle.toolbarcolor // }; // toolbar2Real.getLabelFont = toolbarReal.getLabelFont = function (item) { // return tablestyle.fontsize + "px " + tablestyle.fontfamily // } //toolbarReal.getLabelFont="20px Arial"; toolbar2Real.getView().style.background = tablestyle.backcolor; toolbar2Real.setStickToRight(false); window.addEventListener('resize', function (e) { }, false); var _w = width / ratio.ratioX; $(window).on('resizeOver', function (e) { borderPaneReal.invalidate(); var toolbarsperator = toolbar2Real.getItemById('bottomtoolbarseprator'); var toolbarsperator2 = toolbar2Real.getItemById('bottomtoolbarsepratorleft'); toolbarsperator.element.setWidth((_w * 0.5 - 260) * ratio.ratioX); toolbarsperator2.element.setWidth((_w * 0.5 - 90) * ratio.ratioX); toolbar2Real.redraw(); }) //动态加载列 var columnModel = tablePaneReal.getColumnModel(); column = new ht.Column(); column.setAlign("center"); column.setName("levelId"); column.setDisplayName("等级ID"); column.setAccessType('attr'); column.setVisible(false); columnModel.add(column); column = new ht.Column(); column.setAlign("center"); column.setName("ensureinfo"); column.setDisplayName("确定状态"); column.setAccessType('attr'); column.setVisible(false); columnModel.add(column); column = new ht.Column(); column.setAlign("center"); column.setName("resetinfo"); column.setDisplayName("复位状态"); column.setAccessType('attr'); column.setVisible(false); columnModel.add(column); column = new ht.Column(); column.setAlign("center"); column.setName("accdata"); column.setDisplayName("事故追忆"); column.setAccessType('attr'); column.setVisible(false); columnModel.add(column); for (var i = 0; i < tablestyle.colStyles.length; i++) { var column = new ht.Column(); column.setAlign("center"); column.setName(tablestyle.colStyles[i].Name); column.setDisplayName(tablestyle.colStyles[i].DisplayName); column.setAccessType('attr'); column.setWidth(tablestyle.colStyles[i].Width * ratio.ratioY); column.drawCell = function (g, data, selected, column, x, y, w, h) { drawCell(g, data, data.a(column.getName()), selected, column, x, y, w, h, tablestyle); } columnModel.add(column); } tableViewRealConfig = tablePaneReal.getTableView(); // tablePaneReal.getView().style.background = tablestyle.backcolor; //"Honeydew"; tableViewRealConfig.setRowLineColor('#54b7db'); tableViewRealConfig.setColumnLineColor('transparent'); tableViewRealConfig.setSelectBackground("#31647e"); //tableViewRealConfig.setRowHeight(tablestyle.rowheight); // tableViewRealConfig.setRowHeight(25); tableViewRealConfig.getLabelColor = function () { return ("white") }; tableViewRealConfig.setCheckMode(true); borderPaneReal.getView().style.background = tablestyle.backcolor; //"Honeydew"; var tView = tableViewRealConfig.getView(); //右键菜单 var tempData = null; var json = [{ label: '事故追忆', action: function (item, e) { if (tempData) { var groupName = tempData.a("groupName"); var tag = tempData.a('tagName').split('.')[0] + "."; var alarmtime = tempData.a("alarmtime") || Date.now(); getKeyValueData(groupName, function (data) { if (data != "" && typeof (data) != "undefined") { accdata = JSON.parse(data.replace(/'/g, "\"")); var timespan = accdata[0].split(";"); var date = new Date(alarmtime); date.setMinutes(date.getMinutes() - parseInt(timespan[0])); var beginTime = getDateString(date); //开始时间 date.setMinutes(date.getMinutes() + parseInt(timespan[1]) + parseInt(timespan[0])); var endTime = getDateString(date); //结束时间 beginTime = beginTime || moment(new Date()).format("YYYY-MM-DD H:mm:ss"); endTime = endTime || moment(new Date(beginTime)).add(30, 'seconds').format("YYYY-MM-DD H:mm:ss"); var interval = parseInt(timespan[2]); //时间间隔 var tagName = ''; //标签点 for (var i = 1; i < accdata.length; i++) { // tagName += tag + groupName + accdata[i].name + ','; tagName += tag + accdata[i].name + ','; } tagName = tagName.substring(0, tagName.length - 1); exportDataExcel(tagName, beginTime, endTime, interval, 0); } else { alert('请设置相关联的指标'); return; } tempData = null; }) // if (accdata.length != 0) { // date = new Date(); // var accarray = accdata.split(";"); // date.setMinutes(date.getMinutes() - parseInt(accarray[0])); // var beginTime = getDateString(date); //开始时间 // // console.log(starttime); // date.setMinutes(date.getMinutes() + parseInt(accarray[1]) + parseInt(accarray[0])); // var endTime = getDateString(date); //结束时间 // beginTime = beginTime || moment(new Date()).format("YYYY-MM-DD H:mm:ss"); // endTime = endTime || moment(new Date(beginTime)).add(30, 'seconds').format("YYYY-MM-DD H:mm:ss"); // // console.log(endtime); // var interval = parseInt(accarray[2]); //时间间隔 // var tagName = accarray[3]; //标签点 // exportDataExcel(tagName, beginTime, endTime, interval, 0); // // exportInterExcelNew("",endTime,interval,"",""); // } } } }]; var contextmenu = new ht.widget.ContextMenu(json); contextmenu.beforeShow = function (e) { // 获取右键点击行的数据 tempData = tableViewRealConfig.getDataAt(e); } /* 事故追忆暂时隐藏 contextmenu.addTo(tView); */ borderPaneReal.getView().style.background = tablestyle.backcolor; //"Honeydew"; //设置分页是否可见 if (tablestyle.IsPageVisible) { borderPaneReal.setBottomView(toolbar2Real); } else { tableViewRealConfig.setCheckMode(false); } var borderPaneRealNode = new ht.HtmlNode(); borderPaneRealNode.setScalable(false); borderPaneRealNode.s({ '2d.selectable': true, '2d.movable': false }); borderPaneRealNode.setHtml(borderPaneReal); borderPaneRealNode.setPosition({ x: x, y: y }); borderPaneRealNode.setWidth(width); borderPaneRealNode.setHeight(height); borderPaneRealNode.setPadding(0); /*startSubscribe();*/ /*getSnapshotCallback();*/ getAlarmFilterData(0); searchRealInfo(); GD.setAlarmTableStyle(borderPaneReal, tablePaneReal, toolbarReal, toolbar2Real, formRealLeft, tablestyle); if (alarmLevelVisible) { toggleColumnDisplay('故障', tablePaneReal, toolbarReal, toolbar2Real); } return borderPaneRealNode; } //事故追忆数据导出 function exportDataExcel(tagName, beginTime, eneTime, interval, valueType) { var uri = "tagName=" + tagName; uri += "&beginTime=" + beginTime; uri += "&endTime=" + eneTime; uri += "&interval=" + interval; uri += "&valueType=" + valueType; var link = document.createElement("a"); link.download = "exportExcel"; link.href = "http://" + webServiceIP + ":" + webServicePort + "/api/ExportToExcelInterpo?" + encodeURI(uri); link.click(); } //报警等级信息配置 function createAlarmConfig(x, y, width, height) { dataModelLevel = new ht.DataModel(); tablePaneLevel = new ht.widget.TablePane(dataModelLevel); borderPaneAlarmLevel = new ht.widget.BorderPane(); borderPaneAlarmLevel.setCenterView(tablePaneLevel); var levelAddState = false; getAlarmLevelTables(dataModelLevel, tablePaneLevel); var attributesLevel = [{ name: 'id', displayName: '编号', color: "#ceae42", align: 'center', width: 50 }, { name: 'alarmName', displayName: '等级名称', color: "#ceae42", editable: true, align: 'center', accessType: 'attr', width: 80 }, { name: 'wavName', displayName: '声音文件名', color: "#ceae42", align: 'center', accessType: 'attr', width: 150 }, { name: 'alarmColor', displayName: '报警颜色', color: "#ceae42", align: 'center', accessType: 'attr', colorPicker: { instant: false }, editable: true, width: 150 }, { name: 'resetColor', displayName: '恢复颜色', color: "#ceae42", align: 'center', accessType: 'attr', colorPicker: { instant: false }, editable: true, width: 150 }, { name: 'confirmColor', displayName: '确认颜色', color: "#ceae42", align: 'center', colorPicker: { instant: false }, editable: true, accessType: 'attr', width: 150 }, { name: 'normalColor', displayName: '默认颜色', color: "#ceae42", align: 'center', colorPicker: { instant: false }, editable: true, accessType: 'attr', width: 150 }, { name: 'islight', displayName: '是否闪烁', color: "#ceae42", align: 'center', editable: true, accessType: 'attr', width: 170, enum: ['是', '否'] }, { name: 'alarmLevel', displayName: '优先级', color: "#ceae42", align: 'center', editable: true, accessType: 'attr', width: 170 } ]; tablePaneLevel.addColumns(attributesLevel); tableLevelView = tablePaneLevel.getTableView(); tablePaneLevel.getView().style.background = "#0C152A"; tableLevelView.setRowLineColor('#54b7db'); tableLevelView.setColumnLineColor('transparent'); tableLevelView.setSelectBackground("#31647e"); tableLevelView.setRowHeight(25); tableLevelView.getLabelColor = function () { return ("white") }; tableLevelView.setCheckMode(true); var changeLevelId = ","; dataModelLevel.onDataPropertyChanged = function (data, e) { /*图元属性变化回调函数,可重载做后续处理*/ if (changeLevelId.indexOf(',' + data._id + ',') == -1) { changeLevelId += data._id + ","; } }; var toolbarLevel = new ht.widget.Toolbar([{ button: { width: 50, label: '添加', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { addLevelData(); } } }, { button: { width: 50, label: '删除', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { var levelIds; var dicmap = tableLevelView.sm()._map; for (var key in dicmap) { levelIds = key; dataModelLevel.removeDataById(key); deleteAlarmLevels(levelIds); } } } }, { button: { width: 50, label: '保存', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { updateLevelData(); } } } ]); function updateLevelData() { if (changeLevelId === ',') { getAlarmLevelTables(dataModelLevel, tablePaneLevel); } else { var updateLevels; var ids = changeLevelId.split(","); for (var i = 0; i < ids.length; i++) { if (ids[i].length != 0) { var dataModel = dataModelLevel.getDataById(ids[i]); var alarmLevel = dataModel._attrObject; var alarmLevels = new AlarmLevels(); alarmLevels.level = { "value": Number(ids[i]) }; alarmLevels.level_name = { "value": alarmLevel.alarmName }; alarmLevels.wave_file = { "value": alarmLevel.wavName }; alarmLevels.alarm_color = { "value": ARGBToInt(alarmLevel.alarmColor) }; alarmLevels.reset_color = { "value": ARGBToInt(alarmLevel.resetColor) }; alarmLevels.ensure_color = { "value": ARGBToInt(alarmLevel.confirmColor) }; alarmLevels.normal_color = { "value": ARGBToInt(alarmLevel.normalColor) }; alarmLevels.popup = { "value": alarmLevel.islight == "是" ? 1 : 0 }; alarmLevels.wave_count = { "value": alarmLevel.alarmLevel }; updateLevels = alarmLevels; } } changeLevelId = ","; updateAlarmLevels(updateLevels); getAlarmLevelTables(dataModelLevel, tablePaneLevel); } } function addLevelData() { data = new ht.Data(); data.setId(GetRandomNum(0, 99999)); data.a('alarmName', "test"); data.a('wavName', "wavName"); data.a('alarmColor', "#0000001"); data.a('resetColor', "#0000001"); data.a('confirmColor', "#0000001"); data.a('islight', "是"); data.a('alarmLevel', "20"); dataModelLevel.add(data); dataModelLevel.sm().ss(data); tableLevelView.setFocusDataById(data.getId()); } toolbarLevel.getLabelColor = function (item) { return 'white'; }; toolbarLevel.getView().style.background = '#3D3D3D'; borderPaneAlarmLevel.setTopView(toolbarLevel); var borderPaneAlarmLevelNode = new ht.HtmlNode(); borderPaneAlarmLevelNode.setScalable(false); borderPaneAlarmLevelNode.s({ '2d.selectable': true, '2d.movable': false }); borderPaneAlarmLevelNode.setHtml(borderPaneAlarmLevel); borderPaneAlarmLevelNode.setPosition({ x: x, y: y }); borderPaneAlarmLevelNode.setWidth(width); borderPaneAlarmLevelNode.setHeight(height); borderPaneAlarmLevelNode.setPadding(0); dataModel.add(borderPaneAlarmLevelNode); } function add(tabView, name, color, selected) { // create view var div = document.createElement('div'); div.style.background = color; // create tab var tab = new ht.Tab(); tab.setName(name); tab.setView(div); // add to model var tabModel = tabView.getTabModel(); tabModel.add(tab); if (selected) { tabModel.getSelectionModel().setSelection(tab); } return tab; } //历史数据信息 function createHisAlarm(x, y, width, height, tablestyle) { currentControlContent += "hisalarm"; var pageCount = 0; borderPaneHis = new ht.widget.BorderPane(); alarmCateHis = tablestyle.alarmCategoryReal; alarmLevelVisible = tablestyle.alarmLevelVisible; hisdataModelHis = new ht.DataModel(); tablePaneHis = new ht.widget.TablePane(hisdataModelHis); tablePaneHis = createTableByObj(tablePaneHis, tablestyle); borderPaneHis.setCenterView(tablePaneHis); if (alarmLevelVisible) { formHisLeft = new ht.widget.FormPane(); formHisLeft.getView().style.background = tablestyle.backcolor; formHisLeft.setVGap(0); formHisLeft.setVPadding(0); formHisLeft.setHPadding(0); formHisLeft.setScrollBarSize(0); formHisLeft.addRow([{ image: { width: 45 * ratio.ratioX, id: 'levelimg' + 10, name: 'aaa', } }], [45 * ratio.ratioX], 12 * ratio.ratioY); var rowheight = Math.ceil((height - 100) / alarmCateHis.length); for (var i = 0; i < alarmCateHis.length; i++) { var curdata = alarmCateHis[i]; var imgsrc = imagePath + curdata.icon; if (alarmCateHis[i].name == '故障') { alarmLevelArray = curdata.alarmLevelList; } formHisLeft.addRow([{ image: { width: 45 * ratio.ratioX, icon: imgsrc, id: 'levelimg' + i, name: curdata.name, data: curdata.alarmLevelList, clickicon: imagePath + curdata.clickicon, // stretch: 'fill', onClicked: function () { this.setIcon(this.clickicon); var rows = formHisLeft._rows; for (var j = 0; j < rows.length; j++) { var curimg = rows[j].items[0].element; if (curimg.id != this.id) { curimg.setIcon(rows[j].items[0].image.icon); } } pageinputHis.value = 1; hisdataModelHis.clear(); alarmLevelArray = this.data; if (this.name == "首出故障") { isHisFirst = 1; } else if (this.name == "故障" || this.name == "全部") { isHisFirst = null; } else { isHisFirst = 0; } if (alarmLevelArray != "*") { if (alarmLevelArray[0] != "*") { alarmLevelArray.unshift("*"); } alarmLevelValueHis = alarmLevelArray; alarmLevelHis.setValues(alarmLevelArray); alarmLevelHis.setValue(alarmLevelArray[0]); } else { alarmLevelValueHis = alarmLevelArray; alarmLevelHis.setValues(dataTypes); alarmLevelHis.setValue(dataTypes[0]); } toggleColumnDisplay(this.name, tablePaneHis, toolbarHis); alarmHisSearch(); } } }, ], [45 * ratio.ratioX], 100 * ratio.ratioY); var rows = formHisLeft._rows; for (var j = 0; j < rows.length; j++) { var curimg = rows[j].items[0].element; if (curimg.name == '故障') { curimg.setIcon(rows[j].items[0].image.clickicon); } } } borderPaneHis.setLeftView(formHisLeft, 45 * ratio.ratioX); } function initData(data) { if (!data) return; var arr = data.colStyles || [], a, colStylesObj = {}; for (var i = 0, len = arr.length; i'); var startTimeDiv = $startTimeDiv[0]; document.body.appendChild(startTimeDiv); var $endTimeDiv = $(''); var endTimeDiv = $endTimeDiv[0]; document.body.appendChild(endTimeDiv); (function () { var currentStartValue, currentEndValue; var start = laydate.render({ elem: '#startTimeNode0', istime: true, type: 'datetime', value: beginDate, theme: 'blueblack', format: 'yyyy-MM-dd HH:mm:ss', done: function (value, date, endDate) { hisStartTime = value; // alarmHisSearch(); } }); var end = laydate.render({ elem: '#endTimeNode0', istime: true, type: 'datetime', value: endDate, format: 'yyyy-MM-dd HH:mm:ss', theme: 'blueblack', done: function (value, date, endDate) { hisEndTime = value; // alarmHisSearch(); } }); GD.setupDatePicker(startTimeDiv, start); GD.setupDatePicker(endTimeDiv, end); })(); function getAlarmFilterData() { if (!(socket && socket.socketio && socket.socketio.connected)) { getAlarmFilterData._count++; if (getAlarmFilterData._count < 10) { setTimeout(getAlarmFilterData, 500); } else { getAlarmFilterData._count = 0; } return; } getAlarmGroups(function (groupData) { if (!groupData) return; var groupDataArr = ['*']; for (var key in groupData) { if (groupData.hasOwnProperty(key)) { groupDataArr.push(key); } } alarmGroupHis.setValues(groupDataArr); alarmGroupHis.setValue(groupDataArr[0]); }); getAlarmCategories(function (categroyData) { if (!categroyData) return; var categroyArr = ['*']; for (var key in categroyData) { if (categroyData.hasOwnProperty(key)) { categroyArr.push(categroyArr[key]); } } alarmCategoryHis.setValues(categroyArr); alarmCategoryHis.setValue(categroyArr[0]); }); } getAlarmFilterData._count = 0; getAlarmFilterData(); //getHisAlarmInfos(hisdataModelHis,null); var toolbarHis = new ht.widget.Toolbar([{ label: ' '+(tablestyle.colStylesObj && tablestyle.colStylesObj['area'] && tablestyle.colStylesObj['area'].DisplayName || '设备')+':', element: dataAreaInfoHis, unfocusable: true }, /*{ label: '点类型:', element: pointDataTypeHis, unfocusable: true }, { label: '报警类别:', element: alarmCategoryHis, unfocusable: true },*/ { // label: '设备:', // 天铝 label: '类别:', id: 'alarmgroup', element: alarmGroupHis, unfocusable: true }, { label: '级别:', id: 'alarmlavel', element: alarmLevelHis, unfocusable: true, visible: alarmLevelVisible // visible:true }, { label: '操作:', id: 'alarmstatus', element: alarmStateHis, unfocusable: true, visible: true // visible:true }, { label: '开始时间:', element: startTimeDiv, unfocusable: true }, { label: '结束时间:', element: endTimeDiv, unfocusable: true }, { button: { width: 70, label: '查询', // borderColor: '#31647e', // background: '#52b4d7', width: tablestyle.btnWidth, height: tablestyle.btnHeight, labelColor: tablestyle.btnfontcolor, labelFont: tablestyle.btnfontsize + "px " + tablestyle.btnfontfamily + "", selectBackground: tablestyle.btnAfterClickBackColor, background: tablestyle.btnBackgroundColor, onClicked: function () { pageinputHis.value = 1; // alert(111); alarmHisSearch(); } }, unfocusable: true }, { button: { width: 70, label: '导出', // borderColor: '#31647e', // background: '#52b4d7', width: tablestyle.btnWidth, height: tablestyle.btnHeight, labelColor: tablestyle.btnfontcolor, labelFont: tablestyle.btnfontsize + "px " + tablestyle.btnfontfamily + "", selectBackground: tablestyle.btnAfterClickBackColor, background: tablestyle.btnBackgroundColor, onClicked: function () { exportHistoryAlarmData(); } }, unfocusable: true }, /*{ button: { width: 70, label: '查询', borderColor: '#31647e', background:'#52b4d7', onClicked: function(){ pageinputHis.value=1; dataAreaNameHis=dataAreaInfoHis.getValue(); pointtypeHis=pointDataTypeHis.getValue(); alarmCateValueHis=alarmCategoryHis.getValue(); alarmLevelValueHis=alarmLevelHis.getValue(); getHisAlarmInfos(hisdataModelHis,null,pageinputHis.value,rowssizeHis.getValue(),pageCountHis,dataAreaNameHis,pointtypeHis,alarmCateValueHis,alarmLevelValueHis); } } }*/ ]); //报警级别分类 function createObject() { var object = new Object(); object = { id: '', groupId: 'alarmCategory', alarmids: '', type: 'toggle', label: '', selected: true, action: '' }; return object; } // if (!alarmLevelVisible) { // for (var i = 0; i < alarmCateHis.length; i++) { // var item = createObject(); // if (i != 0) { // item.selected = false; // } // item.id = alarmCateHis[i].name; // item.label = alarmCateHis[i].name; // item.alarmids = alarmCateHis[i].alarmLevelList; // if (i == 0) { // alarmLevelArray = item.alarmids; // } // item.action = function (curarr) { // pageinputHis.value = 1; // hisdataModelHis.clear(); // alarmLevelArray = this.alarmids; // console.log(alarmLevelArray); // alarmHisSearch(); // }; // toolbarHis.getItems().push(item); // } // } toolbarHis.getView().style.background = tablestyle.backcolor; borderPaneHis.setTopView(toolbarHis); toolbarHis.setStickToRight(false); rowssizeHis = new ht.widget.ComboBox(); rowssizeHis.setValues([10, 20, 30, 50, 100]); rowssizeHis.setValue(20); rowssizeHis.setWidth(50); rowssizeHis.setDropDownWidth(140); rowssizeHis.onValueChanged = function () { pageinputHis.value = 1; alarmHisSearch(); }; var _alarmHisSearchCount = 0; function alarmHisSearch() { if (!alarmFilterState) { _alarmHisSearchCount++; if (_alarmHisSearchCount < 10) { intervalTimers.push(setTimeout(alarmHisSearch, 800)); } else { _alarmHisSearchCount = 0; // GD.createErrorDialog(360, 240, '网络异常,点击确认按钮重新加载页面!', function () { // window.location.reload(); // }); } return; } dataAreaNameHis = dataAreaInfoHis.getValue() || '*'; alarmGroupValueHis = alarmGroupHis.getValue() || '*'; alarmStateValueHis = alarmStateHis.getValue() || '*'; getHisAlarmInfos(hisdataModelHis, null, pageinputHis.value, tablestyle.PageSize || 200, pageCountHis, dataAreaNameHis, alarmGroupValueHis, alarmLevelValueHis, hisStartTime, hisEndTime, alarmStateValueHis); } function HisDropDownArea(master) { var self = this; HisDropDownArea.superClass.constructor.call(self, master); var treeView = self._treeView = new ht.widget.TreeView(); // var listView = self._listView = new ht.widget.ListView(); // listView.setCheckMode(true); treeView.sm().ms(function (e) { master.setValue(self.getValue()); }); GD.setAreaTreeViewStyle(treeView); treeView.onDataClicked = function (data) { alarmAreaIds.length = 0; alarmAreaIds.push(data._id); getAreaIds(data); if (data._id >= 0) { GoldenAlarm.getGroupsByAreaID(data._id, function (groups) { var values = ['*']; for (var i = 0, group; group = groups[i++]; ) { values.push(group.group_name); } alarmGroupHis.setValues(values); alarmGroupHis.setValue(values[0]); }) } else { getAlarmGroups(function (groupData) { var groupNamrArr = ['*']; for (var key in groupData) { if (groupData.hasOwnProperty(key)) { groupNamrArr.push(key); } } alarmGroupHis.setValues(groupNamrArr); alarmGroupHis.setValue(groupNamrArr[0]); }); } master.close(); } var reqData = { "method": "GetAreas", "param": {} }; var flagnum = "areas"; var eventName = "/alarm/doservice?" + flagnum; if (JSON.parse(localStorage.getItem('extra')).area == "" || localStorage.getItem('extra') == "\"\"") { var pdata = new ht.Data(); pdata.setName("*"); pdata.setTag("*"); pdata.setId(-1); treeView.dm().add(pdata); } if (alarmAreaData.length === 0) { socket.alarmPost(eventName, reqData, function (data) { if (data && data.success) { var DataType = data.data.data; alarmAreaData = DataType; setTreeViewData(DataType); } }) } else { setTreeViewData(alarmAreaData); } function setTreeViewData(DataType) { var map = {}, d; var curid = -1; // console.log(DataType); for (var i = 0; i < DataType.length; i++) { var curdata = DataType[i]; if (JSON.parse(localStorage.getItem('extra')).area == "" || localStorage.getItem('extra') == "\"\"") { if (!map[curdata.id]) { curid = curdata.id; d = new ht.Data(); d._id = curdata.id; d._pid = curdata.parent_id; d.setName(curdata.area_name); d.setTag(curdata.area_name); d.setParent(map[curdata.parent_id]); // if(curArea==curdata.id){ // } treeView.dm().add(d); map[curdata.id] = d; // treeView.dm().toDatas().each(function (data) { // if (map[data._pid]) { // data.setParent(map[data._pid]); // } // }); } } else { // if (!map[curdata.id]) { if (curdata.area_name == JSON.parse(localStorage.getItem('extra')).area) { curid = curdata.id; d = new ht.Data(); d._id = curdata.id; d._pid = curdata.parent_id; d.setName(curdata.area_name); d.setTag(curdata.area_name); d.setParent(map[curdata.parent_id]); // if(curArea==curdata.id){ // } treeView.dm().add(d); map[curdata.id] = d; } // } } } getAreaTreeData(treeView, DataType, curid, map); treeView.expandAll(); } } ht.Default.def(HisDropDownArea, ht.widget.BaseDropDownTemplate, { getView: function () { return this._treeView.getView(); }, onOpened: function (v) { if (v) { var treeView = this._treeView, nameArr = v.split(","); treeView.dm().toDatas().each(function (data) { if (nameArr.indexOf(data.getName()) >= 0) { treeView.sm().as(data); } }); } }, onClosed: function () { }, getValue: function () { var name = "", treeView = this._treeView; treeView.sm().each(function (data) { name += data.getName(); }); return name; }, getHeight: function () { // return this._treeView.getRowSize()*this._treeView.getRowHeight()+10; return 300; }, // getWidth: function () { // return 320; // } }); toolbar2His = new ht.widget.Toolbar([ // { // label: '行:', // element: rowssizeHis, // unfocusable: true // }, { id: 'bottomtoolbarseprator', selected: false, unfocusable: true, button: { width: ((width * 0.5) - 90), editable: false, background: 'rgba(0,0,0,0)', selectBackground: 'rgba(0,0,0,0)', borderColor: 'rgba(0,0,0,0)', } }, { label: "<<", action: function () { pageinputHis.value = 1; alarmHisSearch(); }, unfocusable: true }, { label: "<", action: function () { if (Number(pageinputHis.value) > 1) { pageinputHis.value = Number(pageinputHis.value) - 1; alarmHisSearch(); } }, unfocusable: true }, { label: '页:', element: pageinputHis, unfocusable: true }, { label: '>', action: function () { if (Number(pageinputHis.value) < Number(pageCountHis.getValue())) { pageinputHis.value = Number(pageinputHis.value) + 1; alarmHisSearch(); } }, unfocusable: true }, { label: ">>", action: function () { pageinputHis.value = pageCountHis.getValue(); alarmHisSearch(); }, unfocusable: true }, { unfocusable: true, label: '共 1 页', id: 'hisAlarmTotalPageNum' } ]); //toolbar2His.getLabelColor = function(item){ return 'white'; }; toolbar2His.getView().style.background = tablestyle.backcolor; borderPaneHis.setBottomView(toolbar2His); toolbar2His.setStickToRight(false); // toolbarHis.getLabelFont = toolbar2His.getLabelFont = function (item) { // return tablestyle.fontsize + "px " + tablestyle.fontfamily; // }; // toolbarHis.getLabelColor = toolbar2His.getLabelColor = function (item) { // return tablestyle.toolbarcolor // }; // viewHis = borderPaneHis.getView(); // viewHis.className = 'main'; // document.body.appendChild(viewHis); // window.addEventListener('resize', function (e) { // borderPaneHis.invalidate(); // }, false); viewHis = borderPaneHis.getView(); viewHis.className = 'main'; document.body.appendChild(viewHis); window.addEventListener('resize', function (e) { borderPaneHis.invalidate(); }, false); pageCountHis = new ht.widget.TextField(); //动态加载列 columnModel = tablePaneHis.getColumnModel(); column = new ht.Column(); column.setAlign("center"); column.setName("levelId"); column.setDisplayName("等级ID"); column.setAccessType('attr'); column.setVisible(false); columnModel.add(column); column = new ht.Column(); column.setAlign("center"); column.setName("ensureinfo"); column.setDisplayName("确定状态"); column.setAccessType('attr'); column.setVisible(false); columnModel.add(column); column = new ht.Column(); column.setAlign("center"); column.setName("resetinfo"); column.setDisplayName("复位状态"); column.setAccessType('attr'); column.setVisible(false); columnModel.add(column); for (var i = 0; i < tablestyle.colStyles.length; i++) { var column = new ht.Column(); column.setAlign("center"); column.setName(tablestyle.colStyles[i].Name); column.setDisplayName(tablestyle.colStyles[i].DisplayName); column.setAccessType('attr'); column.setWidth(tablestyle.colStyles[i].Width); column.drawCell = function (g, data, selected, column, x, y, w, h) { drawCell(g, data, data.a(column.getName()), selected, column, x, y, w, h, tablestyle); } columnModel.add(column); } tableViewHis = tablePaneHis.getTableView(); tablePaneHis._toolbar2His = tablePaneHis._toolbar2His || toolbar2His; setTimeout(function () { alarmHisSearch(); }, 500); tablePaneHis.getView().style.background = tablestyle.backcolor; //"Honeydew"; tableViewHis.setRowLineColor('#54b7db'); tableViewHis.setColumnLineColor('transparent'); tableViewHis.setSelectBackground("#31647e"); tableViewHis.getLabelColor = function () { return ("white") }; var _w = width / ratio.ratioX; $(window).on('resizeOver', function (e) { toolbar2His.invalidate(); var toolbarsperator = toolbar2His.getItemById('bottomtoolbarseprator'); toolbarsperator.element.setWidth((_w * 0.5 - 90) * ratio.ratioX); toolbar2His.redraw(); }) GD.setAlarmTableStyle(borderPaneHis, tablePaneHis, toolbarHis, toolbar2His, formHisLeft, tablestyle); if (alarmLevelVisible) { toggleColumnDisplay('故障', tablePaneHis, toolbarHis, toolbar2His); } // 导出历史报警 function exportHistoryAlarmData() { searchHisAlarmInfos(1, 1000, dataAreaInfoHis.getValue() || '*', alarmGroupHis.getValue() || '*', alarmLevelValueHis, hisStartTime, hisEndTime, alarmStateHis.getValue() || '*', function (data) { if (data.total > 1000) { // 如果报警条数大于10000条,就重新再获取一次数据 searchHisAlarmInfos(1, data.total, dataAreaInfoHis.getValue() || '*', alarmGroupHis.getValue() || '*', alarmLevelValueHis, hisStartTime, hisEndTime, alarmStateHis.getValue() || '*', function (data) { exportHisDataToCsv(data.data); }) } else { exportHisDataToCsv(data.data); } }); function exportHisDataToCsv(data) { if (!data) return; var columnData = tablePaneHis.getColumnModel(); var tempArr = [], resultArr = [], visibleColumnArr = [], c, d, n, info; columnData.each(function (data) { if (data.isVisible()) { visibleColumnArr.push(data); tempArr.push(data.getDisplayName()); } }); resultArr.push(tempArr); for (var j = 0, leng = data.length; j < leng; j++) { d = data[j]; tempArr = []; for (var i = 0, len = visibleColumnArr.length; i < len; i++) { c = visibleColumnArr[i]; n = c.getName(); info = d[alarmHisTableColumnDic[n]]; if (n === 'alarmtime') { info = moment(info).format('YYYY-MM-DD HH:mm:ss'); } if (n === 'area') { info = alarmAreasDic[info] || '-'; } if (n === 'alarmGroup') { info = alarmGroupDicName[info] && alarmGroupDicName[info].group_name || '-'; } if (n === 'alarmlevel') { info = alarmLevelDic[info] && alarmLevelDic[info].level_name || '-'; } if (n === 'state') { if (d.is_ensure) { if (d.is_reset) { info = '已确认|已复归'; } else { info = '已确认|未复归'; } } else { if (d.is_reset) { info = '未确认|已复归'; } else { info = '未确认|未复归'; } } } tempArr.push(info); } resultArr.push(tempArr); } GD.exportArrToCsv(resultArr, '历史报警'); } } //tableViewHis.setCheckMode(true); borderPaneHisNode.exportHistoryAlarmData = exportHistoryAlarmData; return borderPaneHisNode; } //报警点配置 function createAlarmPointConfig(x, y, width, height) { currentControlContent += "alarmpointconfig"; var pageCount = 0; borderPanePointConfig = new ht.widget.BorderPane(); dataModelPointConfig = new ht.DataModel(); tablePanePointConfig = new ht.widget.TablePane(dataModelPointConfig); borderPanePointConfig.setCenterView(tablePanePointConfig); var borderPanePointConfigNode = new ht.HtmlNode(); borderPanePointConfigNode.setScalable(false); borderPanePointConfigNode.s({ '2d.selectable': true, '2d.movable': false }); borderPanePointConfigNode.setHtml(borderPanePointConfig); borderPanePointConfigNode.setPosition({ x: x, y: y }); borderPanePointConfigNode.setWidth(width); borderPanePointConfigNode.setHeight(height); borderPanePointConfigNode.setPadding(0); dataModel.add(borderPanePointConfigNode); var dataAreaInfoPointConfig = new ht.widget.ComboBox(); dataAreaInfoPointConfig.setWidth(120); // dataAreaInfoPointConfig.setEditable(true); dataAreaInfoPointConfig.setDropDownWidth(120); getAlarmAreas(function (data) { dataTypes = []; if (GD.isEmptyObj(data)) { dataTypes.push('*'); } else { for (var i = 0; i < data.length; i++) { dataTypes.push(data[i].area_name); } } dataAreaInfoPointConfig.setValues(dataTypes); dataAreaInfoPointConfig.setValue(dataTypes[0]); }); dataAreaName = dataAreaInfoPointConfig.getValue(); var pointDataTypePointConfig = new ht.widget.ComboBox(); // pointDataTypePointConfig.setEditable(true); pointDataTypePointConfig.setWidth(150); pointDataTypePointConfig.setDropDownWidth(140); var pointTypesPointConfig = getDataTypes(); pointDataTypePointConfig.setValues(pointTypesPointConfig); pointDataTypePointConfig.setValue(pointTypesPointConfig[0]); pointtypePointConfig = pointDataTypePointConfig.getValue(); var alarmCategoryPointConfig = new ht.widget.ComboBox(); var alarmCategoriesPointConfig = getAlarmCategories(function (categroyData) { if (!categroyData) return; var categroyArr = ['*']; for (var key in categroyData) { if (categroyData.hasOwnProperty(key)) { categroyArr.push(categroyArr[key]); } } alarmCategoryPointConfig.setValues(categroyArr); alarmCategoryPointConfig.setValue(categroyArr[0]); }); var alarmLevelPointConfig = new ht.widget.ComboBox(); getAlarmLevels(alarmLevelPointConfig); var alarmPointConfigId = ","; getAlarmPoints(dataModelPointConfig, tablePanePointConfig); var toolbarPointConfig = new ht.widget.Toolbar([{ label: '区域:', element: dataAreaInfoPointConfig, unfocusable: true }, { label: '点类型:', element: pointDataTypePointConfig, unfocusable: true }, { button: { width: 50, label: '查询', borderColor: '#31647e', //labelColor: '#52b4d7', background: '#52b4d7', onClicked: function () { pageinputPointConfig.value = 1; dataAreaName = dataAreaInfoPointConfig.getValue(); pointtypePointConfig = pointDataTypePointConfig.getValue(); getAlarmPoints(dataModelPointConfig, tablePanePointConfig, pageinputPointConfig.value, rowssizePointConfig.getValue(), pageCountPointConfig, dataAreaName, pointtypePointConfig); } } }, { button: { width: 50, label: '添加', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { addPointConfig(); } } }, { button: { width: 50, label: '删除', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { var alarmPointConfigIds; var dicmap = tableViewPointConfig.sm()._map; var alarmPointTagNames = {}; for (var key in dicmap) { alarmPointConfigIds = key; alarmPointTagNames = { tag_name: dicmap[key]._attrObject.tagName } dataModelPointConfig.removeDataById(key); } deleteAlarmPoints(alarmPointTagNames); } } }, { button: { width: 50, label: '确认', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { //alert(2) var tagnamesPoint = []; var tagobj = {}; var dicmapPoint = tablePanePointConfig.getTableView().sm()._map; for (var key in dicmapPoint) { EnsureUser = JSON.stringify(dicmapPoint[key]._attrObject.desc); Ensuretag = dicmapPoint[key]._attrObject.tagName; tagobj = { "tag_name": Ensuretag, "ensure_info": EnsureUser }; tagnamesPoint.push(tagobj); } ensureAlarm(tagnamesPoint); getAlarmPoints(dataModelPointConfig, tablePanePointConfig, pageinputPointConfig.value, rowssizePointConfig.getValue(), pageCountPointConfig, dataAreaName, pointtypePointConfig); } } } ]); toolbarPointConfig.getLabelColor = function (item) { return '#52b4d7'; }; toolbarPointConfig.getView().style.background = '#3D3D3D'; borderPanePointConfig.setTopView(toolbarPointConfig); toolbarPointConfig.setStickToRight(false); pageinputPointConfig = document.createElement('input'); pageinputPointConfig.value = 1; pageinputPointConfig.style.position = 'absolute'; pageinputPointConfig.style.margin = 0; pageinputPointConfig.style.padding = '0px 2px'; pageinputPointConfig.style.outline = 0; pageinputPointConfig.style.border = 0; pageinputPointConfig.style.width = '60px'; pageinputPointConfig.style.height = ht.Default.widgetRowHeight + 'px'; pageinputPointConfig.onfocus = function () { pageinputPointConfig.style.outline = '1px solid ' + ht.Color.highlight; }; pageinputPointConfig.onblur = function () { pageinputPointConfig.style.outline = 0; }; pageinputPointConfig.onkeydown = function (e) { if (e.keyCode === 13) { //self.request(); } }; rowssizePointConfig = new ht.widget.ComboBox(); rowssizePointConfig.setValues([10, 20, 30, 50, 100]); rowssizePointConfig.setValue(20); // rowssizePointConfig.setEditable(true); rowssizePointConfig.setWidth(50); rowssizePointConfig.setDropDownWidth(140); rowssizePointConfig.onValueChanged = function () { pageinputPointConfig.value = 1; dataModelPointConfig.clear(); getAlarmPoints(dataModelPointConfig, pageinputPointConfig.value, rowssizePointConfig.getValue(), pageCountPointConfig, dataAreaName, pointtypePointConfig); }; var toolbar2PointConfig = new ht.widget.Toolbar([{ label: 'Rows:', element: rowssizePointConfig }, { label: "<<", action: function () { pageinputPointConfig.value = 1; getAlarmPoints(dataModelPointConfig, pageinputPointConfig.value, rowssizePointConfig.getValue(), pageCountPointConfig, dataAreaName, pointtypePointConfig); } }, { label: "<", action: function () { if (Number(pageinputPointConfig.value) > 1) { pageinputPointConfig.value = Number(pageinputPointConfig.value) - 1; dataModelPointConfig.clear(); getAlarmPoints(dataModelPointConfig, pageinputPointConfig.value, rowssizePointConfig.getValue(), pageCountPointConfig, dataAreaName, pointtypePointConfig); } } }, { label: 'Page:', element: pageinputPointConfig }, { label: '>', action: function () { if (Number(pageinputPointConfig.value) < Number(pageCountPointConfig.getValue())) { pageinputPointConfig.value = Number(pageinputPointConfig.value) + 1; dataModelPointConfig.clear(); getAlarmPoints(dataModelPointConfig, pageinputPointConfig.value, rowssizePointConfig.getValue(), pageCountPointConfig, dataAreaName, pointtypePointConfig); } } }, { label: ">>", action: function () { pageinputPointConfig.value = pageCountPointConfig.getValue(); dataModelPointConfig.clear(); getAlarmPoints(dataModelPointConfig, pageinputPointConfig.value, rowssizePointConfig.getValue(), pageCountPointConfig, dataAreaName, pointtypePointConfig); } } ]); toolbar2PointConfig.getLabelColor = function (item) { return 'white'; }; toolbar2PointConfig.getView().style.background = '#3D3D3D'; borderPanePointConfig.setBottomView(toolbar2PointConfig); toolbar2PointConfig.setStickToRight(true); viewPointConfig = borderPanePointConfig.getView(); viewPointConfig.className = 'main'; document.body.appendChild(viewPointConfig); window.addEventListener('resize', function (e) { borderPanePointConfig.invalidate(); }, false); dataModelPointConfig.onDataPropertyChanged = function (data, e) { if (alarmPointConfigId.indexOf(',' + data._id + ',') == -1) { alarmPointConfigId += data._id + ","; } }; var pointconfigAlarmGroups = getAlarmGroups(); var pointconfigAlarmLevels = getAlarmLevels(); function addPointConfig() { var dialog = window.dialog = new ht.widget.Dialog(); formPanePointConfig = new ht.widget.FormPane(); dataModelTag = new ht.DataModel(); tablePointConfigPane = new ht.widget.TablePane(dataModelTag); var pointConfigAttributes = [{ name: 'id', displayName: 'Id', align: 'center', width: 50 }, { name: 'configPointName', displayName: '标签名', align: 'center', accessType: 'attr', width: 180 }, { name: 'configPointDesc', displayName: '描述', align: 'center', accessType: 'attr', width: 300 } ]; tablePointConfigPane.addColumns(pointConfigAttributes); tablePointCofigView = tablePointConfigPane.getTableView(); tablePointCofigView.setCheckMode(true); document.body.appendChild(formPanePointConfig.getView()); var alarmType = -1; //0为模拟量 1为数字量 formPanePointConfig.addRow([ '测点类型:', { id: 'pointAlarmType', comboBox: { values: ['模拟量', '数字量'], value: '模拟量', onValueChanged: function () { if (this.getValue() == "模拟量") { if (alarmType == 1) { formPanePointConfig.removeRow(3); formPanePointConfig.removeRow(3); /*加1报时增*/ addAnalogRows(formPanePointConfig, pointconfigAlarmLevels, pointConfigLevelValue, alarmCategoriesPointConfig); } alarmType = 0; } else { if (alarmType == 0 || alarmType == -1) { formPanePointConfig.removeRow(3); formPanePointConfig.removeRow(3); formPanePointConfig.removeRow(3); } alarmType = 1; addDigitalRows(formPanePointConfig, pointconfigAlarmLevels, pointConfigLevelValue, alarmCategoriesPointConfig); } } } }, '标签名称:', { id: 'pointName', textField: { text: '*' } }, '标签描述:', { id: 'pointDesc', textField: { text: '*' } }, { button: { label: '查找', onClicked: function () { dataModelTag.clear(); var tagDataType = formPanePointConfig.v('pointAlarmType') == "模拟量" ? "false" : "true"; var tagName = formPanePointConfig.v('pointName'); var tagDesc = formPanePointConfig.v('pointDesc'); getTags(tagDataType, tagName, tagDesc, dataModelTag); } } } ], [60, 0.03, 60, 0.03, 60, 0.03, 60, 0.03]); formPanePointConfig.addRow([tablePointConfigPane], [0.1], 0.1); var alarmLevels = []; for (var i in pointconfigAlarmLevels) { if (pointconfigAlarmLevels[i] != "*") { alarmLevels.push(pointconfigAlarmLevels[i]); } } var pointConfigLevelValue = alarmLevels.length > 0 ? alarmLevels[0] : ""; formPanePointConfig.addRow([ '组:', { id: 'pointGroup', comboBox: { values: pointconfigAlarmGroups, value: pointconfigAlarmGroups[0] } } ], [60, 0.03]); addAnalogRows(formPanePointConfig, alarmLevels, pointConfigLevelValue, alarmCategoriesPointConfig); dialog.setConfig({ title: "报警规则添加", titleIcon: 'node_image', content: formPanePointConfig, width: 600, height: 450, draggable: true, closable: true, maximizable: true, resizeMode: "wh", buttons: [{ label: "保存" }, { label: "取消", className: "button-yes" }], buttonsAlign: "center", action: function (item, e) { if (item.label == "保存") { //var alarmFilterSettings; var alarmobj = {}; var groupName = formPanePointConfig.v('pointGroup'); if (alarmType == 0) { if (checkNumber(formPanePointConfig.v('highvalue1'))) { var alarmFilterSetting1 = new AlarmFilterSetting(); alarmFilterSetting1.message = formPanePointConfig.v('highdesc1'); alarmFilterSetting1.value = (Number(formPanePointConfig.v('highvalue1'))); var levelName1 = getAlarmLevelNameByName(formPanePointConfig.v('highlevel1')); alarmFilterSetting1.level = levelName1; alarmFilterSetting1; } if (checkNumber(formPanePointConfig.v('highvalue2'))) { var alarmFilterSetting2 = new AlarmFilterSetting(); alarmFilterSetting2.message = formPanePointConfig.v('highdesc2'); alarmFilterSetting2.value = (Number(formPanePointConfig.v('highvalue2'))); var levelName2 = getAlarmLevelNameByName(formPanePointConfig.v('highlevel2')); alarmFilterSetting2.level = levelName2; alarmFilterSetting2; } if (checkNumber(formPanePointConfig.v('highvalue3'))) { var alarmFilterSetting3 = new AlarmFilterSetting(); alarmFilterSetting3.message = formPanePointConfig.v('highdesc3'); alarmFilterSetting3.value = (Number(formPanePointConfig.v('highvalue3'))); var levelName3 = getAlarmLevelNameByName(formPanePointConfig.v('highlevel3')); alarmFilterSetting3.level = levelName3; alarmFilterSetting3; } if (checkNumber(formPanePointConfig.v('lowvalue1'))) { var alarmFilterSetting4 = new AlarmFilterSetting(); alarmFilterSetting4.message = formPanePointConfig.v('lowdesc1'); alarmFilterSetting4.value = (Number(formPanePointConfig.v('lowvalue1'))); var levelName4 = getAlarmLevelNameByName(formPanePointConfig.v('lowlevel1')); alarmFilterSetting4.level = levelName4; alarmFilterSetting4; } if (checkNumber(formPanePointConfig.v('lowvalue2'))) { var alarmFilterSetting5 = new AlarmFilterSetting(); alarmFilterSetting5.message = formPanePointConfig.v('lowdesc2'); alarmFilterSetting5.value = (Number(formPanePointConfig.v('lowvalue2'))); var levelName5 = getAlarmLevelNameByName(formPanePointConfig.v('lowlevel2')); alarmFilterSetting5.level = levelName5; alarmFilterSetting5; } if (checkNumber(formPanePointConfig.v('lowvalue3'))) { var alarmFilterSetting6 = new AlarmFilterSetting(); alarmFilterSetting6.message = formPanePointConfig.v('lowdesc3'); alarmFilterSetting6.value = (Number(formPanePointConfig.v('lowvalue3'))); var levelName6 = getAlarmLevelNameByName(formPanePointConfig.v('lowlevel3')); alarmFilterSetting6.level = levelName6; alarmFilterSetting6; } alarmobj = { h1: alarmFilterSetting1, h2: alarmFilterSetting2, h3: alarmFilterSetting3, l1: alarmFilterSetting4, l2: alarmFilterSetting5, l3: alarmFilterSetting6 } var dicmap = tablePointCofigView.sm()._map; var alarmpoints = []; for (var key in dicmap) { var factag = {}; var tag = dataModelTag.getDataById(key); var alarmPoint = new AlarmPoints(); alarmPoint.tag_name = tag._attrObject.configPointName; alarmPoint.template = 'analog'; alarmPoint.description = tag._attrObject.configPointDesc; alarmPoint.attributes = JSON.stringify(alarmobj); factag = { tag: tag._attrObject.configPointName }; alarmPoint.factor_tags = JSON.stringify(factag); alarmpoints.push(alarmPoint); } updateAlarmPoints(alarmpoints); } if (alarmType == 1) { /*0报*/ var alarmFilterSettingDigital1 = new AlarmFilterSetting(); alarmFilterSettingDigital1.message = formPanePointConfig.v('shiftAlarmDesc1'); var levelName1 = getAlarmLevelNameByName(formPanePointConfig.v('shiftlevel1')); //shiftTo1 alarmFilterSettingDigital1.level = levelName1; alarmFilterSettingDigital1; /*1报*/ var alarmFilterSettingDigital2 = new AlarmFilterSetting(); alarmFilterSettingDigital2.message = formPanePointConfig.v('shiftAlarmDesc2'); var levelName2 = getAlarmLevelNameByName(formPanePointConfig.v('shiftlevel2')); //shiftTo1 alarmFilterSettingDigital2.level = levelName2; alarmFilterSettingDigital2; alarmobj = { to0: alarmFilterSettingDigital1, to1: alarmFilterSettingDigital2 } var dicmap = tablePointCofigView.sm()._map; var alarmpoints = []; for (var key in dicmap) { var factag = {}; var tag = dataModelTag.getDataById(key); var alarmPoint = new AlarmPoints(); alarmPoint.tag_name = tag._attrObject.configPointName; alarmPoint.template = 'boolean'; alarmPoint.description = tag._attrObject.configPointDesc; alarmPoint.attributes = JSON.stringify(alarmobj); factag = { tag: tag._attrObject.configPointName }; alarmPoint.factor_tags = JSON.stringify(factag); alarmpoints.push(alarmPoint); } updateAlarmPoints(alarmpoints); } dialog.hide(); getAlarmPoints(dataModelPointConfig, 1, 20, pageCountPointConfig, dataAreaName, pointtypePointConfig); } if (item.label == "取消") { dialog.hide(); } } }); dialog.show(); } pageCountPointConfig = new ht.widget.TextField(); var attributes = [{ name: 'tagnum', displayName: '序号', color: "#ceae42", align: 'center', accessType: 'attr', width: 150, editable: false }, { name: 'area', displayName: '区域', color: "#ceae42", align: 'center', accessType: 'attr', width: 150, editable: false }, { name: 'tagName', displayName: '标签名', color: "#ceae42", align: 'center', accessType: 'attr', width: 700, editable: false }, { name: 'desc', displayName: '描述', color: "#ceae42", align: 'center', accessType: 'attr', width: 60, editable: false }, { name: 'rol', displayName: '报警规则', color: "#ceae42", align: 'center', accessType: 'attr', width: 60, editable: false }, { name: 'group', displayName: '组', color: "#ceae42", align: 'center', accessType: 'attr', width: 60, editable: false }, { name: 'issheild', displayName: '是否屏蔽', color: "#ceae42", align: 'center', accessType: 'attr', width: 60, editable: false, enum: { values: ["开", "关"], editable: true, maxHeight: 120 } } ]; tablePanePointConfig.addColumns(attributes); tableViewPointConfig = tablePanePointConfig.getTableView(); tablePanePointConfig.getView().style.background = "#0C152A"; //"Honeydew"; tableViewPointConfig.setRowLineColor('#54b7db'); tableViewPointConfig.setColumnLineColor('transparent'); tableViewPointConfig.setSelectBackground("#31647e"); tableViewPointConfig.setRowHeight(25); tableViewPointConfig.getLabelColor = function () { return ("white") }; tableViewPointConfig.setCheckMode(true); var arrary = ''; //propertyView.addProperties(attributes); } //报警分组 function createAlarmGroup(x, y, width, height) { dataModelGroup = new ht.DataModel(); tablePaneGroup = new ht.widget.TablePane(dataModelGroup); borderPaneGroup = new ht.widget.BorderPane(); borderPaneGroup.setCenterView(tablePaneGroup) getAlarmGropTables(dataModelGroup, tablePaneGroup); var attributesAlarmGroup = [{ name: 'id', displayName: '编号', color: "#ceae42", align: 'center', width: 50 }, { name: 'groupName', displayName: '组名称', color: "#ceae42", align: 'center', accessType: 'attr', width: 500, editable: true }, { name: 'groupDesc', displayName: '说明', color: "#ceae42", align: 'center', accessType: 'attr', width: 550, editable: true } ]; tablePaneGroup.addColumns(attributesAlarmGroup); tableGroupView = tablePaneGroup.getTableView(); tablePaneGroup.getView().style.background = "#0C152A"; //"Honeydew"; tableGroupView.setRowLineColor('#54b7db'); tableGroupView.setColumnLineColor('transparent'); tableGroupView.setSelectBackground("#31647e"); tableGroupView.setRowHeight(25); tableGroupView.getLabelColor = function () { return ("white") }; tableGroupView.setCheckMode(true); var changeCateId = ","; dataModelGroup.onDataPropertyChanged = function (data, e) { if (changeCateId.indexOf(',' + data._id + ',') == -1) { changeCateId += data._id + ","; } } var toolbarAlarmGroup = new ht.widget.Toolbar([{ button: { width: 50, label: '添加', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { addCateData(); } } }, { button: { width: 50, label: '删除', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { var cateIds; var dicmap = tableGroupView.sm()._map; for (var key in dicmap) { cateIds = key; dataModelGroup.removeDataById(key); } deleteAlarmGrop(cateIds); } } }, { button: { width: 50, label: '保存', borderColor: '#31647e', background: '#52b4d7', onClicked: function () { updateGroupData(); } } } ]); //修改报警组 function updateGroupData() { if (changeCateId === ',') { //getAlarmGropTables(dataModelGroup,tablePaneGroup); } else { var updateGroups; var ids = changeCateId.split(","); for (var i = 0; i < ids.length; i++) { if (ids[i].length != 0) { var dataModel = dataModelGroup.getDataById(ids[i]); var alarmGroup = dataModel._attrObject; var alarmGroups = new AlarmGroup(); alarmGroups.id = { "value": Number(ids[i]) }; alarmGroups.group_name = { "value": alarmGroup.groupName }; updateGroups = alarmGroups; } } updateAlarmGroup(updateGroups); getAlarmGropTables(dataModelGroup, tablePaneGroup); } } function addCateData() { data = new ht.Data(); //data.setId(5);//改为随机数据 data.setId(GetRandomNum(0, 99999)); data.a('groupName', "组名称"); data.a('groupDesc', "说明"); dataModelGroup.add(data); dataModelGroup.sm().ss(data); tableGroupView.setFocusDataById(data.getId()); } toolbarAlarmGroup.getLabelColor = function (item) { return 'white'; }; toolbarAlarmGroup.getView().style.background = '#3D3D3D'; borderPaneGroup.setTopView(toolbarAlarmGroup); var borderPaneGroupNode = new ht.HtmlNode(); borderPaneGroupNode.setScalable(false); borderPaneGroupNode.s({ '2d.selectable': true, '2d.movable': false }); borderPaneGroupNode.setHtml(borderPaneGroup); borderPaneGroupNode.setPosition({ x: x, y: y }); borderPaneGroupNode.setWidth(width); borderPaneGroupNode.setHeight(height); borderPaneGroupNode.setPadding(0); dataModel.add(borderPaneGroupNode); } //报警区域 /*function createAlarmArea(x,y,width,height){ dataModelArea=new ht.DataModel(); tablePaneArea = new ht.widget.TablePane(dataModelArea); borderPaneArea=new ht.widget.BorderPane(); borderPaneArea.setCenterView(tablePaneArea) getAlarmAreaTables(dataModelArea); var attributesAlarmArea=[ { name: 'id', displayName:'编号', align: 'center', width:50 }, { name: 'areaName', displayName:'区域', align: 'center', accessType:'attr', width:500, editable: true }, { name: 'parentId', displayName:'父ID', align: 'center', accessType:'attr', width:500, editable: true } ]; tablePaneArea.addColumns(attributesAlarmArea); var changeCateId=","; dataModelArea.onDataPropertyChanged=function(data,e){ if(changeCateId.indexOf(','+data._id+',')==-1){ changeCateId+=data._id+","; } } var toolbarAlarmArea=new ht.widget.Toolbar([ { button: { width: 50, label: '添加', onClicked: function(){ addAreaData(); } } }, { button: { width: 50, label: '删除', onClicked: function(){ var cateIds; var dicmap=tableAreaView.sm()._map; for(var key in dicmap){ console.log(key) cateIds=key; dataModelArea.removeDataById(key); } deleteAlarmArea(cateIds) } } }, { button: { width: 50, label: '保存', onClicked: function(){ updateAreaData(); } } } ]); function updateAreaData() { if (changeCateId === ',') { //getAlarmAreaTables(dataModelArea); } else { var updateAreas; var ids = changeCateId.split(","); for (var i = 0; i < ids.length; i++) { if (ids[i].length != 0) { var dataModel = dataModelArea.getDataById(ids[i]); var alarmArea = dataModel._attrObject; console.log(alarmArea) var alarmAreas = new AlarmArea(); alarmAreas.id={"value":Number(ids[i])}; alarmAreas.area_name = {"value":alarmArea.areaName}; alarmAreas.parent_id={"value":alarmArea.parentId}; updateAreas=alarmAreas; } } updateAlarmArea(updateAreas) getAlarmAreaTables(dataModelArea); } } function addAreaData(){ data = new ht.Data(); //data.setId(5);//改为随机数据 data.setId(GetRandomNum(0,99999)); data.a('areaName',"区域"); data.a('parentId',"父ID"); dataModelArea.add(data); dataModelArea.sm().ss(data); tableAreaView.setFocusDataById(data.getId()); } tableAreaView=tablePaneArea.getTableView(); tableAreaView.setCheckMode(true); toolbarAlarmArea.getLabelColor = function(item){ return 'white'; }; toolbarAlarmArea.getView().style.background = '#3D3D3D'; borderPaneArea.setTopView(toolbarAlarmArea); var borderPaneAreaNode = new ht.HtmlNode(); borderPaneAreaNode.setScalable(false); borderPaneAreaNode.s({ '2d.selectable': true, '2d.movable': false }); borderPaneAreaNode.setHtml(borderPaneArea); borderPaneAreaNode.setPosition({x:x,y:y}); borderPaneAreaNode.setWidth(width); borderPaneAreaNode.setHeight(height); borderPaneAreaNode.setPadding(0); dataModel.add(borderPaneAreaNode); }*/ //添加模拟量报警规则 function addAnalogRows(node, pointconfigAlarmLevels, pointConfigLevelValue, alarmCategories) { formPanePointConfig.addRow([ alarmCategories[1], { id: 'highvalue1', //高一 textField: { text: '*' } }, { id: 'highlevel1', comboBox: { values: pointconfigAlarmLevels, value: pointConfigLevelValue } }, { id: 'highdesc1', textField: { text: '*' } }, alarmCategories[4], { id: 'lowvalue1', //低一 textField: { text: '*' } }, { id: 'lowlevel1', comboBox: { values: pointconfigAlarmLevels, value: pointConfigLevelValue } }, { id: 'lowdesc1', textField: { text: '*' } } ], [60, 0.03, 60, 0.03, 60, 0.03, 60, 0.03]); formPanePointConfig.addRow([ alarmCategories[2], { id: 'highvalue2', textField: { text: '*' } }, { id: 'highlevel2', comboBox: { values: pointconfigAlarmLevels, value: pointConfigLevelValue } }, { id: 'highdesc2', textField: { text: '*' } }, alarmCategories[5], { id: 'lowvalue2', textField: { text: '*' } }, { id: 'lowlevel2', comboBox: { values: pointconfigAlarmLevels, value: pointConfigLevelValue } }, { id: 'lowdesc2', textField: { text: '*' } } ], [60, 0.03, 60, 0.03, 60, 0.03, 60, 0.03]); formPanePointConfig.addRow([ alarmCategories[3], { id: 'highvalue3', textField: { text: '*' } }, { id: 'highlevel3', comboBox: { values: pointconfigAlarmLevels, value: pointConfigLevelValue } }, { id: 'highdesc3', textField: { text: '*' } }, alarmCategories[6], { id: 'lowvalue3', textField: { text: '*' } }, { id: 'lowlevel3', comboBox: { values: pointconfigAlarmLevels, value: pointConfigLevelValue } }, { id: 'lowdesc3', textField: { text: '*' } } ], [60, 0.03, 60, 0.03, 60, 0.03, 60, 0.03]); } //数字量报警设置 function addDigitalRows(node, pointconfigAlarmLevels, pointConfigLevelValue, alarmCategories) { var digitalAlarmCates = []; for (var i = 0; i < alarmCategories.length; i++) { digitalAlarmCates.push(alarmCategories[i]); } formPanePointConfig.addRow([ /*0报*/ '报警设置:', { id: 'shiftTo1', comboBox: { values: digitalAlarmCates, value: digitalAlarmCates[0] } }, { id: 'shiftlevel1', comboBox: { values: pointconfigAlarmLevels, value: pointConfigLevelValue } }, { id: 'shiftAlarmDesc1', textField: { text: '*' } } ], [60, 0.03, 60, 0.03, 60, 0.03, 60, 0.03]); formPanePointConfig.addRow([ /*1报*/ '报警设置:', { id: 'shiftTo2', comboBox: { values: digitalAlarmCates, value: digitalAlarmCates[0] } }, { id: 'shiftlevel2', comboBox: { values: pointconfigAlarmLevels, value: pointConfigLevelValue } }, { id: 'shiftAlarmDesc2', textField: { text: '*' } } ], [60, 0.03, 60, 0.03, 60, 0.03, 60, 0.03]); } //获取报警铃声 function getAlarmSound(curData) { var wavfilename = ""; var playLen; //报警声音播放时长 var soundLen = 0; //记录播放的时间 if (alarmLevelDic[curData.state0] != null) { wavfilename = alarmLevelDic[curData.state0].wave_file; playLen = alarmLevelDic[curData.state0].duration; // playLen = 10; } if (wavfilename != "") { // audio.src = wavFile + wavfilename; audio.src = "http://" + authServiceIP + ":" + authServicePort + "/html/audio/" + wavfilename; audio.play(); audio.addEventListener("ended", function () { soundLen += audio.duration; if (soundLen <= playLen) { audio.play(); } else { // console.log(soundLen); soundLen = 0; audio.pause(); } }); } else { return; } } var alarmTimer; // 定时器,每10秒翻动一次。 function AlarmInfoShow(_data, count) { var d = _data && _data[0] || null, fanNumber = '', alarmWindowData = {}, alarmWindowFlag; try { if (window.parent && window.parent.showAlarmWindow === true) { alarmWindowFlag = true; } else { alarmWindowFlag = false; } } catch (err) { alarmWindowFlag = false; } if (alarmWindowFlag === true) { return ; } function initData(_data) { var td, currentData = {}, dataArr = [], af; currentData.isCurrent = true; currentData.trigger_time = 0; for (var key in alarmSystemObj) { alarmWindowData[key] = null; } alarmWindowData.count = 0; for (var i = 0, len = _data.length; i < len; i++) { td = _data[i]; td.systemName = alarmSystemObj[td.state3] && alarmSystemObj[td.state3]['system_name'] || ''; td.alarmDesc = td.user_data0; td.alarmTime = moment(d.trigger_time).format('YYYY-MM-DD HH:mm:ss'); if (!!alarmAreasDic[td.state1]) { td.alarmAreaName = alarmAreasDic[td.state1]; } else { td.alarmAreaName = ' '; } af = alarmAreaFilter(td.alarmAreaName); if (!af) continue; if (td.trigger_time > currentData.trigger_time) { currentData.isCurrent = false; currentData = td; currentData.isCurrent = true; } if (!alarmWindowData[td.state3]) { alarmWindowData[td.state3] = td; } dataArr.push(td); } alarmWindowData.count = count || dataArr.length; } function addData() { initData(_data); alarmInfoWindow.refreshData(alarmWindowData); } var alarmInfoWindow = AlarmInfoShow.alarmInfoWindow || GD.createAlarmWindow(function () { var EnsureUser = alarmInfoWindow.currentData && alarmInfoWindow.currentData.ensure_info, Ensuretag = alarmInfoWindow.currentData && alarmInfoWindow.currentData.tag_name; var tagobj = { "tag_name": Ensuretag, "ensure_info": EnsureUser }; ensureAlarm([tagobj], function (data) { }); }); if (!d) { alarmInfoWindow.alarmWindowHide(); return; } else { if (alarmInfoWindow.isHide()) { alarmInfoWindow.alarmWindowShow(); } } addData(); document.body.appendChild(alarmInfoWindow._dom); alarmInfoWindow.addEventToDom(alarmInfoWindow._dom); alarmInfoWindow.alarmWindowDragable(true); alarmInfoWindow.setFlagShaly(); if (!AlarmInfoShow.alarmInfoWindow) { AlarmInfoShow.alarmInfoWindow = alarmInfoWindow; } getAlarmSound(d); } function AlarmInfoShow1(_data, curAlarmIndex, tablestyle) { tablestyle = tablestyle || {}; // console.log(data); /*else{ if(alarmInfoDialog.isShowing()){ alarmInfoDialog.hide(); } }*/ var myData = _data; var curAlarmCount = _data.length; // if(curAlarmIndex>curAlarmCount){ // curAlarmCount=curAlarmIndex; // }else{ // curAlarmIndex=curAlarmIndex-1; // } if (curAlarmIndex == curAlarmCount && curAlarmCount != 0) { curAlarmIndex = curAlarmIndex - 1; } if (curAlarmIndex > curAlarmCount) { curAlarmCount = curAlarmIndex; } if (_data.length <= 0) { if (typeof (alarmInfoDialog) != "undefined" && alarmInfoDialog.isShowing()) { alarmInfoDialog.hide(); } return; } // var curAlarmIndex = 1; var currentData = _data[curAlarmIndex]; var currentDevice = alarmAreasDic[currentData.state1]; var currentAlarmTime = moment(Number(currentData.alarm_time)).format("YYYY-MM-DD HH:mm:ss"); var currentAlarmDesc = currentData.user_data0 || currentData.alarm_message; var tagName = currentData.tag_name; var alarmDialogPosition = { x: document.body.clientWidth - 280, y: graphView.getView().clientHeight - 200 }; // var content = "

" + currentAlarmTime + "

" + tagName + "

" + currentAlarmDesc + "

"; var alarmSrc = imagePath + "alarm.png"; var pwidth = document.body.clientWidth * 0.22; var pheight = graphView.getView().clientHeight * 0.35; var content = "
" + "

待确认故障" + "" + curAlarmCount + "

" + "

  设备名称:" + currentDevice + "

" + "

  故障名称:" + currentAlarmDesc + "

" + "

  故障时间:" + currentAlarmTime + "

" + "

"; // var content = "

" + "aaa" + "

" + "bbb" + "

" + "ccc" + "

"; var alarmDialogConfigObj = { // titleBackground: 'rgb(249, 27, 38)', titleBackground: tablestyle.paneTitleBackColor, titleColor: tablestyle.paneTitleFontColor, position: { x: '', y: '' }, // closable: true, draggable: false, // contentPadding: 5, content: content, width: pwidth, height: pheight, buttons: [{ label: "确认", className: "ensurebtn", action: function () { var _data = window.alarmData; _data.removeArr(curAlarmIndex); if (curAlarmIndex != 0) { curAlarmIndex = curAlarmIndex - 1; } var EnsureUser = currentData.ensure_info; var Ensuretag = currentData.tag_name; tagobj = { "tag_name": Ensuretag, "ensure_info": EnsureUser }; //console.log(currentData); // console.log(curAlarmIndex); ensureAlarm([tagobj], function (data) { }); // if (_data.length <= 0) { // alarmInfoDialog.hide(); // getRealAlarmInfos(realdataModelReal, tablePaneReal, pageinputReal.value, rowssizeReal.getValue(), pageCountReal, dataAreaNameReal, alarmGroupValueReal, alarmLevelValueReal, alarmStateValueReal); // return; // } else { // // curAlarmCount = data[0].alarm_no; // if (curAlarmIndex >= curAlarmCount) { // curAlarmIndex = curAlarmCount; // } // } // AlarmInfoShow(_data, curAlarmIndex, tablestyle); } } ], buttonsAlign: "right", } var tabViewConfig = []; // alarmSystem.forEach(function (item, index) { // var d = {}; // d.name = item.system_name; // d.selected = item.id === currentData.state3 ? true : false; // d.view = item.id === currentData.state3 ? content : ''; // d.currentData = currentData; // d.index = curAlarmIndex; // tabViewConfig.push(d); // }); // tabViewConfig.onTabChanged = function (oldTab, newTab) { // currentData = newTab.a('currentData') || currentData; // curAlarmIndex = newTab.a('curAlarmIndex') || curAlarmIndex; // //console.log(currentData, curAlarmIndex); // }; // if (typeof (alarmInfoDialog) == "undefined") { // // alarmInfoDialog = new ht.widget.Dialog(); // alarmInfoDialog = createDialogWithTabView(alarmDialogConfigObj, tabViewConfig, true, tablestyle,alarmInfoDialog); // var tab = alarmInfoDialog.tabModel.getDataByTag(alarmSystemObj[currentData.state3].system_name); // tab.setView($(content)[0]); // alarmInfoDialog.tabModel.getSelectionModel().setSelection(tab); // // console.log(tabViewConfig); // } else { // // alarmInfoDialog.setTabConfig(alarmDialogConfigObj, tabViewConfig); // try { // var tab = alarmInfoDialog.tabModel.getDataByTag(alarmSystemObj[currentData.state3].system_name); // tab.setView($(content)[0]); // alarmInfoDialog.tabModel.getSelectionModel().setSelection(tab); // } catch (error) { // console.log(error); // } // } var sysname = alarmSystemObj[currentData.state3].system_name; alarmInfoDialog = createDialogAlarm(alarmInfoDialog, alarmDialogConfigObj, true, tablestyle, sysname); // if(typeof (alarmInfoDialog) == "undefined"){ // alarmInfoDialog = createDialogAlarm(alarmInfoDialog,alarmDialogConfigObj, true, tablestyle,sysname); // }else{ // alarmInfoDialog.setConfig(alarmDialogConfigObj); // } // var tab = alarmInfoDialog.tabModel.getDataByTag(alarmSystemObj[currentData.state3].system_name); // tab.setView($(content)[0]); // alarmInfoDialog.tabModel.getSelectionModel().setSelection(tab); alarmInfoDialog.setModal(false); alarmInfoDialog.$dialogTitle.text(_data.length); if (alarmInfoDialog.isShowing()) { //alarmInfoDialog.hide(); } else { alarmInfoDialog.show(); } document.getElementsByClassName("dialog-container-buttons")[0].style.background = tablestyle.paneContentBackColor; //document.getElementsByClassName("dialog-button dialog-button-confirm")[0].style.background = tablestyle.btnBackgroundColor; document.getElementsByClassName("dialog-content")[0].style.background = tablestyle.paneContentBackColor; // (function (data, curAlarmIndex) { // if (data.length > 1) { // alarmTimer && clearTimeout(alarmTimer); // alarmTimer = setTimeout(function () { // nextIndex = curAlarmIndex - 1; // nextIndex = nextIndex < 0 ? data.length - 1 : nextIndex; // AlarmInfoShow(data, nextIndex, tablestyle); // }, 10 * 1000); // } // })(_data, curAlarmIndex); getAlarmSound(_data[curAlarmIndex]); } function getAllUnsureAlarmInfo(cb) { cb = cb || function () { }; var reqData = { "condition": [{ "field": "is_ensure", "method": 0, "value": "0" }] }; //var flagnum="get"; var eventName = "/alarm/GetSnapshots"; socket.alarmPost(eventName, reqData, function (data) { if (data.success && data.data) { return cb(data.data.data); } cb([]); }) } function AlarmErrorShow(message) { var errorDialog = new ht.widget.Dialog(); errorDialog.setConfig({ title: "错误消息提示", titleAlign: "left", closable: true, draggable: true, contentPadding: 20, content: "

" + message + "

", buttons: [{ label: "关闭" }], buttonsAlign: "right", action: function (item, e) { errorDialog.hide(); } }); errorDialog.setModal(false); errorDialog.show(); } Array.prototype.removeArr = function (index) { if (isNaN(index) || index >= this.length) { return false; } return this.splice(index, 1); } function getAreaIds(data) { if (data._children) { for (var i = 0; i < data._children._as.length; i++) { alarmAreaIds.push(data._children._as[i]._id); getAreaIds(data._children._as[i]); } } } function alarmInit() { getAlarmGroups(function () { getAlarmSystem(function (data) { alarmSystem = data; data.forEach(function (item, index) { alarmSystemObj[item.id] = item; }); getAlarmAreas(function () { getAlarmCateByName(); getAlarmLevels(); alarmAreaFilter = (function () { var extra = GD.getParams('extra') || {},//获取用户所属区域 userArea = extra.area || '', id = alarmAreaDicName[userArea] && alarmAreaDicName[userArea].id || '', userAreas = []; userAreas.push(userArea); alarmAreaIds.length=0; function getUserArea(_ids) { var areaData, pid, id, name, _id, tempArr = [], ids = []; for (var i = 0, len = _ids.length; i < len; i++) { _id = _ids[i]; if(_id!=""){ alarmAreaIds.push(_id); } for (var key in alarmAreaDicNameId) { if (alarmAreaDicNameId.hasOwnProperty(key)) { areaData = alarmAreaDicNameId[key] || {}; pid = areaData['parent_id']; id = areaData['id']; name = areaData['area_name']; if (pid === _id) { tempArr.push(name); ids.push(id); } } } } if (tempArr.length > 0) { userAreas = userAreas.concat(tempArr); getUserArea(ids); } } getUserArea([id]); function compare(uArea) { if (!userArea) return true; return userAreas.indexOf(uArea) !== -1; } return compare; })(); }); }) }); } function getAreaTreeData(treeView, DataType, id, map) { var curid = id; for (var i = 0; i < DataType.length; i++) { var curdata = DataType[i]; if (curdata.parent_id == curid) { data = new ht.Data(); data._id = curdata.id; data._pid = curdata.parent_id; data.setName(curdata.area_name); data.setTag(curdata.area_name); data.setParent(map[curdata.parent_id]); treeView.dm().add(data); map[curdata.id] = data; if (i == DataType.length - 1) { break; } else { getAreaTreeData(treeView, DataType, curdata.id, map); } } } }