Merge branch 'master-500-dev-lushangqing' into 'master-500-dev'
历史告警消除功能及知识库详情页 See merge request !499
Showing
12 changed files
with
193 additions
and
82 deletions
@@ -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 | +} |
hg-monitor-web-base/src/main/resources/static/vue3/src/components/common/noticeStatistics/index.html
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 () { |
-
Please register or login to post a comment