Authored by 王涛

Merge branch 'master-v32-xwx' into 'master'

告警策略通知合并策略代码迁移



See merge request !619
@@ -30,6 +30,24 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun @@ -30,6 +30,24 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun
30 ,range: true 30 ,range: true
31 }); 31 });
32 var resType = localStorage.getItem("currentResType"); 32 var resType = localStorage.getItem("currentResType");
  33 +
  34 + // 获取合并通知开关是否开启
  35 + getNoticeMergeFlag();
  36 + function getNoticeMergeFlag(){
  37 + admin.req({
  38 + url: common.domainName + '/api-web/manage/ddic/findSucDdics/noticeMergeFlag'
  39 + , method: 'POST'
  40 + , async: false
  41 + , success: function (res) {
  42 + $.each(res.data, function (i, v) {
  43 + if(v.ddicCode == 'on'){
  44 + $('#noticeMergeTab').show();
  45 + }
  46 + });
  47 + }
  48 + })
  49 + }
  50 +
33 //编辑 51 //编辑
34 if(data && data.id){ 52 if(data && data.id){
35 admin.req({ 53 admin.req({
@@ -48,6 +66,14 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun @@ -48,6 +66,14 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun
48 $("#alarmPolicyType").val(res.object.policyType); 66 $("#alarmPolicyType").val(res.object.policyType);
49 } 67 }
50 }); 68 });
  69 + // 获取通知合并策略的表达式
  70 + admin.req({
  71 + url:domainName + '/api-web/policyMerge/get?noticeMergePolicyId='+data.id
  72 + ,done:function (res){
  73 + $("#noticeMergeFlagExpr").val(res.data[0].noticeMergeExpr);
  74 + }
  75 + });
  76 +
51 }else{ 77 }else{
52 $("#seriousTimes").val('00:00:00 - 23:59:59'); 78 $("#seriousTimes").val('00:00:00 - 23:59:59');
53 $("#importantTimes").val('00:00:00 - 23:59:59'); 79 $("#importantTimes").val('00:00:00 - 23:59:59');
@@ -108,7 +134,7 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun @@ -108,7 +134,7 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun
108 var arry = [ "base", "cpu", "mem"]; 134 var arry = [ "base", "cpu", "mem"];
109 return true; 135 return true;
110 } 136 }
111 - }); 137 + });
112 }); 138 });
113 139
114 //增加一行策略表达式输入框 140 //增加一行策略表达式输入框
@@ -179,7 +205,85 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun @@ -179,7 +205,85 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun
179 data.seriousTimes = $("#seriousTimes").val(); 205 data.seriousTimes = $("#seriousTimes").val();
180 data.importantTimes = $("#importantTimes").val(); 206 data.importantTimes = $("#importantTimes").val();
181 data.commonlyTimes = $("#commonlyTimes").val(); 207 data.commonlyTimes = $("#commonlyTimes").val();
  208 + var that = this;
  209 +
  210 + if(!data.kpiId){
  211 + layer.msg("请先选择指标!", {
  212 + icon: 7
  213 + , time: 3000
  214 + });
  215 + return false;
  216 + }
  217 +
  218 + if(!data.kpiId || data.kpiId == ''){
  219 + layer.msg("请先选择指标!", {
  220 + icon: 7
  221 + , time: 3000
  222 + });
  223 + return false;
  224 + }
  225 +
  226 + if(!data.alarmContentExpr || data.alarmContentExpr == ''){
  227 + layer.msg("请先填写告警内容描述表达式!", {
  228 + icon: 7
  229 + , time: 3000
  230 + });
  231 + return false;
  232 + }
  233 +
  234 + if(!data.alarmContentExpr || data.alarmContentExpr == ''){
  235 + layer.msg("请先填写告警内容描述表达式!", {
  236 + icon: 7
  237 + , time: 3000
  238 + });
  239 + return false;
  240 + }
182 241
  242 + var importantPolicy = data.seriousPolicy;
  243 + var importantExpr = data.importantPolicy;
  244 + var commonlyPolicy = data.commonlyPolicy;
  245 + if((!importantPolicy || importantPolicy == '') && (!importantExpr || importantExpr == '') && (!commonlyPolicy || commonlyPolicy == '')){
  246 + layer.msg("严重、重要和一般告警的表达式必须有一项不为空!", {
  247 + icon: 7
  248 + , time: 3000
  249 + });
  250 + return false;
  251 + }
  252 +
  253 + if(!data.noticeMergeFlagExpr || data.noticeMergeFlagExpr == ''){
  254 + layer.msg("请先填写通知合并策略描述表达式!", {
  255 + icon: 7
  256 + , time: 3000
  257 + });
  258 + return false;
  259 + }
  260 +
  261 +
  262 + /**
  263 + * 保存通知合并策略
  264 + */
  265 + var noticeMergeFlagExpr = $("#noticeMergeFlagExpr").val()
  266 + function saveNoticeMerge(id){
  267 + var noticeMergeData = {
  268 + "mergePolicyId": id,
  269 + "mergePolicyName": data.alarmPolicyName,
  270 + "mergePolicyDesc": data.alarmPolicyName,
  271 + "noticeMergeExpr": noticeMergeFlagExpr,
  272 + "policyType": data.policyType,
  273 + "kpiId": data.kpiId
  274 + }
  275 + admin.req({
  276 + url : domainName + '/api-web/policyMerge/save?access_token='+accessToken
  277 + ,data:JSON.stringify(noticeMergeData)
  278 + ,type:'post'
  279 + ,contentType: "application/json; charset=utf-8"
  280 + ,done:function (res){
  281 + if(!res.success){
  282 + layer.msg(res.msg ? res.msg : '通知合并策略保存失败', { offset: '15px' , icon: 7 , time: 1000 });
  283 + }
  284 + }
  285 + });
  286 + }
183 charToExpr(data, 'alarmContentExpr'); 287 charToExpr(data, 'alarmContentExpr');
184 charToExpr(data, 'cleanPolicy'); 288 charToExpr(data, 'cleanPolicy');
185 charToExpr(data, 'commonlyExpr'); 289 charToExpr(data, 'commonlyExpr');
@@ -187,6 +291,7 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun @@ -187,6 +291,7 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun
187 charToExpr(data, 'seriousExpr'); 291 charToExpr(data, 'seriousExpr');
188 292
189 form.on('submit(add-alarmpolicy-form)',function () { 293 form.on('submit(add-alarmpolicy-form)',function () {
  294 + delete data.noticeMergeFlagExpr;
190 admin.req({ 295 admin.req({
191 url : domainName + '/api-web/alarmPolicy/save?access_token='+accessToken 296 url : domainName + '/api-web/alarmPolicy/save?access_token='+accessToken
192 ,data:JSON.stringify(data) 297 ,data:JSON.stringify(data)
@@ -194,6 +299,9 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun @@ -194,6 +299,9 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun
194 ,contentType: "application/json; charset=utf-8" 299 ,contentType: "application/json; charset=utf-8"
195 ,done:function (res){ 300 ,done:function (res){
196 if(res.success){ 301 if(res.success){
  302 + // 保存通知合并策略
  303 + saveNoticeMerge(res.str);
  304 +
197 localStorage.setItem("detailPageOfcustomPolicyId",res.str) 305 localStorage.setItem("detailPageOfcustomPolicyId",res.str)
198 layer.msg(res.msg, { offset: '15px' , icon: 1 , time: 1000 },function (){ 306 layer.msg(res.msg, { offset: '15px' , icon: 1 , time: 1000 },function (){
199 localStorage.removeItem("currentResType"); 307 localStorage.removeItem("currentResType");
@@ -263,4 +371,4 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun @@ -263,4 +371,4 @@ layui.define(['form', 'admin', 'laydate', 'common','sessions','reskpilist'], fun
263 $('#add-alarmpolicy-form').find('[name="policyType"]').attr("disabled","disabled"); 371 $('#add-alarmpolicy-form').find('[name="policyType"]').attr("disabled","disabled");
264 } 372 }
265 }); 373 });
266 -});  
  374 +});
@@ -582,6 +582,7 @@ layui.define(['xmSelect', 'md5'], function (exports) { @@ -582,6 +582,7 @@ layui.define(['xmSelect', 'md5'], function (exports) {
582 layer.open(Object.assign({ 582 layer.open(Object.assign({
583 title: [name, 'font-size:18px;'], 583 title: [name, 'font-size:18px;'],
584 type: 1, 584 type: 1,
  585 + id:(new Date()).getTime(),
585 area: area, 586 area: area,
586 resize: false, 587 resize: false,
587 shadeClose: true,//开启遮罩层 588 shadeClose: true,//开启遮罩层
@@ -62,13 +62,13 @@ @@ -62,13 +62,13 @@
62 </fieldset> 62 </fieldset>
63 <div class="layui-tab layui-tab-card"> 63 <div class="layui-tab layui-tab-card">
64 <ul class="layui-tab-title"> 64 <ul class="layui-tab-title">
65 - <li class="layui-this">告警内容</li> 65 + <li class="layui-this"><span style="color:red">*</span>告警内容</li>
66 <li>严重</li> 66 <li>严重</li>
67 <li>重要</li> 67 <li>重要</li>
68 - <li>一般</li> 68 + <li>一般告警</li>
69 <li>过滤</li> 69 <li>过滤</li>
70 <li>消除</li> 70 <li>消除</li>
71 -<!-- <li>告警内容表达式</li>--> 71 + <li id="noticeMergeTab" style="display: none"><span style="color:red">*</span>通知合并策略</li>
72 </ul> 72 </ul>
73 <div class="layui-tab-content"> 73 <div class="layui-tab-content">
74 <div class="layui-tab-item layui-show content-tab-item"> 74 <div class="layui-tab-item layui-show content-tab-item">
@@ -355,50 +355,19 @@ @@ -355,50 +355,19 @@
355 </div> 355 </div>
356 </div> 356 </div>
357 </div> 357 </div>
358 -<!-- <div class="layui-tab-item">-->  
359 -<!-- <div class="content-box-group">-->  
360 -<!-- <div class="box-group-left">告警内容表达式</div>-->  
361 -<!-- <div class="box-group-right">-->  
362 -<!-- <div class="layui-form-item">-->  
363 -<!-- <div class="layui-input-block">-->  
364 -<!-- <input type="radio" name="alarmcotent-policy-type" data-flag="alarmcotent" value="1" title="基础" checked lay-filter="alarm-policy-rule-type">-->  
365 -<!-- <input type="radio" name="alarmcotent-policy-type" data-flag="alarmcotent" value="2" title="正则" lay-filter="alarm-policy-rule-type">-->  
366 -<!-- <input type="radio" name="alarmcotent-policy-type" data-flag="alarmcotent" value="3" title="自定义"lay-filter="alarm-policy-rule-type">-->  
367 -<!-- </div>-->  
368 -<!-- </div>-->  
369 -<!-- <div class="layui-form-item cont-base" id="alarmcotent-policy-box">-->  
370 -<!-- <div class="layui-input-inline smallwith">-->  
371 -<!-- <select class="alarmcotent_condition">-->  
372 -<!-- <option value="0">大于</option>-->  
373 -<!-- <option value="1">小于</option>-->  
374 -<!-- <option value="2">等于</option>-->  
375 -<!-- <option value="3">大于等于</option>-->  
376 -<!-- <option value="4">小于等于</option>-->  
377 -<!-- <option value="5">字符串等于</option>-->  
378 -<!-- <option value="6">字符串包含</option>-->  
379 -<!-- <option value="7">字符串前匹配</option>-->  
380 -<!-- <option value="8">字符串后匹配</option>-->  
381 -<!-- </select>-->  
382 -<!-- </div>-->  
383 -<!-- <div class="layui-input-inline smallwith">-->  
384 -<!-- <input type="tel" autocomplete="off" class="layui-input" flag="alarmcotent_value">-->  
385 -<!-- </div>-->  
386 -<!-- <div class="layui-form-mid layui-word-aux"><i data-id="alarmcotent-policy-box" class="layui-icon oper-icon policy-input-add">&#xe624;</i></div>-->  
387 -<!-- <div class="layui-form-mid layui-word-aux"><i data-id="alarmcotent-policy-box" class="layui-icon oper-icon policy-input-del hide">&#xe67e;</i></div>-->  
388 -<!-- </div>-->  
389 -<!-- <div class="layui-form-item cont-base">-->  
390 -<!-- <div class="layui-input-block">-->  
391 -<!-- <a class="layui-btn layui-btn-sm layui-btn-normal createpolicybtn" data-flag="alarmcotent">生成策略</a>-->  
392 -<!-- </div>-->  
393 -<!-- </div>-->  
394 -<!-- <div class="layui-form-item cont-other">-->  
395 -<!-- <div class="layui-input-block">-->  
396 -<!-- <textarea placeholder="请输入内容" class="layui-textarea" name="alarmContentExpr" id="alarmcotentPolicy"></textarea>-->  
397 -<!-- </div>-->  
398 -<!-- </div>-->  
399 -<!-- </div>-->  
400 -<!-- </div>-->  
401 -<!-- </div>--> 358 + <div class="layui-tab-item content-tab-item">
  359 + <!-- 通知合并策略 -->
  360 + <div class="content-box-group">
  361 + <div class="box-group-left" style="text-align: center">通知合并策略<br/>描述表达式</div>
  362 + <div class="box-group-right">
  363 + <div class="layui-form-item">
  364 + <div class="layui-input-block">
  365 + <textarea placeholder="请输入内容" class="layui-textarea" id="noticeMergeFlagExpr" name="noticeMergeFlagExpr"></textarea>
  366 + </div>
  367 + </div>
  368 + </div>
  369 + </div>
  370 + </div>
402 </div> 371 </div>
403 </div> 372 </div>
404 373
@@ -408,4 +377,4 @@ @@ -408,4 +377,4 @@
408 layui.use('alarmpolicyAdd', function (fn) { 377 layui.use('alarmpolicyAdd', function (fn) {
409 fn({{d}}); 378 fn({{d}});
410 }); 379 });
411 -</script>  
  380 +</script>