CLIENT GUI Framework
[vnfsdk/refrepo.git] / portal-performance / src / main / webapp / performance / js / alarmsUtil.js
1 /*\r
2  * Copyright 2016-2017, CMCC Technologies Co., Ltd.\r
3  *\r
4  * Licensed under the Apache License, Version 2.0 (the "License");\r
5  * you may not use this file except in compliance with the License.\r
6  * You may obtain a copy of the License at\r
7  *\r
8  *         http://www.apache.org/licenses/LICENSE-2.0\r
9  *\r
10  * Unless required by applicable law or agreed to in writing, software\r
11  * distributed under the License is distributed on an "AS IS" BASIS,\r
12  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
13  * See the License for the specific language governing permissions and\r
14  * limitations under the License.\r
15  */\r
16 var alarmsUtil = {};\r
17 var alarmTemp=[];\r
18 \r
19 alarmsUtil.timeRender = function (obj) {\r
20         if (obj.aData[obj.mDataProp] == -1 || obj.aData[obj.mDataProp] == 0) {\r
21                 return "";\r
22         } else {\r
23                 var date = new Date(obj.aData[obj.mDataProp]);\r
24                 return commonUtil.parseDate(date, 'yyyy-MM-dd hh:mm:ss');\r
25         }\r
26 };\r
27 \r
28 alarmsUtil.LinkRender = function (obj) {\r
29         return '<a href="">' + obj.aData[obj.mDataProp] + '</a>';\r
30 };\r
31  \r
32 alarmsUtil.ackState = function (obj) {\r
33         \r
34         var innerHtml = "";\r
35         var ackState = obj.aData.ackState;\r
36         var alarmId = obj.aData.id;\r
37         var alarmIdArr = [alarmId];\r
38         var tableId="\'" + obj.oSettings.sTableId + "\'";\r
39         var divId="\'" + obj.oSettings.nTableWrapper.parentElement.id + "\'";\r
40         if (ackState == "1" && vm.ruleType == 1) {\r
41                 innerHtml = "<a class=\"label label-sm label-info\"   onclick=\" alarmsUtil.unaffirm([" + alarmIdArr + "]," + tableId + "," + divId + ","+obj.iDataRow+")  \">Acknowledge</a>";\r
42         } else if(ackState == "1" && vm.ruleType == 2){\r
43                 innerHtml = "<div class=\"label label-sm label-info\">Acknowledge</div>";\r
44         } else if(ackState == "2" ){\r
45                 innerHtml = "<a class=\"label label-sm acknow-purple\"    onclick=\" alarmsUtil.affirm([" + alarmIdArr + "]," + tableId + "," + divId + ","+obj.iDataRow+")\">Unacknowledge</a>";\r
46         } \r
47         return innerHtml;\r
48 };\r
49 \r
50 alarmsUtil.Severity = function (obj) {\r
51 \r
52         var innerHtml = "";\r
53         var Severity = obj.aData.perceivedSeverity;\r
54         if (Severity == "1") {\r
55                 innerHtml = "<span style=\"color:#E24949 \"  class=\"ict-alarm \" ></span><sapn  \">Critical</sapn>";\r
56         } else if (Severity == "2") {\r
57                 innerHtml = "<span style=\"color:#E59313 \" class=\"ict-alarm\" ></span><sapn \">Major</sapn>";\r
58         } else if (Severity == "3") {\r
59                 innerHtml = "<span style=\"color:#F7E51B \" class=\"ict-alarm\" ></span><sapn  \">Minor</sapn>";\r
60         } else if (Severity == "4") {\r
61                 innerHtml = "<span style=\"color:#61C2DE \" class=\"ict-alarm\" ></span><sapn \">Warning</sapn>";\r
62         }\r
63         return innerHtml;\r
64 \r
65 };\r
66 \r
67 alarmsUtil.operate = function (obj) {\r
68 \r
69         var alarmId = obj.aData.alarmId;\r
70         return "<div class='row col-xs-12'><div><a href='#' class=\"btn-xs grey btn-editable\" onclick=\" alarmsUtil.congfirms('" + alarmId + "')\"><i class=\"ict-delete\"></i>清除</a></div></div>";\r
71 \r
72 };\r
73 \r
74 alarmsUtil.congfirms = function (alarmId) {\r
75 \r
76         bootbox.confirm('你确定要删除该告警吗?', function (result) { //你确定要删除该用户吗?\r
77 \r
78                 if (result) {\r
79                         var sSource = "/web/rest/web/fm/curalarms?data={\"alarmId\":" + alarmId + "}&_dataSource=isc_PageRestDataSource_0&isc_metaDataPrefix=_&isc_dataFormat=json&_operationType=remove&_componentId=isc_com_zte_ums_aos_fm_view_eventview_table_AlarmTable_0";\r
80                         $.ajax({\r
81                                 dataType : "json",\r
82                                 type : "DELETE",\r
83                                 //数据格式:[tab标签id,tabItem的名字,图片路径,tabItem的描述,更多的LInk地址]\r
84                                 contentType : 'application/json; charset=utf-8',\r
85                                 url : sSource,\r
86                                 data : null,\r
87                                 async : false,\r
88                                 success : function (msg) {\r
89                                         setTimeout(function () {\r
90                                                 refreshByCond();\r
91                                         }, 500);\r
92                                 }\r
93                         });\r
94                 }\r
95 \r
96         });\r
97 \r
98 };\r
99 \r
100 alarmsUtil.allOperate = function (obj) {\r
101 \r
102         var record = obj.aData;\r
103         var hasModify = commonUtil.hasRigth('uep.pfl.sm.updateuser');\r
104         var hasDel = commonUtil.hasRigth('uep.pfl.sm.deluser');\r
105         var selectUsername = new String(record.userName);\r
106         var innerHtml = "";\r
107         \r
108         // 如果有权限,显示操作列\r
109         if (hasModify) {\r
110                 if (hasDel && selectUsername != "admin") {\r
111                         innerHtml = "<div class='row col-xs-12'><div class='col-xs-6 modify_user'><a class=\"btn-xs grey btn-editable\" href='#' onclick=\"vm.modifyUser('" + selectUsername + "')\"><i class=\"ict-modify\"></i>修改</a></div><div class='col-xs-6'><a href='#' class=\"btn-xs grey btn-editable\" onclick=\"smUtil.congfirms('" + selectUsername + "')\"><i class=\"ict-delete\"></i>删除</a></div></div>";\r
112                 } else {\r
113                         innerHtml = "<div class='row col-xs-12'><div class='col-xs-6 modify_user'><a class=\"btn-xs grey btn-editable\" href='#' onclick=\"vm.modifyUser('" + selectUsername + "')\"><i class=\"ict-modify\"></i>修改</a></div>";\r
114                 }\r
115         }\r
116 \r
117         return innerHtml;\r
118 \r
119 };\r
120 \r
121 alarmsUtil.refresh = function () {\r
122 \r
123         refreshByCond();\r
124 \r
125 }\r
126 \r
127 /*\r
128 \r
129 1.确认\r
130 \r
131 2.反确认\r
132 \r
133  */\r
134 \r
135 alarmsUtil.loopAffirm = function (type) {\r
136 \r
137         var checkArr = $('#ict_alarms_table_div .details-check input[type="checkbox"]');\r
138         var aidArr = [];\r
139         for (var i = 0; i < checkArr.length; i++) {\r
140                 if($(checkArr[i]).prop("checked")){\r
141                         if ($(checkArr[i]).attr('alarmId') != 'undefined' && $(checkArr[i]).attr('alarmId') != null) {\r
142                                 aidArr.push($(checkArr[i]).attr('alarmId'));\r
143                         }\r
144                 }\r
145         }\r
146 \r
147         if (type == "1" && aidArr.length > 0) {\r
148                 alarmsUtil.affirm(aidArr);\r
149         } else if (type == "2" && aidArr.length > 0) {\r
150                 alarmsUtil.unaffirm(aidArr);\r
151         }\r
152 \r
153 }\r
154 \r
155 /*\r
156 \r
157 \r
158 \r
159  */\r
160 \r
161 alarmsUtil.loopDelAralms = function () {\r
162 \r
163         var checkArr = $('#ict_alarms_table_div .details-check input[type="checkbox"]');\r
164         var aidArr = [];\r
165         for (var i = 0; i < checkArr.length; i++) {\r
166                 if($(checkArr[i]).prop("checked")){\r
167                         if ($(checkArr[i]).attr('alarmId') != 'undefined' && $(checkArr[i]).attr('alarmId') != null) {\r
168                                 aidArr.push($(checkArr[i]).attr('alarmId'));\r
169                         }\r
170                 }\r
171         }\r
172 \r
173         if (aidArr.length > 0) {\r
174                 bootbox.confirm('Are you sure to delete alarm(s)', function (result) { \r
175                         if (result) {\r
176                                 var sSource = "/openoapi/umc/v1/fm/curalarms?request={\"ids\":["+ aidArr +"]}";\r
177                                 $.ajax({\r
178                                         type : "DELETE", \r
179                                         dataType : "json",\r
180                                         contentType : 'application/json; charset=utf-8',\r
181                                         url : sSource,\r
182                                         data : null,\r
183                                         async : false,\r
184                                         success : function (msg) {\r
185                                                 setTimeout(function () {\r
186                                                         refreshByCond()\r
187                                                 }, 500);\r
188                                         }\r
189                                 });\r
190                         }\r
191                 });\r
192         }\r
193 }\r
194 \r
195 alarmsUtil.affirm = function (alarmIdArr,tableId,divId) {\r
196 \r
197         var getData = {};\r
198         var request = {};\r
199         request.ids=[];\r
200         for(i=0;i<alarmIdArr.length;i++){\r
201                 request.ids.push(alarmIdArr[i]);\r
202         }\r
203         var url = "";\r
204         if (vm.ruleType == 1) { //当前告警\r
205                 request.ackState=1;\r
206                 getData.request = JSON.stringify(request);\r
207                 url = "/openoapi/umc/v1/fm/curalarms";\r
208         } else { //历史告警\r
209                 url = "/ngict/rest/fm/hisalarms"\r
210         }\r
211 \r
212         $.ajax({\r
213                 type : "PUT",\r
214                 contentType : 'application/json; charset=utf-8',\r
215                 url : url + "?" + "request=" + JSON.stringify(request),\r
216                 async : false,\r
217                 success : function (msg) {\r
218                         setTimeout(function () {\r
219                                 refreshByCond(tableId,divId);\r
220                         }, 100);\r
221                 },      \r
222                 error : function(msg){\r
223                         setTimeout(function () {\r
224                                 refreshByCond(tableId,divId);\r
225                         }, 100);        \r
226                 }\r
227         });\r
228 \r
229 }\r
230 \r
231 alarmsUtil.unaffirm = function (alarmIdArr,tableId,divId) {\r
232 \r
233         var getData = {};\r
234         var request = {};\r
235         request.ids=[];\r
236         for(i=0;i<alarmIdArr.length;i++){\r
237                 request.ids.push(alarmIdArr[i]);\r
238         }\r
239         request.ackState=2;\r
240         getData.request = JSON.stringify(request);\r
241         var url = "";\r
242         if (vm.ruleType == 1) { //当前告警\r
243                 url = "/openoapi/umc/v1/fm/curalarms";\r
244                 $.ajax({\r
245                         "type" : "PUT",\r
246                         "contentType" : 'application/json; charset=utf-8',\r
247                         "url" : url + "?request=" + JSON.stringify(request),\r
248                         async : false,\r
249                         success : function (msg) {\r
250                                 setTimeout(function () {\r
251                                         refreshByCond(tableId,divId);\r
252                                 }, 100);\r
253                         },\r
254                         error : function(msg){          \r
255                                 setTimeout(function () {\r
256                                         refreshByCond(tableId,divId);\r
257                                 }, 100);                \r
258                         }\r
259                 });\r
260         } \r
261 \r
262         \r
263         \r
264 }\r
265 \r
266 alarmsUtil.checkBox = function (obj) {\r
267 \r
268         var alarmId = obj.aData.id;\r
269         var innerHtml = '<input type="checkbox" alarmId="' + alarmId + '"/> ';\r
270         return innerHtml;\r
271 }\r
272 \r
273 //初始化告警码树\r
274 alarmsUtil.initProbableCausesTree = function () {\r
275         //zTree设置\r
276         var setting = {\r
277                 view : {\r
278                         selectedMulti : false, //设置是否可以同时选中多个借点。\r
279                         showIcon : true, //不显示图标\r
280                         showLine : false, //是否显示节点之间的连线\r
281                 },\r
282                 data : {\r
283                         simpleData : {\r
284                                 enable : true //如果设置为 true,请务必设置 setting.data.simpleData 内的其他参数: idKey / pIdKey / rootPId,并且让数据满足父子关系。\r
285                         }\r
286                 },\r
287                 callback : {\r
288                         onExpand : zTreeOnExpand, //每次节点展开后触发的事件。\r
289                         onCollapse : zTreeOnCollapse,\r
290                         //onClick: zTreeOnClick\r
291                 }\r
292         };\r
293         var probableCausesNodes;\r
294         \r
295         //获取告警码树数据\r
296         getProbableCausesTreeNodes("");\r
297         //创建告警码树\r
298         $.fn.zTree.init($("#probableCausesTree"), setting, probableCausesNodes);\r
299         //获取所有现有的tree节点\r
300         var treeObj = $.fn.zTree.getZTreeObj("probableCausesTree");\r
301         initDataAtTree();\r
302         function initDataAtTree(){\r
303                 getAllNodesWithoutTypeEqual2("")                \r
304         };\r
305         \r
306         function getAllNodesWithoutTypeEqual2(parentId){\r
307                 var treeNodes=treeObj.getNodesByParam("parentId", parentId, null);\r
308                 for(var i=0;i<treeNodes.length;i++){\r
309                         if(treeNodes[i].type===0){\r
310                                 getProbableCausesTreeNodes(treeNodes[i].id);\r
311                                 addNodesToTree(treeNodes[i],"probableCausesTree");\r
312                                 getAllNodesWithoutTypeEqual2(treeNodes[i].id);\r
313                         }\r
314                 }\r
315         }\r
316 \r
317         function zTreeOnExpand(event, treeId, treeNode) {\r
318                 var childrenNodes = treeNode.children;\r
319                 if (!childrenNodes) { //当没有子节点的时候才加载,否则会重复加载。\r
320                         getProbableCausesTreeNodes(treeNode.id);\r
321                         addNodesToTree(treeNode,treeId);\r
322                 }\r
323         };\r
324         \r
325         function addNodesToTree(treeNode, treeId) {\r
326                 var obj = $.fn.zTree.getZTreeObj(treeId);\r
327                 var node=obj.getNodeByParam("id", treeNode.id, null)\r
328                 obj.addNodes(node, probableCausesNodes);\r
329         };\r
330 \r
331         function zTreeOnCollapse(event, treeId, treeNode) {};\r
332 \r
333         //告警信息中的type为0、1是父节点,2为子节点\r
334         function isParentNode(type) {\r
335                 if (type != 2)\r
336                         return true;\r
337                 else\r
338                         return false;\r
339         };\r
340         \r
341         function constructProblemCauseName(node){\r
342                 if(node.type===0){\r
343                         return node.desc;\r
344                 }else{\r
345                         return node.desc + "(" + node.value + ")";\r
346                 }\r
347         }\r
348 \r
349         function getProbableCausesTreeNodes(alarmCodeParentId) {\r
350                 probableCausesNodes = new Array();\r
351                 var getData = {};\r
352                 var request = {};\r
353                 request.parentId = alarmCodeParentId;\r
354                 getData.request = JSON.stringify(request);\r
355                 $.ajax({\r
356                         async : false,\r
357                         "dataType" : 'json',\r
358                         "type" : "GET",\r
359                         "url" : "/openoapi/umc/v1/fm/probablecausestree",\r
360                         "data" : getData,\r
361                         "contentType" : 'application/json; charset=utf-8',\r
362                         "success" : function (res, textStatus, jqXHR) {\r
363                                 var nodes = res;\r
364                                 chkDisabled = false;\r
365                                 if (nodes) {\r
366                                         for (var i = 0; i < nodes.length; i++) {\r
367                                                 probableCausesNodes.push({\r
368                                                         id : nodes[i].id,\r
369                                                         pId : nodes[i].parentId,\r
370                                                         name : constructProblemCauseName(nodes[i]),\r
371                                                         chkDisabled : false,\r
372                                                         isParent : isParentNode(nodes[i].type),\r
373                                                         parentId : alarmCodeParentId,//treenode节点\r
374                                                         codeId : nodes[i].value,\r
375                                                         type : nodes[i].type\r
376                                                 });\r
377                                         }\r
378                                 }\r
379                         },\r
380                         "error" : function () {}\r
381                 });\r
382         }\r
383 }\r
384 \r
385 //初始化位置树\r
386 alarmsUtil.initDeptTree = function () {\r
387         //zTree设置\r
388         var setting = {\r
389                 view : {\r
390                         selectedMulti : false, //设置是否可以同时选中多个借点。\r
391                         showIcon : true, //不显示图标\r
392                         showLine : false, //是否显示节点之间的连线\r
393                 },\r
394                 data : {\r
395                         simpleData : {\r
396                                 enable : true //如果设置为 true,请务必设置 setting.data.simpleData 内的其他参数: idKey / pIdKey / rootPId,并且让数据满足父子关系。\r
397                         }\r
398                 },\r
399                 callback : {\r
400                         onExpand : zTreeOnExpand, //每次节点展开后触发的事件。\r
401                         onCollapse : zTreeOnCollapse,\r
402                         //onClick: zTreeOnClick\r
403                 }\r
404         };\r
405         var zNodes = [];\r
406         initDeptTree();\r
407         function initDeptTree() {\r
408                 zNodes.push({\r
409                         id:"VDU",\r
410                         name:"VDU",\r
411                         isParent:true\r
412                 },\r
413                 {\r
414                         id:"HOST",\r
415                         name:"HOST",\r
416                         isParent:true\r
417                 });\r
418                 $.fn.zTree.init($("#deptTree"), setting, zNodes);\r
419                 zNodes=[];\r
420         }\r
421         function getDeptTreeNode(alarmCodeParentId) {\r
422                 if(alarmCodeParentId === "VDU"){\r
423                         url="/api/roc/v1/resource/vdus";\r
424                 }else if(alarmCodeParentId === "HOST"){\r
425                         url="/api/roc/v1/resource/hosts";\r
426                 }\r
427                 $.ajax({\r
428                         async : false,\r
429                         "dataType" : 'json',\r
430                         "type" : "GET",\r
431                         "url" : url,\r
432                         "contentType" : 'application/json; charset=utf-8',\r
433                         "success" : function (res, textStatus, jqXHR) {\r
434                                 var nodes = res.data;\r
435                                 if (nodes) {\r
436                                         for (var i = 0; i < nodes.length; i++) {\r
437                                                 zNodes.push({\r
438                                                         id : nodes[i].oid,\r
439                                                         parentId : alarmCodeParentId,//treenode节点\r
440                                                         name : nodes[i].name,\r
441                                                         isParent : false,\r
442                                                         oid:nodes[i].oid\r
443                                                 });\r
444                                         }\r
445                                 }\r
446                         },\r
447                         "error" : function () {}\r
448                 });\r
449         }\r
450         function zTreeOnExpand(event, treeId, treeNode) {\r
451                 getDeptTreeNode(treeNode.id);\r
452                 addNodesToTree(treeNode,treeId);\r
453                 zNodes=[];\r
454         };\r
455         function addNodesToTree(treeNode, treeId) {\r
456                 var obj = $.fn.zTree.getZTreeObj(treeId);\r
457                 var node=obj.getNodeByParam("id", treeNode.id, null)\r
458                 obj.addNodes(node, zNodes);\r
459         };\r
460         function zTreeOnCollapse(event, treeId, treeNode) {};\r
461 }\r
462 \r
463 //初始化所有的树\r
464 alarmsUtil.initTree = function () {\r
465         //初始化告警码树和告警位置树\r
466         alarmsUtil.initProbableCausesTree();\r
467         alarmsUtil.initDeptTree();\r
468         \r
469         function initFormData(ruleType) {\r
470 \r
471                 $("#confirmAction").hide();\r
472                 $("#filterType").hide();\r
473                 $("#action").hide();\r
474                 if (ruleType == "alarmFilter") {\r
475                         $("#filterType").show();\r
476                 } else if (ruleType == "ack") {\r
477                         $("#confirmAction").show();\r
478                 } else if (ruleType == "forward") {\r
479                         $("#action").show();\r
480                 }\r
481 \r
482         }\r
483 \r
484         function getNumbers(rule) {\r
485 \r
486                 for (var i = 0; i < textValues.length; i++) {\r
487                         rule[textValues[i]] = $("input[name='" + textValues[i] + "']").val();\r
488                 }\r
489 \r
490         }\r
491 \r
492         function getCheckboxs(rule) {\r
493 \r
494                 for (var i = 0; i < else_checkboxNames.length; i++) {\r
495                         rule[else_checkboxNames[i]] = $("input[name='" + else_checkboxNames[i] + "']").parent().hasClass('checked');\r
496                 }\r
497                 for (var item in checkboxNames_pair_spinnerIds) {\r
498                         rule[item] = $('#' + checkboxNames_pair_spinnerIds[item]).val();\r
499                 }\r
500         }\r
501 \r
502         function setCheckboxs(rule) {\r
503 \r
504                 for (var item in checkboxNames_pair_spinnerIds) {\r
505                         var value = 0;\r
506                         if (rule != "") {\r
507                                 value = rule[item];\r
508                         }\r
509                         $('#' + item).val(value);\r
510                         setSpinnerIsEnable(item, value);\r
511                 }\r
512                 for (var i = 0; i < else_checkboxNames.length; i++) {\r
513                         $("input[name='" + else_checkboxNames[i] + "']").parent().iCheck(rule[else_checkboxNames[i]] ? 'check' : 'uncheck');\r
514                 }\r
515         }\r
516 }\r
517 \r
518 alarmsUtil.moveNode = function (item) {\r
519         if (item.hasClass("ict-arrowRight")) {\r
520                 alarmsUtil.rightNode(item);\r
521         } else if (item.hasClass("ict-arrowLeft")) {\r
522                 alarmsUtil.leftNode(item);\r
523         } else {\r
524                 alarmsUtil.removeAll(item);\r
525         }\r
526 }\r
527 \r
528 /*树添加信息到右侧的功能*/\r
529 \r
530 alarmsUtil.rightNode = function (item) {\r
531 \r
532         var selecedNodeIds = [];\r
533         var treeType = item.attr('treeType');\r
534         var obj = $.fn.zTree.getZTreeObj(treeType);\r
535         var treeNodes = obj.getSelectedNodes();\r
536         var $table;\r
537 \r
538         if (treeType == "deptTree") {\r
539                 var $tds = $("#selectedDeptTreeTable  td");\r
540                 $table = $("#selectedDeptTreeTable");\r
541                 for (var i = 0; i < $tds.length; i++) {\r
542                         selecedNodeIds.push($tds.eq(i).attr('nodeid'));\r
543                 }\r
544         } else if (treeType == "probableCausesTree") {\r
545                 var $tds = $("#selectedProbableCausesTreeTable  td");\r
546                 $table = $("#selectedProbableCausesTreeTable");\r
547                 for (var i = 0; i < $tds.length; i++) {\r
548                         var systemTypeAndProbableCause={};\r
549                         systemTypeAndProbableCause.codeId=$tds.eq(i).attr('codeId');\r
550                         systemTypeAndProbableCause.parentid=$tds.eq(i).attr('parentid');\r
551                         systemTypeAndProbableCause.type=$tds.eq(i).attr('type');\r
552                         selecedNodeIds.push(systemTypeAndProbableCause);\r
553                 }\r
554         }\r
555         \r
556         //树上被选中的元素\r
557         for (var i = 0; i < treeNodes.length; i++) {\r
558 \r
559                 var htmlStr = "";\r
560                 var text = treeNodes[i].name;\r
561                 var id = treeNodes[i].id;\r
562                 var codeId = treeNodes[i].codeId;\r
563                 var type;\r
564                 var parentId;\r
565                 if (treeType == "deptTree") {\r
566                         var oid = treeNodes[i].oid;\r
567                         htmlStr = "<tr><td nodeId=" + id + "  oid=" + oid + "  >" + text + "</td></tr>";\r
568                 } else if (treeType == "probableCausesTree") {\r
569 \r
570                         parentId = treeNodes[i].parentId;\r
571                         type = treeNodes[i].type;\r
572                         htmlStr = "<tr><td codeId=" + codeId + "  parentId=" + parentId + " type=" + type + "  >" + text + "</td></tr>";\r
573                 }\r
574                 \r
575                 if(treeType == "probableCausesTree"){\r
576                         if(treeNodes[i].type === 2){\r
577                                 for(i=0;i<selecedNodeIds.length;i++){\r
578                                         if(selecedNodeIds[i].codeId === codeId || selecedNodeIds[i].codeId === parentId){\r
579                                                 bootbox.alert("此节点(子树)或其父子树已经被添加!", function () {});\r
580                                                 return;\r
581                                         }\r
582                                 }\r
583                         }else if(treeNodes[i].type === 1){\r
584                                 $('#selectedProbableCausesTreeTable [parentid='+codeId+']').remove();\r
585                                 for(i=0;i<selecedNodeIds.length;i++){\r
586                                         if(selecedNodeIds[i].codeId === codeId ){\r
587                                                 bootbox.alert("此节点(子树)或其父子树已经被添加!", function () {});\r
588                                                 return;\r
589                                         }\r
590                                 }\r
591                         }else if(treeNodes[i].type === 0){\r
592                                 bootbox.alert("不支持添加MOC", function () {});\r
593                                 break;\r
594                         }\r
595                 }\r
596 \r
597                 $table.append(htmlStr);\r
598 \r
599         }\r
600 \r
601         $('#selectedDeptTreeTable td').on("click", function () {\r
602 \r
603                 //获得所有选择的td\r
604                 var $tds = $('#selectedDeptTree td');\r
605                 //遍历改变样式\r
606                 for (var i = 0; i < $tds.length; i++) {\r
607                         $tds.eq(i).removeClass('tallCellSelected');\r
608                         $tds.eq(i).parent().removeClass('checked');\r
609                 }\r
610                 //当前td设为选中\r
611                 $(this).addClass('tallCellSelected');\r
612                 $(this).parent().addClass("checked"); //tr 添加一个 checked 样式。\r
613         });\r
614 \r
615         $('#selectedProbableCausesTreeTable td').on("click", function () {\r
616 \r
617                 //获得所有选择的td\r
618                 var $tds = $('#selectedProbableCausesTreeTable td');\r
619                 //遍历改变样式\r
620                 for (var i = 0; i < $tds.length; i++) {\r
621                         $tds.eq(i).removeClass('tallCellSelected');\r
622                         $tds.eq(i).parent().removeClass('checked');\r
623                 }\r
624                 //当前td设为选中\r
625                 $(this).addClass('tallCellSelected');\r
626                 $(this).parent().addClass("checked"); //tr 添加一个 checked 样式。\r
627         });\r
628 \r
629 }\r
630 \r
631 \r
632 \r
633 alarmsUtil.leftNode = function (item) {\r
634 \r
635         var treeType = item.attr('treeType');\r
636         if (treeType == "deptTree") {\r
637                 $('#selectedDeptTreeTable').children().children(".checked").remove();\r
638         } else if (treeType == "probableCausesTree") {\r
639                 $('#selectedProbableCausesTreeTable').children().children(".checked").remove();\r
640         }\r
641 \r
642 }\r
643 \r
644 alarmsUtil.removeAll = function (item) {\r
645 \r
646         var treeType = item.attr('treeType');\r
647         if (treeType == "deptTree") { //如果是资源树\r
648                 $('#selectedDeptTreeTable').children().remove();\r
649         } else if (treeType == "probableCausesTree") {\r
650                 $('#selectedProbableCausesTreeTable').children().remove();\r
651         }\r
652 }\r
653 \r
654 \r
655 \r
656 \r
657 \r
658 //调用datarangepicker组件 datarange 初始化\r
659 \r
660 alarmsUtil.setDateRange = function (dataRangeId, vm) {\r
661 \r
662         var open = 'right';\r
663         var optionSet1 = {\r
664                 startDate : "2015-08-02",\r
665                 endDate : "2015-08-03",\r
666                 format : 'YYYY-MM-DD h:mm A',\r
667                 dateLimit : {\r
668                         days : 180\r
669                 },\r
670                 showWeekNumbers : false,\r
671                 timePicker : true,\r
672                 timePickerIncrement : 5,\r
673                 opens : open,\r
674                 separator : ' - ',\r
675                 locale : {\r
676                         applyLabel : $.i18n.prop('ngict_fm_iui_curalarm_ok'),\r
677                         cancelLabel : $.i18n.prop('ngict_fm_iui_curalarm_cancel'),\r
678                         fromLabel : $.i18n.prop('ngict_fm_iui_curalarm_from'),\r
679                         toLabel : $.i18n.prop('ngict_fm_iui_curalarm_to'),\r
680                         daysOfWeek : [\r
681                                 $.i18n.prop('ngict_fm_iui_curalarm_Sun'),\r
682                                 $.i18n.prop('ngict_fm_iui_curalarm_Mon'),\r
683                                 $.i18n.prop('ngict_fm_iui_curalarm_Tues'),\r
684                                 $.i18n.prop('ngict_fm_iui_curalarm_Wed'),\r
685                                 $.i18n.prop('ngict_fm_iui_curalarm_Thurs'),\r
686                                 $.i18n.prop('ngict_fm_iui_curalarm_Fri'),\r
687                                 $.i18n.prop('ngict_fm_iui_curalarm_Sat')\r
688                                 ],\r
689                         monthNames : [$.i18n.prop('ngict_fm_iui_curalarm_January'), $.i18n.prop('ngict_fm_iui_curalarm_February'), $.i18n.prop('ngict_fm_iui_curalarm_March'), $.i18n.prop('ngict_fm_iui_curalarm_April'), $.i18n.prop('ngict_fm_iui_curalarm_May'), $.i18n.prop('ngict_fm_iui_curalarm_June'), $.i18n.prop('ngict_fm_iui_curalarm_July'), $.i18n.prop('ngict_fm_iui_curalarm_August'), $.i18n.prop('ngict_fm_iui_curalarm_September'), $.i18n.prop('ngict_fm_iui_curalarm_October'), $.i18n.prop('ngict_fm_iui_curalarm_November'), $.i18n.prop('ngict_fm_iui_curalarm_December')],\r
690                         firstDay : 1\r
691                 }\r
692         };\r
693 \r
694         //datarangepicker确认\r
695         $('input[id="' + dataRangeId + '"]').bind('apply.daterangepicker', function () {\r
696                 //获取时间范围,查询\r
697                 // 都设置为0点\r
698                 setTime($(this));\r
699                 // 更新tooltip内容\r
700                 $(this).attr("data-original-title", $(this).val());\r
701         });\r
702 \r
703         $('input[id="' + dataRangeId + '"]').daterangepicker(optionSet1);\r
704 \r
705 };\r
706 \r
707 //关闭打开datarangepicker选择器\r
708 alarmsUtil.dateRangeEnableDisable = function (customDateRangeId) {\r
709 \r
710         $('#' + customDateRangeId).on('ifChecked', function () {\r
711 \r
712                 if (customDateRangeId == "customAckTime") {\r
713                         vm.dataRangeLocationDisabled = false;\r
714                         if(vm.fmConds.ackTimeStarTime!=null && vm.fmConds.ackTimeEndTime!=null){\r
715                                 vm.fmConds.ackTimeMode=0;\r
716                         }\r
717                 } else if (customDateRangeId == "customRaisedTime") {\r
718                         vm.dataRangeTypeDisabled = false;\r
719                         if(vm.fmConds.alarmRaisedStartTime!=null && vm.fmConds.alarmRaisedEndTime!=null){\r
720                                 vm.fmConds.alarmRaisedTimeMode=0;\r
721                         }\r
722                 } else if (customDateRangeId == "customClearTime"){\r
723                         vm.dataRangeCodeDisabled = false;\r
724                         if(vm.fmConds.clearedTimeStartTime!=null && vm.fmConds.clearedTimeEndTime!=null){\r
725                                 vm.fmConds.clearedTimeMode=0;\r
726                         }\r
727                 }\r
728         });\r
729         //setTime($('#' + dataRangeId));\r
730 \r
731         $('#' + customDateRangeId).on('ifUnchecked', function () {\r
732 \r
733                 if (customDateRangeId == "customAckTime") {\r
734 \r
735                         vm.dataRangeLocationDisabled = true;\r
736                         vm.fmConds.ackTimeMode=null;\r
737 \r
738                 } else if (customDateRangeId == "customRaisedTime") {\r
739 \r
740                         vm.dataRangeTypeDisabled = true;\r
741                         vm.fmConds.alarmRaisedTimeMode=null;\r
742                         \r
743                 } else if (customDateRangeId == "customClearTime"){\r
744                 \r
745                         vm.dataRangeCodeDisabled = true;\r
746                         vm.fmConds.clearedTimeMode=null;\r
747                         \r
748                 }\r
749         });\r
750 \r
751 }\r
752 \r
753 //checkbox时间选择\r
754 alarmsUtil.dateRangeCustom = function (vm) {\r
755 \r
756         $("input[name=timeConfirm]").on("ifClicked", function () {\r
757                 if ($(this).parent().hasClass("checked")) {\r
758                         $(this).iCheck('uncheck');\r
759                 }\r
760         });\r
761 \r
762         $("input[name=timeOccur]").on("ifClicked", function () {\r
763                 if ($(this).parent().hasClass("checked")) {\r
764                         $(this).iCheck('uncheck');\r
765                 }\r
766         });\r
767 \r
768         $("input[name=timeClear]").on("ifClicked", function () {\r
769                 if ($(this).parent().hasClass("checked")) {\r
770                         $(this).iCheck('uncheck');\r
771                 }\r
772         });\r
773 \r
774         $("input[cond_id=time]").on('ifChecked', function () {\r
775 \r
776                 var nowTime = (new Date()).toLocaleDateString();\r
777                 var condDate = $(this).attr("cond_value");\r
778 \r
779                 if ($(this).attr("name") == "timeConfirm") {\r
780                         if (condDate == "1") {\r
781                                 vm.fmConds.ackRelativeTime = 1 * 24 * 60 * 60 * 1000;\r
782                                 vm.fmConds.ackTimeMode = 1;\r
783                         } else if (condDate == "2") {\r
784                                 vm.fmConds.ackRelativeTime = 2 * 24 * 60 * 60 * 1000;\r
785                                 vm.fmConds.ackTimeMode = 1;\r
786                         } else if (condDate == "7") {\r
787                                 vm.fmConds.ackRelativeTime = 7 * 24 * 60 * 60 * 1000;\r
788                                 vm.fmConds.ackTimeMode = 1;\r
789                         }\r
790                 }\r
791 \r
792                 if ($(this).attr("name") == "timeOccur") {\r
793                         if (condDate == "1") {\r
794                                 vm.fmConds.alarmRaisedRelativeTime = 1 * 24 * 60 * 60 * 1000;\r
795                                 vm.fmConds.alarmRaisedTimeMode = 1;\r
796                         } else if (condDate == "2") {\r
797                                 vm.fmConds.alarmRaisedRelativeTime = 2 * 24 * 60 * 60 * 1000;\r
798                                 vm.fmConds.alarmRaisedTimeMode = 1;\r
799                         } else if (condDate == "7") {\r
800                                 vm.fmConds.alarmRaisedRelativeTime = 7 * 24 * 60 * 60 * 1000;\r
801                                 vm.fmConds.alarmRaisedTimeMode = 1;\r
802                         }\r
803                 }\r
804 \r
805                 if ($(this).attr("name") == "timeClear") {\r
806                         if (condDate == "1") {\r
807                                 vm.fmConds.clearedTimeRelativeTime =1 * 24 * 60 * 60 * 1000;\r
808                                 vm.fmConds.clearedTimeMode = 1;\r
809                         } else if (condDate == "2") {\r
810                                 vm.fmConds.clearedTimeRelativeTime =2 * 24 * 60 * 60 * 1000;\r
811                                 vm.fmConds.clearedTimeMode = 1;\r
812                         } else if (condDate == "7") {\r
813                                 vm.fmConds.clearedTimeRelativeTime =7 * 24 * 60 * 60 * 1000;\r
814                                 vm.fmConds.clearedTimeMode = 1;\r
815                         }\r
816                 }\r
817 \r
818                 //refreshByCond();\r
819         });\r
820         \r
821         $("input[cond_id=time]").on('ifUnchecked', function () {\r
822                 if ($(this).attr("name") == "timeConfirm") {\r
823                         vm.fmConds.ackRelativeTime = null;\r
824                         vm.fmConds.ackTimeMode = null;\r
825                 }else if ($(this).attr("name") == "timeOccur") {\r
826                         vm.fmConds.alarmRaisedRelativeTime = null;\r
827                         vm.fmConds.alarmRaisedTimeMode = null;\r
828                 }else if ($(this).attr("name") == "timeClear") {\r
829                         vm.fmConds.clearedTimeRelativeTime = null;\r
830                         vm.fmConds.clearedTimeMode = null;\r
831                 }\r
832         });\r
833 \r
834 }\r
835 \r
836 \r
837 /*格式化日期*/\r
838 Date.prototype.format = function (format) {\r
839 \r
840         /*\r
841 \r
842          * format="yyyy-MM-dd hh:mm:ss";\r
843 \r
844          */\r
845         var o = {\r
846                 "M+" : this.getMonth() + 1,\r
847                 "d+" : this.getDate(),\r
848                 "h+" : this.getHours(),\r
849                 "m+" : this.getMinutes(),\r
850                 "s+" : this.getSeconds(),\r
851                 "q+" : Math.floor((this.getMonth() + 3) / 3),\r
852                 "S" : this.getMilliseconds()\r
853         }\r
854         if (/(y+)/.test(format)) {\r
855                 format = format.replace(RegExp.$1, (this.getFullYear() + "").substr(4\r
856                                          - RegExp.$1.length));\r
857         }\r
858         for (var k in o) {\r
859                 if (new RegExp("(" + k + ")").test(format)) {\r
860                         format = format.replace(RegExp.$1, RegExp.$1.length == 1\r
861                                          ? o[k]\r
862                                          : ("00" + o[k]).substr(("" + o[k]).length));\r
863                 }\r
864         }\r
865         return format;\r
866 \r
867 }\r
868 \r
869 //daterangepicker设置时间\r
870 function setTime($obj) {\r
871 \r
872         var title = $obj.attr('dtitle');\r
873         var arr = $obj.val().split(' - ');\r
874         //排除日历组件空字符串的情况。\r
875         if (arr[0] != '') {\r
876                 var starTime = new Date(arr[0].replace(/-/g, "/")).getTime();\r
877                 var endTime = new Date(arr[1].replace(/-/g, "/")).getTime();\r
878                 if (title == "ackTime") {\r
879                         vm.fmConds.ackTimeStarTime = starTime;\r
880                         vm.fmConds.ackTimeEndTime = endTime;\r
881                         vm.fmConds.ackTimeMode=0;\r
882                 } else if (title == "raisedTime") {\r
883                         vm.fmConds.alarmRaisedStartTime = starTime;\r
884                         vm.fmConds.alarmRaisedEndTime = endTime;\r
885                         vm.fmConds.alarmRaisedTimeMode=0;\r
886                 } else if (title == "clearTime") {\r
887                         vm.fmConds.clearedTimeStartTime = starTime;\r
888                         vm.fmConds.clearedTimeEndTime = endTime;\r
889                         vm.fmConds.clearedTimeMode=0;\r
890                 }\r
891         }\r
892 }\r
893 \r
894 /*\r
895 @param type 1 day 2 week  3 month  4 year\r
896  */\r
897 function reduceDate(date, val, type) {\r
898 \r
899         var d = new Date(date);\r
900         if (type == 'day') {\r
901                 d.setDate(d.getDate() - val);\r
902         } else if (type == 'week') {\r
903                 d.setDate(d.getDate() - val * 7);\r
904         } else if (type == 'month') {\r
905                 d.setMonth(d.getMonth() - val);\r
906         } else if (type == 'year') {\r
907                 d.setFullYear(d.getFullYear() - val);\r
908         }\r
909         var month = d.getMonth() + 1;\r
910         var day = d.getDate();\r
911         if (month < 10) {\r
912                 month = "0" + month;\r
913         }\r
914         if (day < 10) {\r
915                 day = "0" + day;\r
916         }\r
917         var val = d.getFullYear() + "-" + month + "-" + day;\r
918         return val;\r
919 }\r
920 \r
921 alarmsUtil.condSave = function (cond, saveUrl, name) {\r
922 \r
923         var conds = [];\r
924         if (cond.severity != null && cond.severity != "undefined" && cond.severity.length > 0) {\r
925                 var severity = '{ "type": "Severity", "data": [{"severity": "' + cond.severity + '"}]}'; //级别\r
926                 var severityObj = window.JSON.parse(severity)\r
927                         conds.push(severityObj);\r
928         }\r
929         if (cond.ackState != null && cond.ackState != "undefined") {\r
930                 var ackState = '{ "type": "AckState", "data": [{"ackState": "' + cond.ackState + '"}]}'; //级别\r
931                 var ackStateObj = window.JSON.parse(ackState)\r
932                         conds.push(ackStateObj);\r
933         }\r
934         if (cond.filterState != null && cond.filterState != "undefined") {\r
935                 var filterState = '{ "type": "FilterState", "data": [{"filterState": "' + cond.filterState + '"}]}'; //级别\r
936                 var filterStateObj = window.JSON.parse(filterState)\r
937                         conds.push(filterStateObj);\r
938         }\r
939 \r
940         if (cond.ackTimeStarTime != null && cond.ackTimeStarTime != "undefined") {\r
941                 var ackTime = '{ "type": "AckTime", "data": [{"mode":"0","start":"' + cond.ackTimeStarTime + '","end":"' + cond.ackTimeEndTime + '" }]}'; //级别\r
942                 var ackTimeObj = window.JSON.parse(ackTime)\r
943                         conds.push(ackTimeObj);\r
944         }\r
945         if (cond.alarmRaisedStartTime != null && cond.alarmRaisedStartTime != "undefined") {\r
946                 var alarmRaisedTime = '{ "type": "RaisedTime", "data": [{"mode":"0","start":"' + cond.alarmRaisedStartTime + '","end":"' + cond.alarmRaisedEndTime + '" }]}'; //级别\r
947                 var alarmRaisedTimeObj = window.JSON.parse(alarmRaisedTime)\r
948                         conds.push(alarmRaisedTimeObj);\r
949         }\r
950 \r
951         if (cond.clearedTimeStarTime != null && cond.clearedTimeStarTime != "undefined") {\r
952                 var clearedTime = '{ "type": "ClearedTime", "data": [{"mode":"0","start":"' + cond.clearedTimeStarTime + '","end":"' + cond.clearedTimeEndime + '" }]}'; //级别\r
953                 var severityObj = window.JSON.parse(clearedTime)\r
954                         conds.push(severityObj);\r
955         }\r
956         var resJsonObj = AlarmConds.parseActiveConds2JSon(conds);\r
957         resJsonObj.rule.name = name;\r
958         resJsonObj.rule.ruleType = vm.ruleType;\r
959         var resStr = window.JSON.stringify(resJsonObj);\r
960         var dataSource = "isc_AosRestDataSource_1";\r
961         var operationType = "add";\r
962         var data1 = {\r
963                 dataSource : dataSource,\r
964                 operationType : operationType,\r
965                 data : resJsonObj,\r
966                 oldValues : null\r
967         };\r
968         $.ajax({\r
969                 dataType : "json",\r
970                 type : "POST",\r
971                 contentType : 'application/json; charset=utf-8',\r
972                 url : saveUrl,\r
973                 data : JSON.stringify(data1),\r
974                 async : false,\r
975                 success : function (msg) {\r
976                         $('#saveModalCancle').trigger("click");\r
977                 }\r
978         });\r
979 \r
980 }\r
981 \r
982 Array.prototype.contains = function (item) {\r
983         return RegExp("(^|,)" + item.toString() + "($|,)").test(this);\r
984 };\r
985 \r
986 /*\r
987 @param  alarmsType  1当前告警  2历史告警\r
988 @param  condRuleId  查询条件的RuleId\r
989  */\r
990 alarmsUtil.queryByParma = function (alarmsType, condRuleId) {\r
991 \r
992         //1.判断是当前告警还是历史告警。\r
993 \r
994         var sourceUrl;\r
995         if (alarmsType == 1) { //当前告警\r
996                 sourceUrl = '/web/rest/web/fm/curqueryview?' + 'data={"ruleType":1,"ruleSort":1}&isc_flag=smartClient&_operationType=fetch&_startRow=0&_endRow=75&_textMatchStyle=exact&_componentId=condList&_dataSource=isc_RestDataSource_7&isc_metaDataPrefix=_&isc_dataFormat=json';\r
997                 vm.ruleType = 1;\r
998                 vm.$queryAlarmsInfoUrl = "/ngict/rest/fm/curalarms";\r
999                 vm.curalarmsType = "curalarms";\r
1000                 vm.showClear = true; //清除按钮\r
1001 \r
1002         } else if(alarmsType == 2){ //历史告警\r
1003 \r
1004                 sourceUrl = '/web/rest/web/fm/curqueryview?' + 'data={"ruleType":2,"ruleSort":1}&isc_flag=smartClient&_operationType=fetch&_startRow=0&_endRow=75&_textMatchStyle=exact&_componentId=condList&_dataSource=isc_RestDataSource_7&isc_metaDataPrefix=_&isc_dataFormat=json';\r
1005                 vm.ruleType = 2;\r
1006                 vm.$queryAlarmsInfoUrl = "/ngict/rest/fm/hisalarms";\r
1007                 vm.hisalarmsType = "hisalarms";\r
1008                 vm.showClear = false; //清除按钮\r
1009         }else if(alarmsType == 3){ //通知\r
1010                 sourceUrl = '/web/rest/web/fm/curqueryview?' + 'data={"ruleType":2,"ruleSort":1}&isc_flag=smartClient&_operationType=fetch&_startRow=0&_endRow=75&_textMatchStyle=exact&_componentId=condList&_dataSource=isc_RestDataSource_7&isc_metaDataPrefix=_&isc_dataFormat=json';\r
1011                 vm.ruleType = 3;\r
1012                 vm.$queryAlarmsInfoUrl = "/ngict/rest/fm/notify";\r
1013                 vm.notificationType = "notification";\r
1014                 vm.showClear = false; //清除按钮\r
1015         }\r
1016 \r
1017         //如果没传condRuleId 直接返回\r
1018         if (condRuleId == null || condRuleId == "undefined") {\r
1019                 return;\r
1020         }\r
1021 \r
1022         //2.取出告警规则的数据。\r
1023 \r
1024         $.ajax({\r
1025                 type : "get",\r
1026                 data : null,\r
1027                 url : sourceUrl,\r
1028                 async : false,\r
1029                 success : function (msg) {\r
1030                         //1.遍历返回的条件数组确定是哪一个rule规则。\r
1031                         var ruleCondArr = msg.response.data;\r
1032                         var xmlData = "";\r
1033                         for (var i = 0; i < ruleCondArr.length; i++) {\r
1034                                 if (ruleCondArr[i].ruleId == condRuleId) { //condRuleId\r
1035                                         xmlData = "<xml>" + ruleCondArr[i].ruleData + "</xml>" //在jQuery裡,如果要直接将字串转成XML物件,记得前后方要加上<xml>及</xml>,才会被当成XML处理;\r
1036                                                 break;\r
1037                                 }\r
1038                         };\r
1039 \r
1040                         //3.解析数据的xml联动页面的组件。\r
1041                         $(xmlData).find("CompoundCond").each(function () {\r
1042                                 //1.级别\r
1043                                 for (var i = 0; i < vm.severityTypes.length; i++) {\r
1044                                         vm.severityTypes[i].value = false;\r
1045                                 }\r
1046                                 if ($(this).find("PerceivedSeverity").attr('value') != null && $(this).find("PerceivedSeverity ").attr('value') != 'undefined') {\r
1047                                         var perceivedSeverityArr = $(this).find("PerceivedSeverity ").attr('value').split(',');\r
1048                                         for (var i = 0; i < perceivedSeverityArr.length; i++) {\r
1049                                                 if (perceivedSeverityArr.contains(vm.severityTypes[i].id)) {\r
1050                                                         vm.severityTypes[i].value = true;\r
1051                                                 }\r
1052                                         };\r
1053                                 }\r
1054 \r
1055                                 //2.确认状态\r
1056                                 for (var i = 0; i < vm.ackStateTypes.length; i++) {\r
1057                                         vm.ackStateTypes[i].value = false;\r
1058                                 };\r
1059                                 var ackStateV = $(this).find("AckState").attr('value');\r
1060                                 if (ackStateV != null && ackStateV != "undefined") {\r
1061                                         var ackStateArr = ackStateV.split(',');\r
1062                                         for (var i = 0; i < vm.ackStateTypes.length; i++) {\r
1063                                                 if (ackStateArr.contains(vm.ackStateTypes[i].id)) {\r
1064                                                         vm.ackStateTypes[i].value = true;\r
1065                                                 }\r
1066                                         };\r
1067                                 }\r
1068 \r
1069                                 //3.可见性\r
1070                                 if(vm.ruleType === 1){\r
1071                                         for (var i = 0; i < vm.filterStateTypes.length; i++) {\r
1072                                                         vm.filterStateTypes[i].value = false;\r
1073                                                 };\r
1074                                         var filterStateV = $(this).find("FilterState").attr('value')\r
1075                                                 if (filterStateV != null && filterStateV != "undefined") {\r
1076                                                         var filterStateArr = filterStateV.split(',');\r
1077                                                         for (var i = 0; i < vm.filterStateTypes.length; i++) {\r
1078                                                                 if (filterStateArr.contains(vm.filterStateTypes[i].id)) {\r
1079                                                                         vm.filterStateTypes[i].value = true;\r
1080                                                                 }\r
1081                                                         };\r
1082                                                 }\r
1083                                 }\r
1084                                         //4.确认时间\r
1085 \r
1086                                 var dataRangeAck = $('input[dtitle="ackTime"]'); //日历组件\r
1087                                 vm.fmConds.ackTimeStarTime = null;\r
1088                                 vm.fmConds.ackTimeEndTime = null;\r
1089                                 dataRangeAck.val('');\r
1090                                 var ackTimeStartMs = $(this).find("AckTime").attr('start');\r
1091                                 var ackTimeEndMs = $(this).find("AckTime").attr('end');\r
1092                                 if (ackTimeStartMs != null && ackTimeStartMs != "undefined" && ackTimeEndMs != null && ackTimeEndMs != "undefined") {\r
1093                                         vm.fmConds.ackTimeStarTime = ackTimeStartMs; //确认时间\r
1094                                         vm.fmConds.ackTimeEndTime = ackTimeEndMs;\r
1095                                         var ackTimeStarTime = new Date(parseInt(ackTimeStartMs)).format('yyyy-MM-dd');\r
1096                                         var ackTimeEndTime = new Date(parseInt(ackTimeEndMs)).format('yyyy-MM-dd');\r
1097                                         dataRangeAck.val(ackTimeStarTime + ' - ' + ackTimeEndTime);\r
1098                                 }\r
1099 \r
1100                                 //5.发生时间\r
1101                                 vm.fmConds.alarmRaisedStartTime = null;\r
1102                                 vm.fmConds.alarmRaisedEndTime = null;\r
1103                                 var dataRangeRaised = $('input[dtitle="raisedTime"]'); //日历组件\r
1104                                 dataRangeRaised.val('');\r
1105                                 var raisedTimeStartMs = $(this).find("RaisedTime").attr('start');\r
1106                                 var raisedTimeEndMs = $(this).find("RaisedTime").attr('end');\r
1107                                 if (raisedTimeStartMs != null && raisedTimeStartMs != "undefined" && raisedTimeEndMs != null && raisedTimeEndMs != "undefined") {\r
1108                                         vm.fmConds.alarmRaisedStartTime = raisedTimeStartMs; //发生时间\r
1109                                         vm.fmConds.alarmRaisedEndTime = raisedTimeEndMs;\r
1110                                         var raisedTimeStart = new Date(parseInt(raisedTimeStartMs)).format('yyyy-MM-dd');\r
1111                                         var raisedTimeEnd = new Date(parseInt(raisedTimeEndMs)).format('yyyy-MM-dd');\r
1112                                         dataRangeRaised.val(raisedTimeStart + ' - ' + raisedTimeEnd);\r
1113                                 }\r
1114 \r
1115                                 //6.清除时间\r
1116 \r
1117 \r
1118                                 //7.告警码\r
1119 \r
1120                                 vm.fmConds.probableCause = null;\r
1121                                 var probableCauseArr = $(this).find("ProbableCause").attr('value');\r
1122                                 if (probableCauseArr != null && probableCauseArr != "undefined") {\r
1123                                         for (var i = 0; i < probableCauseArr.length; i++) {\r
1124                                                 vm.fmConds.probableCause = probableCauseArr;\r
1125                                                 // 联动\r
1126                                         };\r
1127                                 }\r
1128 \r
1129                                 //8.告警位置\r
1130                                 vm.fmConds.probableCause = null;\r
1131                                 var newPositionCondArr = $(this).find("NewPositionCond").attr('value');\r
1132                                 if (newPositionCondArr != null && newPositionCondArr != "undefined")\r
1133                                         for (var i = 0; i < newPositionCondArr.length; i++) {\r
1134                                                 // 联动\r
1135                                         };\r
1136 \r
1137                                 //9.告警类型\r
1138                                 vm.fmConds.alarmType = null;\r
1139                                 var alarmTypeArr = $(this).find("AlarmType").attr('value');\r
1140                                 if (alarmTypeArr != null && alarmTypeArr != "undefined") {\r
1141                                         for (var i = 0; i < alarmTypeArr.length; i++) {\r
1142                                                 vm.fmConds.alarmType = alarmTypeArr;\r
1143                                         };\r
1144                                 }\r
1145                         });\r
1146                 }\r
1147         });\r
1148 }\r
1149 \r
1150 \r
1151 /*\r
1152  获取系统类型中的告警码数量\r
1153 */\r
1154 alarmsUtil.getProbableCauseCountBySystemType=function(systemType){\r
1155         \r
1156         //"/ngict/rest/fm/probableCause?request={"systemTypes":[6,12]}"\r
1157         var getData={};\r
1158         var request={};\r
1159         request.systemTypes=systemType;\r
1160         getData.request = JSON.stringify(request);\r
1161         $.ajax({\r
1162                 type : "get",\r
1163                 data : getData,\r
1164                 url : "/ngict/rest/fm/probableCause",\r
1165                 async : true,\r
1166                 success : function (msg) {\r
1167                         vm.alarmCodeSelectedCount+=msg.length;\r
1168                 }});\r
1169 }