Showing
7 changed files
with
80 additions
and
53 deletions
@@ -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 | } |
hg-monitor-web-base/src/main/resources/static/vue3/src/components/common/noticeStatistics/index.html
@@ -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 |
-
Please register or login to post a comment