Authored by 鲁尚清

首页告警消除调整,【告警闭环】告警消除时建议将处理意见为必填项

@@ -2414,7 +2414,8 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele @@ -2414,7 +2414,8 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele
2414 templet: '<div><span data-biz-detail-status="{{ d.id }}" class="layui-table-link">告警消除</span></div>' 2414 templet: '<div><span data-biz-detail-status="{{ d.id }}" class="layui-table-link">告警消除</span></div>'
2415 } 2415 }
2416 ]], 2416 ]],
2417 - done: function () { 2417 + done: function (res) {
  2418 + let alarmData=res.data;
2418 $( '[lay-id="' + tableId + '"] [data-warn-zbmc]').unbind('click').on('click', function () { 2419 $( '[lay-id="' + tableId + '"] [data-warn-zbmc]').unbind('click').on('click', function () {
2419 var name = $(this).data("name"); 2420 var name = $(this).data("name");
2420 var params = { 2421 var params = {
@@ -2430,32 +2431,96 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele @@ -2430,32 +2431,96 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele
2430 2431
2431 $('[lay-id="' + tableId + '"] [data-biz-detail-status]').click(function (e) { 2432 $('[lay-id="' + tableId + '"] [data-biz-detail-status]').click(function (e) {
2432 var id = $(e.target).data('biz-detail-status'); 2433 var id = $(e.target).data('biz-detail-status');
2433 - layer.prompt({id:"detail_clear_alarm_id", title: '告警消除', formType: 2}, function (text, index) {  
2434 - admin.req({  
2435 - url: common.domainName + '/api-web/home/alarm/clear'  
2436 - , type: "post"  
2437 - , data: {  
2438 - ids: id.toString(),  
2439 - reason: text,  
2440 - access_token: obj.sessions.getToken().access_token,  
2441 - noticeFlag: $('input[name="noticeFlag"]:checked').val()  
2442 - }  
2443 - , done: function (res) {  
2444 - //如果消除成功,关闭弹出框然后重新加载页面  
2445 - if (res.success) {  
2446 - layer.close(index);  
2447 - layer.msg('告警已消除!', {icon: 1, time: 2000});  
2448 - alarmlist.reload()  
2449 - } else {  
2450 - layer.msg('告警消除失败,请与管理员联系!', {icon: 7, time: 3000}); 2434 + let alarmObj='';
  2435 + alarmData.map(item=>{
  2436 + if(item.id==id){
  2437 + alarmObj=item;
  2438 + }
  2439 + })
  2440 + //获取知识库开启状态 lsq 2022-04-15
  2441 + admin.req({
  2442 + url: common.domainName + '/api-user/sysConf/getByCode',
  2443 + type: "get",
  2444 + data: {
  2445 + code: 'knFlag'
  2446 + },
  2447 + done: function (data) {
  2448 + let knFlag = data.object.value;
  2449 + if (knFlag == '1') {
  2450 + //开启闭环
  2451 + // Start 将对象转成key=value&key1=value1 LSQ 2022/03/22
  2452 + let urlParams = '';
  2453 + let params = alarmObj;
  2454 + for (let key in params) {
  2455 + if (params[key] || params[key] == 0) {
  2456 + let str = params[key];
  2457 + if (typeof str == 'string') {
  2458 + str = str.replace(/%/g, '%25');
  2459 + }
  2460 + urlParams += key + '=' + encodeURIComponent(str) + '&'
  2461 + }
2451 } 2462 }
  2463 + urlParams = urlParams.substr(0, urlParams.length - 1) + '&alarmTypeCustom=active';
  2464 + //判断告警是否已经存入消除草稿 lsq 2022-04-14
  2465 + admin.req({
  2466 + url: common.domainName + '/api-web/bAlarmManage/manageInto',
  2467 + type: "get",
  2468 + data: {
  2469 + alarmId: params.id
  2470 + },
  2471 + done: function (data) {
  2472 + if (data.data && data.data.length > 0) {
  2473 + //已存入了草稿
  2474 + layer.msg('告警消除已存入草稿中了!', {icon: 2, time: 2000});
  2475 + } else {
  2476 + layer.open({
  2477 + title: ['告警消除', 'font-size:18px;'],
  2478 + type: 2,
  2479 + area: ['80%', '90%'],
  2480 + shadeClose: true,//开启遮罩层
  2481 + id: 'alarms_clear_id',
  2482 + // content: laytpl(res.body).render(JSON.stringify(params)),
  2483 + content: ['/vue3/index.html#/alarmsClearEditor?' + urlParams, 'no'],
  2484 + cancel: function () {
  2485 + clearTimeout();
  2486 + }
  2487 + });
  2488 + }
  2489 + }
  2490 + })
  2491 +
  2492 + } else {
  2493 + //不开启闭环
  2494 + //获取以往告警消除意见
  2495 + layer.prompt({id:"detail_clear_alarm_id", title: '告警消除', formType: 2}, function (text, index) {
  2496 + admin.req({
  2497 + url: common.domainName + '/api-web/home/alarm/clear'
  2498 + , type: "post"
  2499 + , data: {
  2500 + ids: id.toString(),
  2501 + reason: text,
  2502 + access_token: obj.sessions.getToken().access_token,
  2503 + noticeFlag: $('input[name="noticeFlag"]:checked').val()
  2504 + }
  2505 + , done: function (res) {
  2506 + //如果消除成功,关闭弹出框然后重新加载页面
  2507 + if (res.success) {
  2508 + layer.close(index);
  2509 + layer.msg('告警已消除!', {icon: 1, time: 2000});
  2510 + alarmlist.reload()
  2511 + } else {
  2512 + layer.msg('告警消除失败,请与管理员联系!', {icon: 7, time: 3000});
  2513 + }
  2514 + }
  2515 + });
  2516 + });
  2517 + $("#detail_clear_alarm_id").find('textarea.layui-layer-input').attr("placeholder","消除意见(必填)");
  2518 + $("#detail_clear_alarm_id").append('<div style="padding-top: 15px;"><span>是否通知:</span> ' +
  2519 + '<input type="radio" name="noticeFlag" value="true" title="是">&nbsp;是' +
  2520 + '<input type="radio" name="noticeFlag" value="false" title="否" checked="" style="margin-left: 20px;">&nbsp;否</div> ');
2452 } 2521 }
2453 - });  
2454 - });  
2455 - $("#detail_clear_alarm_id").find('textarea.layui-layer-input').attr("placeholder","消除意见(必填)");  
2456 - $("#detail_clear_alarm_id").append('<div style="padding-top: 15px;"><span>是否通知:</span> ' +  
2457 - '<input type="radio" name="noticeFlag" value="true" title="是">&nbsp;是' +  
2458 - '<input type="radio" name="noticeFlag" value="false" title="否" checked="" style="margin-left: 20px;">&nbsp;否</div> '); 2522 + }
  2523 + })
2459 }); 2524 });
2460 } 2525 }
2461 }); 2526 });
@@ -137,9 +137,11 @@ @@ -137,9 +137,11 @@
137 v-model="opinion" 137 v-model="opinion"
138 type="textarea" 138 type="textarea"
139 :rows="5" 139 :rows="5"
140 - placeholder="此处输入审核意见" 140 + maxLength="200"
  141 + show-word-limit
  142 + placeholder="此处输入审核意见(最大200个字符)"
141 /> 143 />
142 - <div class="opinion-style" v-if="((status==2 || (status==3 && approverName==loginName) || (status==1 && handleInfoObj.managename==loginName)) && handleInfoObj.managename!=approverName) || (status==2 && handleInfoObj.managename==approverName)"> 144 + <div class="opinion-style" v-if="((status==2 || (status==3 && approverName==loginName) || (status==1 && handleInfoObj.managename==loginName)) && handleInfoObj.managename!=approverName) || (status==2 && handleInfoObj.managename==approverName) || status==3">
143 {{opinion}} 145 {{opinion}}
144 </div> 146 </div>
145 </div> 147 </div>
@@ -76,7 +76,7 @@ export default { @@ -76,7 +76,7 @@ export default {
76 proxy.$global.showMsg("请输入审核意见", 'warning'); 76 proxy.$global.showMsg("请输入审核意见", 'warning');
77 return; 77 return;
78 } 78 }
79 - if((val==0 || val==1 ) && repositoryInto.value && !pcontent){ 79 + if((val==0 || val==1 ) && repositoryInto.value && (!pcontent || !detailText.value)){
80 proxy.$global.showMsg("请输入处理方案", 'warning'); 80 proxy.$global.showMsg("请输入处理方案", 'warning');
81 return; 81 return;
82 } 82 }