Authored by 鲁尚清

告警消除页面联调修改

@@ -38,6 +38,7 @@ @@ -38,6 +38,7 @@
38 .info-item-statistics{ 38 .info-item-statistics{
39 margin:8px 0; 39 margin:8px 0;
40 text-align: left; 40 text-align: left;
  41 + width:100%;
41 } 42 }
42 .info-content{ 43 .info-content{
43 margin-bottom: 5px; 44 margin-bottom: 5px;
@@ -121,7 +122,7 @@ @@ -121,7 +122,7 @@
121 text-align: left; 122 text-align: left;
122 padding-bottom: 10px; 123 padding-bottom: 10px;
123 } 124 }
124 -.update-icon{ 125 +.update-icon,.more-style{
125 cursor: pointer; 126 cursor: pointer;
126 color:#409EFF; 127 color:#409EFF;
127 } 128 }
@@ -27,8 +27,17 @@ @@ -27,8 +27,17 @@
27 <div class="info-content"> 27 <div class="info-content">
28 <div class="info-content-body"> 28 <div class="info-content-body">
29 <div class="content-body-info"> 29 <div class="content-body-info">
30 - <div class="info-item">  
31 - 同类型告警处理过程:{{processingData[0]}} <i class="el-icon-more"></i> 30 + <div class="info-item-statistics">
  31 +<!-- 同类型告警处理过程:{{processingData[0].alarmContent}} <i class="el-icon-more more-style" v-if="processingData.length>1"></i>-->
  32 + <el-collapse v-model="activeName" accordion>
  33 + <el-collapse-item :title="'同类型告警处理过程:'" name="1">
  34 + <div v-for="(item,index) in processingData" :key="index">
  35 + {{index+1}}.{{item.alarmContent}}
  36 + </div>
  37 +
  38 + </el-collapse-item>
  39 +
  40 + </el-collapse>
32 </div> 41 </div>
33 </div> 42 </div>
34 </div> 43 </div>
@@ -13,6 +13,7 @@ export default { @@ -13,6 +13,7 @@ export default {
13 }, 13 },
14 setup(props, {attrs, slots, emit}) { 14 setup(props, {attrs, slots, emit}) {
15 const {proxy} = Vue.getCurrentInstance(); 15 const {proxy} = Vue.getCurrentInstance();
  16 + const activeName = Vue.ref('');
16 //获取统计信息 17 //获取统计信息
17 let statisticsData=Vue.ref(''); 18 let statisticsData=Vue.ref('');
18 let getStatisticsData=()=>{ 19 let getStatisticsData=()=>{
@@ -32,13 +33,6 @@ export default { @@ -32,13 +33,6 @@ export default {
32 proxy.$http.get(`/api-web/bAlarmManage/alarm/course`, {alarmId:props.alarmId}, function (res) { 33 proxy.$http.get(`/api-web/bAlarmManage/alarm/course`, {alarmId:props.alarmId}, function (res) {
33 if (res && res.code == 0) { 34 if (res && res.code == 0) {
34 if(res.data){ 35 if(res.data){
35 - let arr=res.data;  
36 - let processArr=[];  
37 - arr.map(item=>{  
38 - processArr.push({  
39 -  
40 - })  
41 - })  
42 processingData.value=res.data 36 processingData.value=res.data
43 } 37 }
44 }else{ 38 }else{
@@ -57,7 +51,8 @@ export default { @@ -57,7 +51,8 @@ export default {
57 getStatisticsData, 51 getStatisticsData,
58 statisticsData, 52 statisticsData,
59 getProcessing, 53 getProcessing,
60 - processingData 54 + processingData,
  55 + activeName
61 } 56 }
62 } 57 }
63 } 58 }
@@ -48,7 +48,7 @@ @@ -48,7 +48,7 @@
48 <!--新增编辑弹框--> 48 <!--新增编辑弹框-->
49 <cm-dialog :title="dialog.title" :showDialogVisible="dialog.show" @hidedialog="hideDialog" :showFooter="false"> 49 <cm-dialog :title="dialog.title" :showDialogVisible="dialog.show" @hidedialog="hideDialog" :showFooter="false">
50 <template v-slot> 50 <template v-slot>
51 - <alarmsClearEditor :isExamine=true :status="dialog.amStatus" :amId="dialog.amId" /> 51 + <alarmsClearEditor :isExamine="true" @saveback='saveback' :status="dialog.amStatus" :amId="dialog.amId" />
52 </template> 52 </template>
53 </cm-dialog> 53 </cm-dialog>
54 54
@@ -114,7 +114,10 @@ export default { @@ -114,7 +114,10 @@ export default {
114 dialog.value.amId = row.id; 114 dialog.value.amId = row.id;
115 dialog.value.amStatus = row.status; 115 dialog.value.amStatus = row.status;
116 } 116 }
117 - 117 + //审核保存后关闭弹框
  118 + let saveback=(val)=>{
  119 + hideDialog(val)
  120 + }
118 // 挂载完 121 // 挂载完
119 Vue.onMounted(() => { 122 Vue.onMounted(() => {
120 getDataList(); 123 getDataList();
@@ -129,7 +132,8 @@ export default { @@ -129,7 +132,8 @@ export default {
129 tableData, 132 tableData,
130 loaddata, 133 loaddata,
131 getDataList, 134 getDataList,
132 - handle 135 + handle,
  136 + saveback
133 } 137 }
134 } 138 }
135 139
@@ -82,8 +82,8 @@ @@ -82,8 +82,8 @@
82 <div class="alarmsClearEditor-scheme"> 82 <div class="alarmsClearEditor-scheme">
83 <div class="scheme-title-per"> 83 <div class="scheme-title-per">
84 <span class="title-handle-per">处理方案</span> 84 <span class="title-handle-per">处理方案</span>
85 - <span class="title-handle-per" v-if="isExamine">处理人:{{loginName}}</span>  
86 - <span class="title-handle-per" v-if="isExamine">时间:{{alarmInfo.dateTime}}</span> 85 + <span class="title-handle-per" v-if="isExamine">处理人:{{alarmInfo.manageName}}</span>
  86 + <span class="title-handle-per" v-if="isExamine">时间:{{alarmInfo.manageTime}}</span>
87 87
88 <el-tooltip :content="'是否入知识库'" placement="top" v-if="!isExamine"> 88 <el-tooltip :content="'是否入知识库'" placement="top" v-if="!isExamine">
89 <el-switch 89 <el-switch
@@ -114,7 +114,7 @@ @@ -114,7 +114,7 @@
114 </div> 114 </div>
115 <cm-wang-editor v-if="!isExamine" v-model="detail" :repositoryInfo="repositoryInfo" :isDisabled="repositoryInto" :isClear="isClear" @change="change" @changetext="changetext"></cm-wang-editor> 115 <cm-wang-editor v-if="!isExamine" v-model="detail" :repositoryInfo="repositoryInfo" :isDisabled="repositoryInto" :isClear="isClear" @change="change" @changetext="changetext"></cm-wang-editor>
116 <div class="editor_detail" v-if="isExamine" >de3333 116 <div class="editor_detail" v-if="isExamine" >de3333
117 - <div v-html="detail"></div> 117 + <div v-html="alarmInfo.pcontent"></div>
118 </div> 118 </div>
119 </div> 119 </div>
120 <div class="detail_comments" v-if="isExamine"> 120 <div class="detail_comments" v-if="isExamine">
@@ -10,6 +10,11 @@ export default { @@ -10,6 +10,11 @@ export default {
10 amId:{ 10 amId:{
11 type: String, 11 type: String,
12 default: '' 12 default: ''
  13 + },
  14 + //0-草稿
  15 + amStatus:{
  16 + type:Number,
  17 + default:1
13 } 18 }
14 }, 19 },
15 data () { 20 data () {
@@ -61,8 +66,6 @@ export default { @@ -61,8 +66,6 @@ export default {
61 approver:approverName.value,//审批人 66 approver:approverName.value,//审批人
62 // dateTime:dateTime.value,//当前时间 67 // dateTime:dateTime.value,//当前时间
63 keyword:dynamicTagsStr,//关键字 68 keyword:dynamicTagsStr,//关键字
64 - managetime:dateTime.value,//处理时间  
65 - managename:loginName.value,//处理人  
66 repositoryinto:repositoryInto.value?1:0,//是否入知识库 1入,0不入 69 repositoryinto:repositoryInto.value?1:0,//是否入知识库 1入,0不入
67 citecover:citeCover.value?1:0,//引用是否覆盖 0 未覆盖 1已覆盖 70 citecover:citeCover.value?1:0,//引用是否覆盖 0 未覆盖 1已覆盖
68 reason:reason.value,//消除原因 71 reason:reason.value,//消除原因
@@ -70,6 +73,14 @@ export default { @@ -70,6 +73,14 @@ export default {
70 alarmType:alarmInfo.value.alarmTypeCustom,//告警类型,active活动告警,his历史告警 73 alarmType:alarmInfo.value.alarmTypeCustom,//告警类型,active活动告警,his历史告警
71 74
72 } 75 }
  76 + if(val==2 || val==3){
  77 + params.id=props.amId;
  78 + params.managetime=alarmInfo.managetime;//处理时间
  79 + params.managename=alarmInfo.managename;//处理人
  80 + }else{
  81 + params.managetime=dateTime.value;
  82 + params.managename=loginName.value;
  83 + }
73 if(opinion.value){ 84 if(opinion.value){
74 params.opinion=opinion.value;//审批意见 85 params.opinion=opinion.value;//审批意见
75 } 86 }
@@ -88,7 +99,11 @@ export default { @@ -88,7 +99,11 @@ export default {
88 } 99 }
89 //取消按钮 100 //取消按钮
90 let cancleBtn=()=>{ 101 let cancleBtn=()=>{
91 - window.parent.layer.closeAll(); 102 + if(props.isExamine){
  103 + emit('saveback',false)
  104 + }else {
  105 + window.parent.layer.closeAll();
  106 + }
92 } 107 }
93 108
94 //关键字标签 109 //关键字标签
@@ -193,6 +208,7 @@ export default { @@ -193,6 +208,7 @@ export default {
193 } 208 }
194 209
195 proxy.userList.push({ 210 proxy.userList.push({
  211 + nickname:v.nickname,
196 value: v.username, 212 value: v.username,
197 type:'USER', 213 type:'USER',
198 desc: `${desc.join(' / ')}`, 214 desc: `${desc.join(' / ')}`,
@@ -204,42 +220,16 @@ export default { @@ -204,42 +220,16 @@ export default {
204 },function (){},false) 220 },function (){},false)
205 } 221 }
206 let getCheckedFile = () => { 222 let getCheckedFile = () => {
207 - let arr = dataList.value.filter(function (v) {  
208 - if (v.checked != undefined && v.checked == true) {  
209 - return v;  
210 - }  
211 - })  
212 -  
213 - if (arr.length == 0) {  
214 - proxy.$global.showMsg('请选择需要操作的文档!', 'warning');  
215 - return;  
216 - }  
217 -  
218 - if (arr.length == 1) {  
219 - // 查询文件的权限  
220 - proxy.$http.get(`/inspection-report/file/auth/getGrant`, {docId: arr[0].id}, function (res) {  
221 - if (res && res.code == 0) {  
222 - let map = res.map;  
223 - if (map) {  
224 - let all = map.allIds;  
225 - userFileRight.value = all;  
226 - }  
227 - }  
228 - })  
229 - } else {  
230 - // 多文件不查询权限 223 + if(alarmInfo.approver){
  224 + userFileRight.value = [alarmInfo.approver];
  225 + }else{
231 userFileRight.value = []; 226 userFileRight.value = [];
232 } 227 }
233 - return arr;  
234 } 228 }
235 // 用户授权弹框 229 // 用户授权弹框
236 let showUserDialog = (flg) => { 230 let showUserDialog = (flg) => {
237 if (flg) { 231 if (flg) {
238 - // let arr = getCheckedFile();  
239 - // if (arr && arr.length > 0) {  
240 - // showUserDialogVisible.value = flg;  
241 - // }  
242 - // getUserList(); 232 + getCheckedFile();
243 showUserDialogVisible.value = flg; 233 showUserDialogVisible.value = flg;
244 234
245 } else { 235 } else {
@@ -276,11 +266,19 @@ export default { @@ -276,11 +266,19 @@ export default {
276 let getAlarmInfo=()=>{ 266 let getAlarmInfo=()=>{
277 if(props.isExamine){ 267 if(props.isExamine){
278 //审核告警消除 268 //审核告警消除
  269 + // if(props.amId){
  270 + if(props.amStatus){
  271 + //草稿
  272 + }else{
  273 + // getAlarmStatis();
  274 + }
  275 + getAlarmStatis();
  276 + // }
279 }else { 277 }else {
280 alarmInfo.value=proxy.$route.query; 278 alarmInfo.value=proxy.$route.query;
  279 + getUserByToken();
  280 + getUser();
281 } 281 }
282 - getUserByToken();  
283 - getUser();  
284 } 282 }
285 //级联选择器 283 //级联选择器
286 const cascaderValue = Vue.ref([]) 284 const cascaderValue = Vue.ref([])
@@ -420,6 +418,26 @@ export default { @@ -420,6 +418,26 @@ export default {
420 },1000); 418 },1000);
421 getAlarmInfo(); 419 getAlarmInfo();
422 }) 420 })
  421 + //知识库获取详情
  422 + let getAlarmStatis=()=>{
  423 + proxy.$http.get(`/api-web/bAlarmManage/alarm/getAlarmStatisByamId`, {amId:props.amId}, function (res) {
  424 + if (res && res.code == 0) {
  425 + let data=res.object;
  426 + if(data){
  427 + alarmInfo.value=data;
  428 + if( alarmInfo.value.approver){
  429 + approverName.value=alarmInfo.value.approver;
  430 + userList.value.map(item=>{
  431 + if(item.userName== alarmInfo.value.approver){
  432 + approverLabel.value=item.nickname;
  433 + }
  434 + })
  435 + }
  436 +
  437 + }
  438 + }
  439 + })
  440 + }
423 Vue.onUnmounted(()=>{ 441 Vue.onUnmounted(()=>{
424 timer.value=null; 442 timer.value=null;
425 }) 443 })
@@ -430,7 +448,7 @@ export default { @@ -430,7 +448,7 @@ export default {
430 title, dialogVisible, height, dataList, columns, closeDetail,okfunc, getPage,selectionChange,dynamicTagsAppend, 448 title, dialogVisible, height, dataList, columns, closeDetail,okfunc, getPage,selectionChange,dynamicTagsAppend,
431 showUserDialog,showUserDialogVisible,userFileRight,userList,selectUser,getUserList,titles, 449 showUserDialog,showUserDialogVisible,userFileRight,userList,selectUser,getUserList,titles,
432 getAlarmInfo,alarmInfo,cascaderValue,propsTrigger,handleChange,cascaderOptions,noticeFlag, 450 getAlarmInfo,alarmInfo,cascaderValue,propsTrigger,handleChange,cascaderOptions,noticeFlag,
433 - getUserByToken,getUser,cancleBtn,repositoryInfo,repositoryId,opinion 451 + getUserByToken,getUser,cancleBtn,repositoryInfo,repositoryId,opinion,getAlarmStatis
434 } 452 }
435 } 453 }
436 454