diff --git a/hg-monitor-web-base/src/main/resources/static/src/controller/commonDetail.js b/hg-monitor-web-base/src/main/resources/static/src/controller/commonDetail.js index b9ad2a8..6b99079 100644 --- a/hg-monitor-web-base/src/main/resources/static/src/controller/commonDetail.js +++ b/hg-monitor-web-base/src/main/resources/static/src/controller/commonDetail.js @@ -2414,7 +2414,8 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele templet: '<div><span data-biz-detail-status="{{ d.id }}" class="layui-table-link">告警消除</span></div>' } ]], - done: function () { + done: function (res) { + let alarmData=res.data; $( '[lay-id="' + tableId + '"] [data-warn-zbmc]').unbind('click').on('click', function () { var name = $(this).data("name"); var params = { @@ -2430,32 +2431,96 @@ layui.define(['laytpl', 'admin', 'form', 'table', 'echarts', 'sessions', 'xmSele $('[lay-id="' + tableId + '"] [data-biz-detail-status]').click(function (e) { var id = $(e.target).data('biz-detail-status'); - layer.prompt({id:"detail_clear_alarm_id", title: '告警消除', formType: 2}, function (text, index) { - admin.req({ - url: common.domainName + '/api-web/home/alarm/clear' - , type: "post" - , data: { - ids: id.toString(), - reason: text, - access_token: obj.sessions.getToken().access_token, - noticeFlag: $('input[name="noticeFlag"]:checked').val() - } - , done: function (res) { - //如果消除成功,关闭弹出框然后重新加载页面 - if (res.success) { - layer.close(index); - layer.msg('告警已消除!', {icon: 1, time: 2000}); - alarmlist.reload() - } else { - layer.msg('告警消除失败,请与管理员联系!', {icon: 7, time: 3000}); + let alarmObj=''; + alarmData.map(item=>{ + if(item.id==id){ + alarmObj=item; + } + }) + //获取知识库开启状态 lsq 2022-04-15 + admin.req({ + url: common.domainName + '/api-user/sysConf/getByCode', + type: "get", + data: { + code: 'knFlag' + }, + done: function (data) { + let knFlag = data.object.value; + if (knFlag == '1') { + //开启闭环 + // Start 将对象转成key=value&key1=value1 LSQ 2022/03/22 + let urlParams = ''; + let params = alarmObj; + for (let key in params) { + if (params[key] || params[key] == 0) { + let str = params[key]; + if (typeof str == 'string') { + str = str.replace(/%/g, '%25'); + } + urlParams += key + '=' + encodeURIComponent(str) + '&' + } } + urlParams = urlParams.substr(0, urlParams.length - 1) + '&alarmTypeCustom=active'; + //判断告警是否已经存入消除草稿 lsq 2022-04-14 + admin.req({ + url: common.domainName + '/api-web/bAlarmManage/manageInto', + type: "get", + data: { + alarmId: params.id + }, + done: function (data) { + if (data.data && data.data.length > 0) { + //已存入了草稿 + layer.msg('告警消除已存入草稿中了!', {icon: 2, time: 2000}); + } else { + layer.open({ + title: ['告警消除', 'font-size:18px;'], + type: 2, + area: ['80%', '90%'], + shadeClose: true,//开启遮罩层 + id: 'alarms_clear_id', + // content: laytpl(res.body).render(JSON.stringify(params)), + content: ['/vue3/index.html#/alarmsClearEditor?' + urlParams, 'no'], + cancel: function () { + clearTimeout(); + } + }); + } + } + }) + + } else { + //不开启闭环 + //获取以往告警消除意见 + layer.prompt({id:"detail_clear_alarm_id", title: '告警消除', formType: 2}, function (text, index) { + admin.req({ + url: common.domainName + '/api-web/home/alarm/clear' + , type: "post" + , data: { + ids: id.toString(), + reason: text, + access_token: obj.sessions.getToken().access_token, + noticeFlag: $('input[name="noticeFlag"]:checked').val() + } + , done: function (res) { + //如果消除成功,关闭弹出框然后重新加载页面 + if (res.success) { + layer.close(index); + layer.msg('告警已消除!', {icon: 1, time: 2000}); + alarmlist.reload() + } else { + layer.msg('告警消除失败,请与管理员联系!', {icon: 7, time: 3000}); + } + } + }); + }); + $("#detail_clear_alarm_id").find('textarea.layui-layer-input').attr("placeholder","消除意见(必填)"); + $("#detail_clear_alarm_id").append('<div style="padding-top: 15px;"><span>是否通知:</span> ' + + '<input type="radio" name="noticeFlag" value="true" title="是"> 是' + + '<input type="radio" name="noticeFlag" value="false" title="否" checked="" style="margin-left: 20px;"> 否</div> '); } - }); - }); - $("#detail_clear_alarm_id").find('textarea.layui-layer-input').attr("placeholder","消除意见(必填)"); - $("#detail_clear_alarm_id").append('<div style="padding-top: 15px;"><span>是否通知:</span> ' + - '<input type="radio" name="noticeFlag" value="true" title="是"> 是' + - '<input type="radio" name="noticeFlag" value="false" title="否" checked="" style="margin-left: 20px;"> 否</div> '); + } + }) }); } }); diff --git a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/alarmsClearEditor/index.html b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/alarmsClearEditor/index.html index 824410c..aef3a2f 100644 --- a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/alarmsClearEditor/index.html +++ b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/alarmsClearEditor/index.html @@ -137,9 +137,11 @@ v-model="opinion" type="textarea" :rows="5" - placeholder="此处输入审核意见" + maxLength="200" + show-word-limit + placeholder="此处输入审核意见(最大200个字符)" /> - <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)"> + <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"> {{opinion}} </div> </div> diff --git a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/alarmsClearEditor/index.js b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/alarmsClearEditor/index.js index 449c619..9537fcc 100644 --- a/hg-monitor-web-base/src/main/resources/static/vue3/src/views/alarmsClearEditor/index.js +++ b/hg-monitor-web-base/src/main/resources/static/vue3/src/views/alarmsClearEditor/index.js @@ -34,6 +34,7 @@ export default { }, setup(props, {attrs, slots, emit}){ const {proxy} = Vue.getCurrentInstance(); + let test=Vue.ref(''); let isClear=Vue.ref(false); let detail=Vue.ref(''); @@ -48,7 +49,6 @@ export default { let loginName=Vue.ref(''); let options=Vue.ref([{value:'001',name:'admin'},{value:'002',name:'root'}]) let timer=Vue.ref(null); - //富文本带标签内容 let change=(val)=> { detail.value=val; @@ -76,7 +76,7 @@ export default { proxy.$global.showMsg("请输入审核意见", 'warning'); return; } - if((val==0 || val==1 ) && repositoryInto.value && !pcontent){ + if((val==0 || val==1 ) && repositoryInto.value && (!pcontent || !detailText.value)){ proxy.$global.showMsg("请输入处理方案", 'warning'); return; } @@ -110,7 +110,7 @@ export default { alarmType:alarmInfo.value.alarmTypeCustom,//告警类型,active活动告警,his历史告警 managetime:dateTime.value, managename:loginName.value, - alarmHisId:alarmInfo.value.alarmTypeCustom=='active' || props.status==0?'':alarmInfo.value.primaryKey, + alarmHisId:alarmInfo.value.alarmTypeCustom=='active' || props.status==0?handleInfoObj.value.alarmHisId:alarmInfo.value.primaryKey, } if(repositoryId.value){ params.repositoryId=repositoryId.value;//引用知识库id