Authored by 王涛

Merge branch 'master-500-dev-lushangqing' into 'master-500-dev'

历史告警消除功能及知识库详情页



See merge request !499
@@ -6,6 +6,13 @@ @@ -6,6 +6,13 @@
6 max-height: 100%; 6 max-height: 100%;
7 overflow: auto; 7 overflow: auto;
8 } 8 }
  9 +.alarmsClearEditor-container .el-button--primary{
  10 + background: #1E9FFF;
  11 + border-color: #1E9FFF;
  12 + }
  13 +.alarmsClearEditor-container .el-tag{
  14 + color:#1E9FFF;
  15 +}
9 .alarmsClearEditor-info{ 16 .alarmsClearEditor-info{
10 /*padding:10px;*/ 17 /*padding:10px;*/
11 } 18 }
@@ -40,6 +47,10 @@ @@ -40,6 +47,10 @@
40 text-align: left; 47 text-align: left;
41 width:100%; 48 width:100%;
42 } 49 }
  50 +.info-item-statistics .el-collapse-item__content{
  51 + max-height:250px;
  52 + overflow: auto;
  53 +}
43 .info-content{ 54 .info-content{
44 margin-bottom: 5px; 55 margin-bottom: 5px;
45 } 56 }
@@ -136,3 +147,32 @@ @@ -136,3 +147,32 @@
136 .apply-btn .el-button{ 147 .apply-btn .el-button{
137 margin:3px; 148 margin:3px;
138 } 149 }
  150 +.clearDetail-container{
  151 + padding:0 15px;
  152 + min-height: 500px;
  153 + max-height:800px;
  154 + overflow: auto;
  155 +}
  156 +.clearDetail-title{
  157 + text-align: left;
  158 + font-size:16px;
  159 +}
  160 +.clearDetail-handlePer{
  161 + display: flex;
  162 + align-items: center;
  163 + justify-content: space-between;
  164 +}
  165 +.clearDetail-handlePer{
  166 + padding:10px 0;
  167 + color:#999999;
  168 +}
  169 +.editor{
  170 + text-align: left;
  171 +}
  172 +.tag-keyword-span{
  173 + padding:5px 10px;
  174 + background: #ecf5ff;
  175 + color:#1E9FFF;
  176 + margin:5px;
  177 + border-radius: 3px;
  178 +}
1 <div class="info-content"> 1 <div class="info-content">
2 <div class="info-content-body"> 2 <div class="info-content-body">
3 <div class="content-body-info"> 3 <div class="content-body-info">
4 - <div class="info-item-notice">通知信息:{{alarmInfo.alarmContent}}</div>  
5 - <div class="info-item-notice">通知人清单:{{alarmInfo.nickName}}</div>  
6 -  
7 - </div>  
8 - </div>  
9 -</div>  
10 -<div class="info-content">  
11 - <div class="info-content-body">  
12 - <div class="content-body-info">  
13 <div class="info-item-statistics"> 4 <div class="info-item-statistics">
14 统计信息:该告警历史上出现了{{statisticsData.alarmCnt?statisticsData.alarmCnt:0}}次 5 统计信息:该告警历史上出现了{{statisticsData.alarmCnt?statisticsData.alarmCnt:0}}次
15 <span v-if="statisticsData.alarmCnt">,平均持续时长{{statisticsData.continueTimeAvg?statisticsData.continueTimeAvg:0}}s, 6 <span v-if="statisticsData.alarmCnt">,平均持续时长{{statisticsData.continueTimeAvg?statisticsData.continueTimeAvg:0}}s,
@@ -6,10 +6,6 @@ export default { @@ -6,10 +6,6 @@ export default {
6 type: String, 6 type: String,
7 default: '' 7 default: ''
8 }, 8 },
9 - alarmInfo:{  
10 - type:Object,  
11 - default:{}  
12 - },  
13 //同类型告警处理审核部分是否显示 9 //同类型告警处理审核部分是否显示
14 isExamine: { 10 isExamine: {
15 type: Boolean, 11 type: Boolean,
@@ -40,7 +40,7 @@ @@ -40,7 +40,7 @@
40 <template #tools="{scope}" > 40 <template #tools="{scope}" >
41 <div class="apply-btn"> 41 <div class="apply-btn">
42 <el-button v-if="(scope.row.status==1 && scope.row.approver==loginName) || ((scope.row.status==0 || scope.row.status==3) && scope.row.managename==loginName) " @click="handle(scope.row)" size="mini">处理</el-button> 42 <el-button v-if="(scope.row.status==1 && scope.row.approver==loginName) || ((scope.row.status==0 || scope.row.status==3) && scope.row.managename==loginName) " @click="handle(scope.row)" size="mini">处理</el-button>
43 - <el-button v-if="(scope.row.status==1 && scope.row.managename==loginName) || scope.row.status==2 " @click="handle(scope.row)" size="mini">查看</el-button> 43 + <el-button v-if="(scope.row.status==1 && scope.row.managename==loginName) || scope.row.status==2 || (scope.row.status==3 && scope.row.approver==loginName)" @click="handle(scope.row)" size="mini">查看</el-button>
44 </div> 44 </div>
45 45
46 </template> 46 </template>
1 -<!DOCTYPE html>  
2 -<html lang="en">  
3 -<head>  
4 - <meta charset="UTF-8">  
5 - <title>Title</title>  
6 -</head>  
7 -<body>  
8 -  
9 -</body>  
10 -</html>  
  1 +<div class="clearDetail-container">
  2 + <div class="clearDetail-title">消除原因:{{handleInfoObj.reason}}</div>
  3 + <div class="clearDetail-handlePer">
  4 + <div class="handlePer-left">
  5 + <span>处理人:{{handleInfoObj.managenameName}}</span>
  6 + </div>
  7 + <div>
  8 + <span>处理时间:{{handleInfoObj.managetime}}</span>
  9 + </div>
  10 + <div class="handlePer-left">
  11 + <span>审批人:{{handleInfoObj.approverName}}</span>
  12 + </div>
  13 + </div>
  14 + <div class="clearDetail-pcontent" v-html="handleInfoObj.pcontent">
  15 + 图文信息{{handleInfoObj.pcontent}}
  16 + </div>
  17 +</div>
@@ -4,18 +4,38 @@ export default { @@ -4,18 +4,38 @@ export default {
4 components: { 4 components: {
5 5
6 }, 6 },
7 - props: [], 7 + props: {
  8 + isExamine: {
  9 + type: Boolean,
  10 + default: false
  11 + },
  12 + amId:{
  13 + type:String,
  14 + default: ''
  15 + }
  16 + },
8 setup(props, {attrs, slots, emit}) { 17 setup(props, {attrs, slots, emit}) {
9 const {proxy} = Vue.getCurrentInstance(); 18 const {proxy} = Vue.getCurrentInstance();
  19 + let handleInfoObj=Vue.ref('');
  20 + let getDetail=()=>{
  21 + proxy.$http.get(`/api-web/bAlarmManage/getAlarmManageById`, {amId:props.amId}, function (res) {
  22 + if (res && res.code == 0) {
  23 + if(res.object){
  24 + handleInfoObj.value=res.object;
10 25
11 - 26 + }
  27 + }
  28 + })
  29 + }
12 // 挂载完 30 // 挂载完
13 Vue.onMounted(() => { 31 Vue.onMounted(() => {
  32 + getDetail();
14 }) 33 })
15 34
16 35
17 return { 36 return {
18 - 37 + handleInfoObj,
  38 + getDetail,
19 } 39 }
20 } 40 }
21 41
@@ -61,10 +61,19 @@ @@ -61,10 +61,19 @@
61 </div> 61 </div>
62 </div> 62 </div>
63 </div> 63 </div>
  64 + <div class="info-content">
  65 + <div class="info-content-body">
  66 + <div class="content-body-info">
  67 + <div class="info-item-notice">通知信息:{{alarmInfo.alarmContent}}</div>
  68 + <div class="info-item-notice">通知人清单:{{alarmInfo.nickName}}</div>
  69 +
  70 + </div>
  71 + </div>
  72 + </div>
64 <!--通知统计信息组件--> 73 <!--通知统计信息组件-->
65 - <cm-notice-statistics v-if="alarmIdVal" :alarmId="alarmIdVal" :alarmInfo="alarmInfo" :isExamine="isExamine"></cm-notice-statistics> 74 + <cm-notice-statistics v-if="alarmIdVal" :alarmId="alarmIdVal" :isExamine="isExamine"></cm-notice-statistics>
66 </div> 75 </div>
67 - <div class="alarmsRadio" v-if="alarmInfo.alarmTypeCustom=='active' || status==0 || status==3"> 76 + <div class="alarmsRadio" v-if="alarmInfo.alarmTypeCustom=='active' || alarmInfo.alarmTypeCustom=='his' || status==0 || status==3">
68 <div class="alarmNotice-title">消除原因</div> 77 <div class="alarmNotice-title">消除原因</div>
69 <div class="alarmsNotice"> 78 <div class="alarmsNotice">
70 <div class="alarmsDes"><el-input v-model="reason" placeholder="消除原因" /></div> 79 <div class="alarmsDes"><el-input v-model="reason" placeholder="消除原因" /></div>
@@ -112,10 +121,11 @@ @@ -112,10 +121,11 @@
112 <i class="el-icon-edit-outline update-icon" v-if="!isExamine || status==0 || status==3" @click="showUserDialog(true)" ></i> 121 <i class="el-icon-edit-outline update-icon" v-if="!isExamine || status==0 || status==3" @click="showUserDialog(true)" ></i>
113 </span> 122 </span>
114 </span> 123 </span>
115 - <span class="title-handle-per" v-if="!isExamine || status==0 || status==3">时间:{{dateTime}}</span> 124 + <span class="title-handle-per" v-if="!isExamine || status==0">时间:{{dateTime}}</span>
  125 + <span class="title-handle-per" v-if="status==3">时间:{{handleInfoObj.managetime}}</span>
116 </div> 126 </div>
117 - <cm-wang-editor v-if="!isExamine || status==0 || status==3" v-model="detail" :repositoryInfo="repositoryInfo" :isDisabled="repositoryInto==1?true:false" :isClear="isClear" @change="change" @changetext="changetext"></cm-wang-editor>  
118 - <div class="editor_detail" v-if="isExamine && status!=0 && status!=3" > 127 + <cm-wang-editor v-if="!isExamine || status==0 || (status==3 && handleInfoObj.managename==loginName)" v-model="detail" :repositoryInfo="repositoryInfo" :isDisabled="repositoryInto==1?true:false" :isClear="isClear" @change="change" @changetext="changetext"></cm-wang-editor>
  128 + <div class="editor_detail" v-if="isExamine && status!=0 && (status==3 && approverName==loginName)" >
119 <div v-html="handleInfoObj.pcontent"></div> 129 <div v-html="handleInfoObj.pcontent"></div>
120 </div> 130 </div>
121 </div> 131 </div>
@@ -134,7 +144,10 @@ @@ -134,7 +144,10 @@
134 </div> 144 </div>
135 </div> 145 </div>
136 <div class="alarmsClearTag" v-if="repositoryInto && (!isExamine || status==0 || status==3) "> 146 <div class="alarmsClearTag" v-if="repositoryInto && (!isExamine || status==0 || status==3) ">
137 - <div class="tag-keyword"> 147 + <div class="tag-keyword" v-if="approverName==loginName">
  148 + 关键字:<span class="tag-keyword-span" v-for="tag in dynamicTags">{{tag}}</span>
  149 + </div>
  150 + <div class="tag-keyword" v-if="handleInfoObj.managename==loginName">
138 关键字: 151 关键字:
139 <el-tag 152 <el-tag
140 v-for="tag in dynamicTags" 153 v-for="tag in dynamicTags"
@@ -155,7 +168,7 @@ @@ -155,7 +168,7 @@
155 @keyup.enter="handleInputConfirm" 168 @keyup.enter="handleInputConfirm"
156 @blur="handleInputConfirm" 169 @blur="handleInputConfirm"
157 /> 170 />
158 - <el-button v-else class="button-new-tag ml-1" size="small" @click="showInput"> 171 + <el-button v-else class="button-new-tag ml-1" size="small" @click="showInput" >
159 + 添加 172 + 添加
160 </el-button> 173 </el-button>
161 </div> 174 </div>
@@ -172,7 +185,7 @@ @@ -172,7 +185,7 @@
172 </div> 185 </div>
173 <div class="alarmsClearEditor-btn"> 186 <div class="alarmsClearEditor-btn">
174 <el-button type="primary" @click="saveDetail(0)" v-if="!isExamine" size="small">存为草稿</el-button> 187 <el-button type="primary" @click="saveDetail(0)" v-if="!isExamine" size="small">存为草稿</el-button>
175 - <el-button type="primary" @click="saveDetail(1)" v-if="!isExamine || status==0 ||status==3" size="small">确认</el-button> 188 + <el-button type="primary" @click="saveDetail(1)" v-if="!isExamine || status==0 || (status==3 && handleInfoObj.managename==loginName)" size="small">确认</el-button>
176 {{amStatus}} 189 {{amStatus}}
177 <el-button type="primary" @click="saveDetail(2)" v-if="isExamine && status==1 && approverName==loginName" size="small">通过</el-button> 190 <el-button type="primary" @click="saveDetail(2)" v-if="isExamine && status==1 && approverName==loginName" size="small">通过</el-button>
178 <el-button type="primary" @click="saveDetail(3)" v-if="isExamine && status==1 && approverName==loginName" size="small">不通过</el-button> 191 <el-button type="primary" @click="saveDetail(3)" v-if="isExamine && status==1 && approverName==loginName" size="small">不通过</el-button>
@@ -262,7 +262,6 @@ export default { @@ -262,7 +262,6 @@ export default {
262 let userNames = userObj.user.map(function (v) { 262 let userNames = userObj.user.map(function (v) {
263 return v.nickname; 263 return v.nickname;
264 }); 264 });
265 - console.log("userIds",userObj)  
266 approverName.value=userIds[0]; 265 approverName.value=userIds[0];
267 approverLabel.value=userNames[0]; 266 approverLabel.value=userNames[0];
268 267
@@ -294,7 +293,19 @@ export default { @@ -294,7 +293,19 @@ export default {
294 getAlarmStatis(); 293 getAlarmStatis();
295 // } 294 // }
296 }else { 295 }else {
297 - alarmInfo.value=proxy.$route.query; 296 + let urlObj=proxy.$route.query;
  297 + if(urlObj){
  298 + for(let key in urlObj){
  299 + urlObj[key]=decodeURIComponent(urlObj[key])
  300 + }
  301 + }
  302 + alarmInfo.value=urlObj;
  303 + if(alarmInfo.value.alarmTypeCustom=='his'){
  304 + let str=alarmInfo.value.alarmContent;
  305 + let startIndex=str.indexOf("消除原因");
  306 + let endIndex=str.indexOf(",消除内容");
  307 + reason.value=str.substring(startIndex+5,endIndex);
  308 + }
298 alarmIdVal.value=alarmInfo.value.primaryKey; 309 alarmIdVal.value=alarmInfo.value.primaryKey;
299 getUser(); 310 getUser();
300 } 311 }
@@ -44,7 +44,7 @@ @@ -44,7 +44,7 @@
44 <!--弹框--> 44 <!--弹框-->
45 <cm-dialog :title="dialog.title" width="40%" :showDialogVisible="dialog.show" @hidedialog="hideDialog" :showFooter="false"> 45 <cm-dialog :title="dialog.title" width="40%" :showDialogVisible="dialog.show" @hidedialog="hideDialog" :showFooter="false">
46 <template v-slot> 46 <template v-slot>
47 - <alarmsClearEditor :isExamine=true :amId="dialog.adId" /> 47 + <clearDetail :isExamine=true :amId="dialog.amId" />
48 </template> 48 </template>
49 </cm-dialog> 49 </cm-dialog>
50 50
@@ -5,8 +5,8 @@ export default { @@ -5,8 +5,8 @@ export default {
5 'resNameComponents': Vue.defineAsyncComponent( 5 'resNameComponents': Vue.defineAsyncComponent(
6 () => myImport('components/page/res/resNameComponents/index') 6 () => myImport('components/page/res/resNameComponents/index')
7 ), 7 ),
8 - 'alarmsClearEditor': Vue.defineAsyncComponent(  
9 - () => myImport('views/alarmsClearEditor/index') 8 + 'clearDetail': Vue.defineAsyncComponent(
  9 + () => myImport('views/alarmsClearEditor/clearDetail/index')
10 ) 10 )
11 }, 11 },
12 props: [], 12 props: [],
@@ -20,7 +20,7 @@ export default { @@ -20,7 +20,7 @@ export default {
20 limit: 10, 20 limit: 10,
21 }); 21 });
22 let dialog = Vue.ref({ 22 let dialog = Vue.ref({
23 - title : "处理审批", 23 + title : "审批详情",
24 show:false, 24 show:false,
25 amId : '' 25 amId : ''
26 }); 26 });
@@ -116,7 +116,7 @@ export default { @@ -116,7 +116,7 @@ export default {
116 // 处理弹框 116 // 处理弹框
117 let handle = (row) =>{ 117 let handle = (row) =>{
118 hideDialog(true); 118 hideDialog(true);
119 - dialog.value.amId = row.amId; 119 + dialog.value.amId = row.amid;
120 } 120 }
121 121
122 //查看详情 122 //查看详情
@@ -257,7 +257,6 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -257,7 +257,6 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
257 code: 'knFlag' 257 code: 'knFlag'
258 }, 258 },
259 done: function (data) { 259 done: function (data) {
260 - console.log("knFlag",data)  
261 let knFlag=data.object.value; 260 let knFlag=data.object.value;
262 if(knFlag == '1'){ 261 if(knFlag == '1'){
263 //开启闭环 262 //开启闭环
@@ -270,10 +269,13 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -270,10 +269,13 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
270 return; 269 return;
271 } 270 }
272 let params=paramsData[0]; 271 let params=paramsData[0];
273 - console.log("params",params)  
274 for(let key in params){ 272 for(let key in params){
275 if(params[key]){ 273 if(params[key]){
276 - urlParams+=key+'='+params[key]+'&' 274 + let str=params[key];
  275 + if(typeof str=='string'){
  276 + str= str.replace(/%/g, '%25');
  277 + }
  278 + urlParams+=key+'='+encodeURIComponent(str)+'&'
277 } 279 }
278 } 280 }
279 urlParams=urlParams.substr(0,urlParams.length-1)+'&alarmTypeCustom=active'; 281 urlParams=urlParams.substr(0,urlParams.length-1)+'&alarmTypeCustom=active';
@@ -21,7 +21,26 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -21,7 +21,26 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
21 var bizId='';//业务Id 21 var bizId='';//业务Id
22 var busIdSelect; 22 var busIdSelect;
23 var busTypeList = []; 23 var busTypeList = [];
24 - 24 + //获取知识库开启状态
  25 + var knFlag=0;
  26 + var minWidthHandle=100;
  27 + function getSysConfCode(){
  28 + admin.req({
  29 + url: common.domainName + '/api-user/sysConf/getByCode',
  30 + type: "get",
  31 + data: {
  32 + code: 'knFlag'
  33 + },
  34 + done: function (data) {
  35 + knFlag = data.object.value;
  36 + if (knFlag == '1') {
  37 + //开启闭环
  38 + minWidthHandle=150;
  39 + }
  40 + }
  41 + })
  42 + }
  43 + getSysConfCode();
25 if (alarmNo) { 44 if (alarmNo) {
26 $("#historywarningkw").val(alarmNo); 45 $("#historywarningkw").val(alarmNo);
27 } 46 }
@@ -229,7 +248,6 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -229,7 +248,6 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
229 }) 248 })
230 }); 249 });
231 } 250 }
232 -  
233 //渲染表格 251 //渲染表格
234 var historywarningTable; 252 var historywarningTable;
235 //获取配置的列 253 //获取配置的列
@@ -242,6 +260,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -242,6 +260,7 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
242 if (retCols) { 260 if (retCols) {
243 cols = retCols; 261 cols = retCols;
244 } else { 262 } else {
  263 +
245 cols = [ 264 cols = [
246 {type: 'checkbox', fixed: 'left'} 265 {type: 'checkbox', fixed: 'left'}
247 , { 266 , {
@@ -281,8 +300,13 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -281,8 +300,13 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
281 , {field: 'alarmTime', title: '首次告警时间', align: 'center', minWidth: 180, sort: true} 300 , {field: 'alarmTime', title: '首次告警时间', align: 'center', minWidth: 180, sort: true}
282 , {field: 'durationStr', title: '持续时间', align: 'center', width: 190} 301 , {field: 'durationStr', title: '持续时间', align: 'center', width: 190}
283 , { 302 , {
284 - title: '操作', align: 'center', minWidth: 100,  
285 - templet: '<div><!--<span history-data-warn-clear="{{d.id}}" class="layui-table-link">消除</span>--> <span history-data-warn-view="{{d.id}}" class="layui-table-link">查看</span> <span history-data-warn-path="{{d.id}}" class="layui-table-link">轨迹</span></div>' 303 + title: '操作', align: 'center', minWidth: minWidthHandle,
  304 + templet: `<div>
  305 +
  306 + <span history-data-warn-clear="{{d.id}}" class="layui-table-link">补录</span>
  307 + <span history-data-warn-view="{{d.id}}" class="layui-table-link">查看</span>
  308 + <span history-data-warn-path="{{d.id}}" class="layui-table-link">轨迹</span>
  309 + </div>`
286 } 310 }
287 ]; 311 ];
288 } 312 }
@@ -355,41 +379,48 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common', @@ -355,41 +379,48 @@ layui.define(['table', 'form', 'laydate', 'admin', 'layer', 'laytpl', 'common',
355 }); 379 });
356 } 380 }
357 //start lsq 历史告警消除 2022-03-23 381 //start lsq 历史告警消除 2022-03-23
358 - $('[history-data-warn-clear]').unbind("click").on('click', function () {  
359 - // Start 将对象转成key=value&key1=value1 LSQ 2022/03/22  
360 - let urlParams='';  
361 - // let paramsData=table.checkStatus('historywarningTable').data;  
362 - let paramsData= [];  
363 -  
364 - if(resArr){  
365 - resArr.map(item=>{  
366 - if(item.id==$(this).attr('history-data-warn-clear')){  
367 - paramsData.push(item);  
368 - }  
369 - })  
370 - }  
371 - let params=paramsData[0];  
372 - console.log("params",params)  
373 - for(let key in params){  
374 - if(params[key]){  
375 - urlParams+=key+'='+params[key]+'&' 382 + if(knFlag=='1'){
  383 + $('[history-data-warn-clear]').show();
  384 + $('[history-data-warn-clear]').unbind("click").on('click', function () {
  385 + // Start 将对象转成key=value&key1=value1 LSQ 2022/03/22
  386 + let urlParams='';
  387 + // let paramsData=table.checkStatus('historywarningTable').data;
  388 + let paramsData= [];
  389 +
  390 + if(resArr){
  391 + resArr.map(item=>{
  392 + if(item.id==$(this).attr('history-data-warn-clear')){
  393 + paramsData.push(item);
  394 + }
  395 + })
376 } 396 }
377 - }  
378 - urlParams=urlParams.substr(0,urlParams.length-1)+'&alarmTypeCustom=his';  
379 - layer.open({  
380 - title: ['告警消除', 'font-size:18px;'],  
381 - type: 2,  
382 - area: ['80%', '90%'],  
383 - shadeClose: true,//开启遮罩层  
384 - id: 'alarms_clear_id',  
385 - // content: laytpl(res.body).render(JSON.stringify(params)),  
386 - content: ['/vue3/index.html#/alarmsClearEditor?'+urlParams, 'no'],  
387 - cancel: function () {  
388 - clearTimeout(); 397 + let params=paramsData[0];
  398 + for(let key in params){
  399 + if(params[key]){
  400 + let str=params[key];
  401 + if(typeof str=='string'){
  402 + str= str.replace(/%/g, '%25');
  403 + }
  404 + urlParams+=key+'='+encodeURIComponent(str)+'&'
  405 + }
389 } 406 }
390 - });  
391 - })  
392 - 407 + urlParams=urlParams.substr(0,urlParams.length-1)+'&alarmTypeCustom=his';
  408 + layer.open({
  409 + title: ['告警消除', 'font-size:18px;'],
  410 + type: 2,
  411 + area: ['80%', '90%'],
  412 + shadeClose: true,//开启遮罩层
  413 + id: 'alarms_clear_id',
  414 + // content: laytpl(res.body).render(JSON.stringify(params)),
  415 + content: ['/vue3/index.html#/alarmsClearEditor?'+urlParams, 'no'],
  416 + cancel: function () {
  417 + clearTimeout();
  418 + }
  419 + });
  420 + })
  421 + }else{
  422 + $('[history-data-warn-clear]').hide();
  423 + }
393 //end lsq 2022-03-23 424 //end lsq 2022-03-23
394 //告警操作日志 425 //告警操作日志
395 $('[history-data-warn-view]').unbind("click").on('click', function () { 426 $('[history-data-warn-view]').unbind("click").on('click', function () {