Authored by xwx

Merge branch 'master' of http://113.200.75.45:82/monitor_v3/hg-monitor-web into master-v32-xwx

Showing 18 changed files with 522 additions and 57 deletions
@@ -374,8 +374,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' @@ -374,8 +374,8 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
374 }, 374 },
375 grid: [{ 375 grid: [{
376 top: 20, 376 top: 20,
377 - bottom: 35,  
378 - left: 30, 377 + bottom: 45,
  378 + left: 40,
379 right: 5 379 right: 5
380 }], 380 }],
381 xAxis: [{ 381 xAxis: [{
@@ -385,7 +385,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' @@ -385,7 +385,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
385 color: '#333', 385 color: '#333',
386 show: true, 386 show: true,
387 interval:0, 387 interval:0,
388 - rotate:20 388 + rotate:15
389 }, 389 },
390 axisLine: { 390 axisLine: {
391 lineStyle: { 391 lineStyle: {
@@ -439,7 +439,121 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' @@ -439,7 +439,121 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
439 }); 439 });
440 }); 440 });
441 } 441 }
  442 + /********************单独加载更多****************************/
  443 + function loadNoticeMoreChart(echartObject,xData,yData) {
  444 + var series = [{
  445 + name: '通知次数',
  446 + data: yData,
  447 + barWidth: 20,
  448 + type: 'bar',
  449 + label: {
  450 + show: true,
  451 + position: 'top',
  452 + textStyle: {
  453 + color: '#555'
  454 + },
  455 + },
  456 + itemStyle: {
  457 + normal: {
  458 + color: (params) => {
  459 + var colors = ['#b6c2ff', '#96edc1', '#fcb75b'];
  460 + return colors[params.dataIndex % 3]
  461 + }
  462 + }
  463 + },
  464 + emphasis: {
  465 + itemStyle: {
  466 + color: new echarts.graphic.LinearGradient(0, 0, 0, 1, [
  467 + { offset: 0, color: '#2378f7' },
  468 + { offset: 0.7, color: '#2378f7' },
  469 + { offset: 1, color: '#83bff6' }
  470 + ])
  471 + }
  472 + },
  473 + }]
442 474
  475 + var option = {
  476 + tooltip: {
  477 + trigger: 'axis',
  478 + axisPointer: {
  479 + type: 'shadow'
  480 + }
  481 + },
  482 + grid: [{
  483 + top: 20,
  484 + bottom: 70,
  485 + left: 30,
  486 + right: 5
  487 + }],
  488 + xAxis: [{
  489 + type: 'category',
  490 + data: xData,
  491 + axisLabel: {
  492 + color: '#333',
  493 + show: true,
  494 + interval:0,
  495 + rotate:15
  496 + },
  497 + axisLine: {
  498 + lineStyle: {
  499 + color: '#e7e7e7'
  500 + }
  501 + },
  502 + axisTick: {
  503 + lineStyle: {
  504 + color: '#e7e7e7'
  505 + }
  506 + },
  507 + zlevel: 1
  508 + }],
  509 + yAxis: [{
  510 + type: 'value',
  511 + gridIndex: 0,
  512 + axisLabel: {
  513 + color: '#333'
  514 + },
  515 + splitLine: {
  516 + lineStyle: {
  517 + type: 'dashed'
  518 + }
  519 + },
  520 + axisLine: {
  521 + lineStyle: {
  522 + color: '#ccc'
  523 + }
  524 + },
  525 + axisTick: {
  526 + lineStyle: {
  527 + color: '#ccc'
  528 + }
  529 + }
  530 + }],
  531 + series: series,
  532 + dataZoom: [
  533 + { type: 'slider',
  534 + show: true,
  535 + xAxisIndex: [0],
  536 + left: '1%',
  537 + bottom: -5,
  538 + start: 0,
  539 + end: 50 //初始化滚动条
  540 + }
  541 + ],
  542 + }
  543 + echartObject.setOption(option)
  544 + window.onresize=function(){
  545 + echartObject.resize();
  546 + }
  547 + // const zoomSize = 6;
  548 + // echartObject.on('click', function (params) {
  549 + // echartObject.dispatchAction({
  550 + // type: 'dataZoom',
  551 + // startValue: xData[Math.max(params.dataIndex - zoomSize / 2, 0)],
  552 + // endValue:
  553 + // xData[Math.min(params.dataIndex + zoomSize / 2, yData.length - 1)]
  554 + // });
  555 + // });
  556 + }
443 //获取图表数据 557 //获取图表数据
444 function getChartData() { 558 function getChartData() {
445 var where = { 559 var where = {
@@ -522,7 +636,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect' @@ -522,7 +636,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common','sessions', 'xmSelect'
522 var yData = res.map.countList; 636 var yData = res.map.countList;
523 var xData = res.map.userList; 637 var xData = res.map.userList;
524 //展示前20条数据 @Editor LH 638 //展示前20条数据 @Editor LH
525 - loadNoticeChart(noticeTypeChartNew,xData, yData); 639 + loadNoticeMoreChart(noticeTypeChartNew,xData, yData);
526 } 640 }
527 } 641 }
528 }) 642 })
@@ -237,7 +237,10 @@ layui.define(['admin', 'form', 'table', 'element', 'sessions', 'common', 'echart @@ -237,7 +237,10 @@ layui.define(['admin', 'form', 'table', 'element', 'sessions', 'common', 'echart
237 show: true, 237 show: true,
238 position: 'top', 238 position: 'top',
239 textStyle: { 239 textStyle: {
240 - color: '#555' 240 + color: '#555',
  241 + // Start 增加padding LSQ 2021/12/29 10:17
  242 + padding:[5,0,5,0]
  243 + //End LSQ 2021/12/29 10:17
241 } 244 }
242 } 245 }
243 },{ 246 },{
@@ -195,7 +195,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect @@ -195,7 +195,7 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
195 //获取属性值 195 //获取属性值
196 function addUserProperty() { 196 function addUserProperty() {
197 var arr = []; 197 var arr = [];
198 - var $inputs = $("#user_property_html_id").find("input"); 198 + var $inputs = $("#user_property_html_id").find(".input");
199 $.each($inputs, function (i, e) { 199 $.each($inputs, function (i, e) {
200 var obj = { 200 var obj = {
201 id: $(e).attr("data-id"), 201 id: $(e).attr("data-id"),
@@ -207,6 +207,33 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect @@ -207,6 +207,33 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
207 }; 207 };
208 arr.push(obj) 208 arr.push(obj)
209 }) 209 })
  210 + console.log("arr-$inputs",arr)
  211 + // Start 获取select的值 LSQ 2021/12/28 14:29 TODO
  212 + var $selects = $("#user_property_html_id").find(".select");
  213 + $.each($selects, function (i, e) {
  214 + var obj = {
  215 + id: $(e).attr("data-id"),
  216 + username: $(e).attr("data-username"),
  217 + property: $(e).attr("data-property"),
  218 + value: $(e).val(),
  219 + sort: $(e).attr("data-sort"),
  220 + remark: $(e).attr("data-remark")
  221 + };
  222 + arr.push(obj)
  223 + })
  224 + var $textareas = $("#user_property_html_id").find(".textarea");
  225 + $.each($textareas, function (i, e) {
  226 + var obj = {
  227 + id: $(e).attr("data-id"),
  228 + username: $(e).attr("data-username"),
  229 + property: $(e).attr("data-property"),
  230 + value: $(e).val(),
  231 + sort: $(e).attr("data-sort"),
  232 + remark: $(e).attr("data-remark")
  233 + };
  234 + arr.push(obj)
  235 + })
  236 + //End LSQ 2021/12/28 14:50 TODO
210 return arr; 237 return arr;
211 } 238 }
212 239
@@ -234,27 +261,83 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect @@ -234,27 +261,83 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
234 var rowTail = '</div>'; 261 var rowTail = '</div>';
235 var content = ''; 262 var content = '';
236 $.each(propertyList, function (i, v) { 263 $.each(propertyList, function (i, v) {
  264 + // Start 根据字典配置后缀展示输入框,单选框,文本框 LSQ 2021/12/28 16:34 TODO
  265 + var str='';
  266 + var dropStrIndex=v.ddicCode.indexOf('_drop_');
  267 + var textareaStrIndex=v.ddicCode.indexOf('_textarea_');
  268 + if(textareaStrIndex!=-1){
  269 + str='<textarea data-property="'+v.ddicCode+'" placeholder="'+v.ddicDesc+'" data-id="" data-username="" data-sort="" data-remark="" class="layui-textarea textarea" name="' + v.ddicCode + '"></textarea>'
  270 +
  271 + }else if(dropStrIndex!=-1){
  272 + var selectOption='';
  273 + var strArr=v.ddicCode.split('_drop_');
  274 + if(strArr && strArr.length>1){
  275 + var strArrEle=strArr[1].split('_');
  276 + if(strArrEle[0]=='yes'){
  277 + selectOption=' <option value="0">否</option>'+
  278 + ' <option value="1">是</option>';
  279 + }else if(strArrEle[0]=='long'){
  280 + selectOption=' <option value="0">长期</option>'+
  281 + ' <option value="1">短期</option>';
  282 + }else{
  283 + selectOption=' <option value="0">否</option>'+
  284 + ' <option value="1">是</option>';
  285 + }
  286 + }
  287 +
  288 + str='<select data-property="'+v.ddicCode+'" placeholder="'+v.ddicDesc+'" data-id="" data-username="" data-sort="" data-remark="" class="select layui-select select-input-my" name="' + v.ddicCode + '" autocomplete="off">'+
  289 + ' <option value="" style="display:none;"></option>'+ selectOption +
  290 + '</select>';
  291 + }else{
  292 + str='<input type="text" data-property="'+v.ddicCode+'" placeholder="'+v.ddicDesc+'" data-id="" data-username="" data-sort="" data-remark="" class="layui-input input" name="' + v.ddicCode + '" autocomplete="off">'
  293 + }
237 var property = ' <div class="layui-inline ">' + 294 var property = ' <div class="layui-inline ">' +
238 ' <label class="layui-form-label">' + v.ddicName + '</label>' + 295 ' <label class="layui-form-label">' + v.ddicName + '</label>' +
239 - ' <div class="layui-input-inline">' +  
240 - ' <input type="text" data-property="'+v.ddicCode+'" placeholder="'+v.ddicDesc+'" data-id="" data-username="" data-sort="" data-remark="" class="layui-input" name="' + v.ddicCode + '" autocomplete="off">' + 296 + ' <div class="layui-input-inline">' +str+
  297 + // ' <input type="text" data-property="'+v.ddicCode+'" placeholder="'+v.ddicDesc+'" data-id="" data-username="" data-sort="" data-remark="" class="layui-input" name="' + v.ddicCode + '" autocomplete="off">' +
241 ' </div>' + 298 ' </div>' +
242 ' </div>'; 299 ' </div>';
243 - if (i % 2 == 0 && i != 0) { 300 +
  301 + if(textareaStrIndex!=-1){
  302 + if (i % 1 == 0 ) {
  303 + content += rowTail;
  304 + }
  305 + if (i % 1 == 0) {//需要添加表头
  306 + content += rowHead + property;
  307 + } else {//
  308 + content += property;
  309 + }
  310 + }else{
  311 + if (i % 2 == 0 && i != 0) {
  312 + content += rowTail;
  313 + }
  314 +
  315 + if (i % 2 == 0) {//需要添加表头
  316 + content += rowHead + property;
  317 + } else {//
  318 + content += property;
  319 + }
  320 + }
  321 + //End LSQ 2021/12/28 16:35 TODO
  322 +
  323 + /* if (i % 2 == 0 && i != 0) {
244 content += rowTail; 324 content += rowTail;
245 } 325 }
  326 +
246 if (i % 2 == 0) {//需要添加表头 327 if (i % 2 == 0) {//需要添加表头
247 content += rowHead + property; 328 content += rowHead + property;
248 } else {// 329 } else {//
249 content += property; 330 content += property;
250 - } 331 + }*/
  332 +
  333 +
251 }); 334 });
252 $('#user_property_html_id').append(content); 335 $('#user_property_html_id').append(content);
253 } 336 }
254 337
255 //回显属性信息 338 //回显属性信息
256 function evaluation(list){ 339 function evaluation(list){
257 - var $inputs = $("#user_property_html_id").find("input"); 340 + var $inputs = $("#user_property_html_id").find(".input");
258 $.each($inputs, function (i, e) { 341 $.each($inputs, function (i, e) {
259 var $that=$(this); 342 var $that=$(this);
260 $.each(list, function (index,v) { 343 $.each(list, function (index,v) {
@@ -267,6 +350,34 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect @@ -267,6 +350,34 @@ layui.define(['table', 'form', 'admin', 'layer', 'common', 'sessions', 'xmSelect
267 } 350 }
268 }); 351 });
269 }); 352 });
  353 + // Start 回显select的值 LSQ 2021/12/28 14:55 TODO
  354 + var $selects = $("#user_property_html_id").find(".select");
  355 + $.each($selects, function (i, e) {
  356 + var $that=$(this);
  357 + $.each(list, function (index,v) {
  358 + if($that.attr('data-property')== v.property){
  359 + $that.attr("data-id",v.id);
  360 + $that.attr("data-username",v.username);
  361 + $that.val(v.value);
  362 + $that.attr("data-sort",v.sort);
  363 + $that.attr("data-remark",v.remark);
  364 + }
  365 + });
  366 + });
  367 + var $textarea = $("#user_property_html_id").find(".textarea");
  368 + $.each($textarea, function (i, e) {
  369 + var $that=$(this);
  370 + $.each(list, function (index,v) {
  371 + if($that.attr('data-property')== v.property){
  372 + $that.attr("data-id",v.id);
  373 + $that.attr("data-username",v.username);
  374 + $that.val(v.value);
  375 + $that.attr("data-sort",v.sort);
  376 + $that.attr("data-remark",v.remark);
  377 + }
  378 + });
  379 + });
  380 + //End LSQ 2021/12/28 14:55 TODO
270 } 381 }
271 }) 382 })
272 }) 383 })
@@ -467,7 +467,11 @@ layui.extend({ @@ -467,7 +467,11 @@ layui.extend({
467 new msgTips({ 467 new msgTips({
468 dom: ".right-bottom-tips", 468 dom: ".right-bottom-tips",
469 title: title, 469 title: title,
470 - message: `<p style="line-height: 30px;background: url(${imgUrl}) no-repeat;background-size: 70%;height: 178px;padding: 10px;background-position-x: right;padding-left: 106px;padding-top: 96px;">${content}</p>`, 470 + message: `<p style="line-height: 24px;background: url(${imgUrl}) no-repeat;background-size: 100%;height: 160px;padding: 10px;background-position-x: right;padding-left: 29px;padding-top: 145px;">
  471 + <span class="title closeFault" style="position: relative;top: -75px;left: 170px;">X</span>
  472 + <span style="position: relative;left: 35px;top: -21px; font-weight: bold;">${title}</span>
  473 + ${content}
  474 + </p>`,
471 duration: 10000, 475 duration: 10000,
472 space: 10, 476 space: 10,
473 firstSpace: 8, 477 firstSpace: 8,
@@ -485,6 +489,7 @@ layui.extend({ @@ -485,6 +489,7 @@ layui.extend({
485 //} 489 //}
486 } 490 }
487 }) 491 })
  492 +
488 }, delay); 493 }, delay);
489 }else{ 494 }else{
490 setTimeout(function () { 495 setTimeout(function () {
@@ -27,7 +27,7 @@ layui.define(['layer', 'laytpl', 'form'], function (exports) { @@ -27,7 +27,7 @@ layui.define(['layer', 'laytpl', 'form'], function (exports) {
27 minus = ""; 27 minus = "";
28 } 28 }
29 29
30 - if ($('.ez_tips').size() == 0 || $('.ez_tips').size() < options.limit) { 30 + if (($('.ez_tips').size() == 0 || $('.ez_tips').size() < options.limit) && (options.toastType!='faultinfo' && options.toastType!='faultprogress' && options.toastType!='faultover')) {
31 31
32 var container = "<div class='ez_tips "+options.toastType+"' style="+firstDirection+":"+options.margin+"px;transform:translateX("+minus+"110%)></div>" 32 var container = "<div class='ez_tips "+options.toastType+"' style="+firstDirection+":"+options.margin+"px;transform:translateX("+minus+"110%)></div>"
33 33
@@ -97,13 +97,16 @@ layui.define(['layer', 'laytpl', 'form'], function (exports) { @@ -97,13 +97,16 @@ layui.define(['layer', 'laytpl', 'form'], function (exports) {
97 },1); 97 },1);
98 $(options.dom).append(newContainer); 98 $(options.dom).append(newContainer);
99 } else if(options.toastType=='faultinfo'||options.toastType=='faultprogress'||options.toastType=='faultover'){ 99 } else if(options.toastType=='faultinfo'||options.toastType=='faultprogress'||options.toastType=='faultover'){
100 - var container = "<div class='fault_ez_tips "+options.toastType+"' style="+firstDirection+":"+options.margin+"px;bottom: 319px;transform:translateX("+minus+"110%);></div>"  
101 100
102 - var head = "<div class='faultTitle faultClearfix'><i class='faultTips_icon_l fl'></i><i class='FaultTips_icon_r close'></i></div>"; 101 + var container = "<div class='fault_ez_tips "+options.toastType+"' style="+firstDirection+":"+options.margin+"px;transform:translateX("+minus+"110%);width: 226px;bottom: 8px !important; ></div>"
  102 +
  103 + // var head = "<div class='faultTitle faultClearfix'><i class='faultTips_icon_l fl'></i><i class='FaultTips_icon_r close'></i></div>";
  104 + var head = "";
103 105
104 var content = "<div class='FaultTips-message' style='cursor: pointer; display: flex;justify-content: flex-end;'></div>" 106 var content = "<div class='FaultTips-message' style='cursor: pointer; display: flex;justify-content: flex-end;'></div>"
105 107
106 - var newHead = $(head).append(options.title); 108 + // var newHead = $(head).append(options.title);
  109 + var newHead = "";
107 110
108 var newContent = $(content).append(options.message) 111 var newContent = $(content).append(options.message)
109 112
@@ -122,7 +125,9 @@ layui.define(['layer', 'laytpl', 'form'], function (exports) { @@ -122,7 +125,9 @@ layui.define(['layer', 'laytpl', 'form'], function (exports) {
122 var times = Date.now(); 125 var times = Date.now();
123 $(newContainer).css({ 126 $(newContainer).css({
124 'transition-timing-function':options.timingFun, 127 'transition-timing-function':options.timingFun,
125 - 'width':options.width, 128 + // 'width':options.width,
  129 + 'width':'226px',
  130 + 'bottom':'8px'
126 }); 131 });
127 var height = $(newContainer).outerHeight(true); 132 var height = $(newContainer).outerHeight(true);
128 var len = $('.fault_ez_tips').size(); 133 var len = $('.fault_ez_tips').size();
@@ -159,6 +164,13 @@ layui.define(['layer', 'laytpl', 'form'], function (exports) { @@ -159,6 +164,13 @@ layui.define(['layer', 'laytpl', 'form'], function (exports) {
159 $(newContainer).remove(); 164 $(newContainer).remove();
160 },700) 165 },700)
161 }); 166 });
  167 + $(newContainer).find(".closeFault").click(function (event) {
  168 + event.stopPropagation();
  169 + $(newContainer).removeClass('active');
  170 + setTimeout(function () {
  171 + $(newContainer).remove();
  172 + },700)
  173 + })
162 if (options.action) { 174 if (options.action) {
163 $(newContent).css('cursor','pointer').on(options.type,options.action); 175 $(newContent).css('cursor','pointer').on(options.type,options.action);
164 } 176 }
@@ -7892,4 +7892,20 @@ form[lay-filter="activewarning-form"] .layui-inline { @@ -7892,4 +7892,20 @@ form[lay-filter="activewarning-form"] .layui-inline {
7892 } 7892 }
7893 .padding-left-10{ 7893 .padding-left-10{
7894 padding-left:10px; 7894 padding-left:10px;
7895 -}  
  7895 +}
  7896 +/* Start 自定义select的样式*/
  7897 +.select-input-my+.layui-form-select .layui-select-title .layui-input::-webkit-input-placeholder {
  7898 + color:#999;
  7899 +}
  7900 +.select-input-my+.layui-form-select .layui-select-title .layui-input::-moz-placeholder {
  7901 + color:#999;
  7902 +}
  7903 +.select-input-my+.layui-form-select .layui-select-title .layui-input::-ms-input-placeholder {
  7904 + color:#999;
  7905 +}
  7906 +
  7907 +.select-input-my+.layui-form-select dl dd.layui-this{
  7908 + color:#666666;
  7909 + background-color:rgb(242, 242, 242);
  7910 +}
  7911 +/* End 自定义select的样式*/
@@ -16,17 +16,31 @@ @@ -16,17 +16,31 @@
16 <div class="layui-card" style="min-height: calc(30% - 15px)"> 16 <div class="layui-card" style="min-height: calc(30% - 15px)">
17 <div class="layui-card-body"> 17 <div class="layui-card-body">
18 <div style="display: flex" class="layui-card-echart"> 18 <div style="display: flex" class="layui-card-echart">
19 - <div style="width: 60%!important;"> 19 + <!--1单独一行,宽度由60%设为100%// Start LSQ 2021/12/29 10:19-->
  20 + <div style="width: 100%!important;">
20 <h5 class="lay-row-title">告警趋势图(24小时)</h5> 21 <h5 class="lay-row-title">告警趋势图(24小时)</h5>
21 <div class="pie-chart" id="overview_alarm_trend"></div> 22 <div class="pie-chart" id="overview_alarm_trend"></div>
22 </div> 23 </div>
23 - <div style="width: 40%!important;"> 24 + </div>
  25 + </div>
  26 + </div>
  27 + <!--2和5一行 // Start LSQ 2021/12/29 10:18-->
  28 +
  29 + <div class="layui-card" style="min-height: calc(30% - 15px)">
  30 + <div class="layui-card-body">
  31 + <div style="display: flex" class="layui-card-echart">
  32 + <div style="width: 50%!important;">
24 <h5 class="lay-row-title">指标告警统计Top10</h5> 33 <h5 class="lay-row-title">指标告警统计Top10</h5>
25 <div class="pie-chart" id="overview_alarm_kpi"></div> 34 <div class="pie-chart" id="overview_alarm_kpi"></div>
26 </div> 35 </div>
  36 + <div style="flex-grow: 1">
  37 + <h5 class="lay-row-title">业务域告警统计Top10</h5>
  38 + <div class="pie-chart" id="overview_alarm_domain"></div>
  39 + </div>
27 </div> 40 </div>
28 </div> 41 </div>
29 </div> 42 </div>
  43 + <!--//End LSQ 2021/12/29 10:18-->
30 44
31 <div class="layui-card" style="min-height: calc(30% - 15px)"> 45 <div class="layui-card" style="min-height: calc(30% - 15px)">
32 <div class="layui-card-body"> 46 <div class="layui-card-body">
@@ -39,10 +53,10 @@ @@ -39,10 +53,10 @@
39 <h5 class="lay-row-title">业务类型告警统计Top10</h5> 53 <h5 class="lay-row-title">业务类型告警统计Top10</h5>
40 <div class="pie-chart" id="overview_alarm_busType"></div> 54 <div class="pie-chart" id="overview_alarm_busType"></div>
41 </div> 55 </div>
42 - <div style="flex-grow: 1"> 56 + <!-- <div style="flex-grow: 1">
43 <h5 class="lay-row-title">业务域告警统计Top10</h5> 57 <h5 class="lay-row-title">业务域告警统计Top10</h5>
44 <div class="pie-chart" id="overview_alarm_domain"></div> 58 <div class="pie-chart" id="overview_alarm_domain"></div>
45 - </div> 59 + </div>-->
46 </div> 60 </div>
47 </div> 61 </div>
48 </div> 62 </div>
@@ -103,9 +103,9 @@ @@ -103,9 +103,9 @@
103 </article> 103 </article>
104 <!--上传弹框--> 104 <!--上传弹框-->
105 <script id="more_info" type="text/html"> 105 <script id="more_info" type="text/html">
106 - <div style="align:center;">  
107 - <div class="lay-row-title" > 人员分组统计 <div style=" float:right;"></div></div>  
108 - <div class="pie-chart" style="height: 350px" id="notice_chart_type_new"></div> 106 + <div style="align:center;padding: 20px;height: 330px">
  107 + <div class="lay-row-title" lay-tips="灰色拖动条可以左右拉缩并拖动展示其它数据"> 人员分组统计 </div>
  108 + <div class="pie-chart" style="height: 100%" id="notice_chart_type_new"></div>
109 </div> 109 </div>
110 </script> 110 </script>
111 <script> 111 <script>
@@ -343,7 +343,15 @@ @@ -343,7 +343,15 @@
343 {{# }); }} 343 {{# }); }}
344 </div> 344 </div>
345 </div> 345 </div>
346 - <span class="index-banner-count">业务共 {{d.count}} </span> 346 +<!-- <span class="index-banner-count">业务共 {{d.count}} </span>-->
  347 + <!--业务统计数更改
  348 + LSQ 2021/12/28 11:25
  349 + -->
  350 + {{# if(d.data[0] && d.data[0].bizList ) { }}
  351 + <span class="index-banner-count">业务共 {{d.data[0].bizList.length}} </span>
  352 + {{# }else{ }}
  353 + <span class="index-banner-count">业务共 0 </span>
  354 + {{# } }}
347 </script> 355 </script>
348 356
349 <!--资源类型监控情况--> 357 <!--资源类型监控情况-->
@@ -594,12 +594,11 @@ export default { @@ -594,12 +594,11 @@ export default {
594 594
595 if (arr.length == 1) { 595 if (arr.length == 1) {
596 // 查询文件的权限 596 // 查询文件的权限
597 - proxy.$http.get(`/inspection-report/doc/doc/auth/getGrant`, {docId: arr[0].id}, function (res) { 597 + proxy.$http.get(`/inspection-report/file/auth/getGrant`, {docId: arr[0].id}, function (res) {
598 if (res && res.code == 0) { 598 if (res && res.code == 0) {
599 - // {roleIds: ["1"], usernames: ["admin"]}  
600 let map = res.map; 599 let map = res.map;
601 if (map) { 600 if (map) {
602 - let all = res.map.roleIds.concat(res.map.usernames); 601 + let all = map.allIds;
603 userFileRight.value = all; 602 userFileRight.value = all;
604 } 603 }
605 } 604 }
@@ -18,8 +18,14 @@ @@ -18,8 +18,14 @@
18 <div v-else-if="typeof(item.render) == 'function'" > 18 <div v-else-if="typeof(item.render) == 'function'" >
19 <span v-html="item.render(scope.row)">{{scope.row[item.prop]}}</span> 19 <span v-html="item.render(scope.row)">{{scope.row[item.prop]}}</span>
20 </div> 20 </div>
  21 +
21 <span v-else> 22 <span v-else>
22 - {{scope.row[item.prop]}} 23 + <el-tooltip placement="top">
  24 + <template #content> {{getTextContent(scope.row[item.prop])}}</template>
  25 + <div style="overflow: hidden; text-overflow: ellipsis; display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical;">
  26 + {{scope.row[item.prop]}}
  27 + </div>
  28 + </el-tooltip>
23 </span> 29 </span>
24 </slot> 30 </slot>
25 </template> 31 </template>
@@ -199,6 +199,23 @@ export default { @@ -199,6 +199,23 @@ export default {
199 } 199 }
200 }) 200 })
201 } 201 }
  202 +
  203 + let getTextContent = (val) =>{
  204 +
  205 + // if(!val){
  206 + // return val;
  207 + // }
  208 + // let arr = val.split('')
  209 + //
  210 + // let text = [];
  211 + // for(let i = 0;i < arr.length;i += 20){
  212 + // text.push(arr.slice(i, i+20))
  213 + // }
  214 + // return text.join('\n')
  215 +
  216 + return val;
  217 +
  218 + }
202 // 挂载完 219 // 挂载完
203 Vue.onMounted(() => { 220 Vue.onMounted(() => {
204 //callback(); 221 //callback();
@@ -224,7 +241,8 @@ export default { @@ -224,7 +241,8 @@ export default {
224 handleCurrentChange, 241 handleCurrentChange,
225 prePage, 242 prePage,
226 nextPage, 243 nextPage,
227 - getWidth 244 + getWidth,
  245 + getTextContent
228 } 246 }
229 } 247 }
230 } 248 }
@@ -210,12 +210,12 @@ export default { @@ -210,12 +210,12 @@ export default {
210 210
211 let getUser = () => { 211 let getUser = () => {
212 let arr = allArr.value; 212 let arr = allArr.value;
213 -  
214 - if (!arr || arr.length == 0) {  
215 - proxy.$global.showMsg("您没有选择用户!", "warning")  
216 - return;  
217 - }  
218 - 213 + // Start Wang 2021/12/28 19:46 删除非空验证,考虑授权时,取消授权,需要清空授权数据
  214 + // if (!arr || arr.length == 0) {
  215 + // proxy.$global.showMsg("您没有选择用户!", "warning")
  216 + // return;
  217 + // }
  218 + // End Wang 2021/12/28 19:46
219 219
220 let user = []; 220 let user = [];
221 let role = []; 221 let role = [];
  1 +<div>
  2 + <div style="font-weight: bold;text-align: left;">故障相关处理意见</div>
  3 + <cm-table-page v-if="list.columns.length > 0" :columns="list.columns"
  4 + :dataList="list.dataList"
  5 + @loaddata="getPageInfo"
  6 + :showIndex="true"
  7 + :showBorder="true"
  8 + :showPage="false"
  9 + :showTools="showTools"
  10 + :maxWidth="width"
  11 + size="mini"
  12 + :height="200">
  13 + <template #tools="{scope}">
  14 + <el-button type="text" size="small" @click.prevent="handleClick(scope.row,scope.$index)">
  15 + 引用
  16 + </el-button>
  17 + </template>
  18 + </cm-table-page>
  19 +</div>
  1 +export default {
  2 + name: 'faultHisIndex',
  3 + template: '',
  4 + components: {
  5 + 'echarts-line': Vue.defineAsyncComponent(
  6 + () => myImport('components/common/echarts/line/index')
  7 + )
  8 + },
  9 + data() {
  10 + return {}
  11 + },
  12 + props: {
  13 + targetType: {
  14 + type: String,
  15 + default: ''
  16 + },
  17 + faultNo: {
  18 + type: String,
  19 + default: ''
  20 + },
  21 + itemName: {
  22 + type: String,
  23 + default: ''
  24 + },
  25 + itemInfo: {
  26 + type: Object,
  27 + default: {}
  28 + },
  29 + // 展示详情页
  30 + showDetail: {
  31 + type: String,
  32 + default: ''
  33 + },
  34 + // 数据转行方式
  35 + colType: {
  36 + type: String,
  37 + default: 'kpi'
  38 + },
  39 + width:{
  40 + type:Number,
  41 + default: window.innerWidth * 0.8 - 160
  42 + },
  43 + showTools: {
  44 + type: Boolean,
  45 + default: false
  46 + },
  47 + },
  48 + setup(props, {attrs, slots, emit}) {
  49 +
  50 + const {proxy} = Vue.getCurrentInstance();
  51 + // 列表展示结果
  52 + let list = Vue.ref({
  53 + columns: [{
  54 + prop: 'faultNo',
  55 + width:90,
  56 + label: '故障编号',
  57 + },{
  58 + prop: 'faultBody',
  59 + width:150,
  60 + label: '故障主体',
  61 + }, {
  62 + prop: 'createTime',
  63 + width:100,
  64 + label: '发生时间',
  65 + }, {
  66 + prop: 'duration',
  67 + width:80,
  68 + label: '持续时长',
  69 + },{
  70 + prop: 'solution',
  71 + width:200,
  72 + label: '处理方案'
  73 + }],
  74 + dataList: [],
  75 + total: 0
  76 + });
  77 +
  78 +
  79 + /**
  80 + * 获取表格数据
  81 + * <p>
  82 + * 作者: Wang
  83 + * 时间:2021/12/15 17:26
  84 + */
  85 + let getPage = () => {
  86 + let params = {
  87 + configId: props.itemInfo.configId,
  88 + }
  89 +
  90 + proxy.$http.get('/api-web/fault/result/findFaultListByConfigId', params, function (res) {
  91 + if (res && res.success) {
  92 + list.value.dataList = res.data;
  93 + } else {
  94 + proxy.$global.showMsg(res.msg, "warning");
  95 + }
  96 + });
  97 + }
  98 +
  99 +
  100 + let handleClick = (row,index) =>{
  101 + console.log(row,index);
  102 + emit('callback',row);
  103 + }
  104 +
  105 + // // 监听编辑状态
  106 + // Vue.watch(() => props.itemInfo, (newValue, oldVlaue) => {
  107 + // getPage();
  108 + // });
  109 +
  110 + // 挂载完
  111 + Vue.onMounted(() => {
  112 + getPage();
  113 + })
  114 +
  115 + return {
  116 + list,
  117 + getPage,
  118 + handleClick
  119 + }
  120 + }
  121 +}
@@ -42,7 +42,7 @@ export default { @@ -42,7 +42,7 @@ export default {
42 that.$global.showMsg("删除成功!"); 42 that.$global.showMsg("删除成功!");
43 that.diagnosisData.splice(index,1); 43 that.diagnosisData.splice(index,1);
44 }else{ 44 }else{
45 - that.$global.showMsg("删除失败!",'warning') 45 + that.$global.showMsg(res.msg,'warning')
46 } 46 }
47 47
48 }) 48 })
@@ -72,7 +72,7 @@ @@ -72,7 +72,7 @@
72 72
73 <!-- 处理弹框 --> 73 <!-- 处理弹框 -->
74 <cm-dialog title="故障处理" width="60%" :showDialogVisible="handleInfoDialog" 74 <cm-dialog title="故障处理" width="60%" :showDialogVisible="handleInfoDialog"
75 - @hidedialog="showHandelInfoDialog" :showFooter="false"> 75 + @hidedialog="showHandleInfoDialog" :showFooter="false">
76 <template v-slot> 76 <template v-slot>
77 <el-form ref="handleForm" :model="handleInfoForm" :rules="handleInfoRules" label-width="120px"> 77 <el-form ref="handleForm" :model="handleInfoForm" :rules="handleInfoRules" label-width="120px">
78 78
@@ -132,6 +132,14 @@ @@ -132,6 +132,14 @@
132 </el-col> 132 </el-col>
133 </el-row> 133 </el-row>
134 134
  135 + <el-row :gutter="5">
  136 + <el-col :span="24">
  137 + <faultHis :itemInfo="{'configId':handleInfoForm.faultconfid}"
  138 + :width="handleInfoDialogWidth"
  139 + :showTools="true" @callback="setSolution"></faultHis>
  140 + </el-col>
  141 + </el-row>
  142 +
135 <el-form-item> 143 <el-form-item>
136 <el-button @click="showHandleInfoDialog(false)">取消</el-button> 144 <el-button @click="showHandleInfoDialog(false)">取消</el-button>
137 <el-button v-if="handleInfoForm.solveTime == null || handleInfoForm.solveTime == ''" type="primary" @click="saveHandleInfo('handleForm',getPage)">保存</el-button> 145 <el-button v-if="handleInfoForm.solveTime == null || handleInfoForm.solveTime == ''" type="primary" @click="saveHandleInfo('handleForm',getPage)">保存</el-button>
@@ -48,6 +48,14 @@ const faultDetail = () => { @@ -48,6 +48,14 @@ const faultDetail = () => {
48 itemName: '检测指标', 48 itemName: '检测指标',
49 detail: true, 49 detail: true,
50 colType: 'flag' 50 colType: 'flag'
  51 + }, {
  52 + faultType: 'faultHis',
  53 + faultTypeName: '知识库',
  54 + components: 'faultHis',
  55 + color: '#8a9718',
  56 + itemName: '知识库',
  57 + detail: true,
  58 + colType: 'flag'
51 }] 59 }]
52 }); 60 });
53 61
@@ -91,6 +99,7 @@ const faultDetail = () => { @@ -91,6 +99,7 @@ const faultDetail = () => {
91 const handleInfo = () => { 99 const handleInfo = () => {
92 const {proxy} = Vue.getCurrentInstance(); 100 const {proxy} = Vue.getCurrentInstance();
93 let handleInfoDialog = Vue.ref(false); 101 let handleInfoDialog = Vue.ref(false);
  102 + let handleInfoDialogWidth = Vue.ref(window.innerWidth * 0.6 - 80);;
94 let handleInfoForm = Vue.ref({ 103 let handleInfoForm = Vue.ref({
95 faulttype: '', 104 faulttype: '',
96 createTime: '', 105 createTime: '',
@@ -114,8 +123,8 @@ const handleInfo = () => { @@ -114,8 +123,8 @@ const handleInfo = () => {
114 }, 123 },
115 { 124 {
116 min: 5, 125 min: 5,
117 - max: 100,  
118 - message: '处理方案内容在5到100个字符之间', 126 + max: 500,
  127 + message: '处理方案内容在5到500个字符之间',
119 trigger: 'blur', 128 trigger: 'blur',
120 } 129 }
121 ] 130 ]
@@ -125,8 +134,12 @@ const handleInfo = () => { @@ -125,8 +134,12 @@ const handleInfo = () => {
125 let handleClick = (row, index) => { 134 let handleClick = (row, index) => {
126 // 点击弹框 135 // 点击弹框
127 showHandleInfoDialog(true); 136 showHandleInfoDialog(true);
128 - handleInfoForm.value = row;  
129 - //Object.assign(handleInfoForm.value,row); 137 + handleInfoForm.value = Object.assign(handleInfoForm.value,row);
  138 +
  139 + }
  140 +
  141 + let setSolution = (row) =>{
  142 + handleInfoForm.value.solution = row.solution;
130 } 143 }
131 144
132 /** 145 /**
@@ -138,16 +151,6 @@ const handleInfo = () => { @@ -138,16 +151,6 @@ const handleInfo = () => {
138 let saveHandleInfo = (key, callback) => { 151 let saveHandleInfo = (key, callback) => {
139 proxy.$refs[key].validate((valid) => { 152 proxy.$refs[key].validate((valid) => {
140 if (valid) { 153 if (valid) {
141 - // proxy.$http.post('/api-web/fault/solve', handleInfoForm.value, function (res) {  
142 - // if (res && res.success) {  
143 - // proxy.$global.showMsg("处理成功!");  
144 - // showHandleInfoDialog(false);  
145 - // } else {  
146 - // proxy.$global.showMsg("处理失败,请联系管理员!");  
147 - // }  
148 - // callback();  
149 - // });  
150 -  
151 proxy.$http.post('/api-web/fault/faultHandle', { 154 proxy.$http.post('/api-web/fault/faultHandle', {
152 faultId: handleInfoForm.value.id, 155 faultId: handleInfoForm.value.id,
153 label: handleInfoForm.value.label, 156 label: handleInfoForm.value.label,
@@ -180,10 +183,12 @@ const handleInfo = () => { @@ -180,10 +183,12 @@ const handleInfo = () => {
180 return { 183 return {
181 handleInfoForm, 184 handleInfoForm,
182 handleInfoRules, 185 handleInfoRules,
  186 + setSolution,
183 handleClick, 187 handleClick,
184 handleInfoDialog, 188 handleInfoDialog,
185 showHandleInfoDialog, 189 showHandleInfoDialog,
186 - saveHandleInfo 190 + saveHandleInfo,
  191 + handleInfoDialogWidth
187 } 192 }
188 } 193 }
189 export default { 194 export default {
@@ -195,6 +200,9 @@ export default { @@ -195,6 +200,9 @@ export default {
195 ), 200 ),
196 'netLinks': Vue.defineAsyncComponent( 201 'netLinks': Vue.defineAsyncComponent(
197 () => myImport('components/page/faultDiagnosis/result/netLinks/index') 202 () => myImport('components/page/faultDiagnosis/result/netLinks/index')
  203 + ),
  204 + 'faultHis': Vue.defineAsyncComponent(
  205 + () => myImport('components/page/faultDiagnosis/result/faultHis/index')
198 ) 206 )
199 }, 207 },
200 data() { 208 data() {
@@ -327,10 +335,12 @@ export default { @@ -327,10 +335,12 @@ export default {
327 const { 335 const {
328 handleInfoForm, 336 handleInfoForm,
329 handleInfoRules, 337 handleInfoRules,
  338 + setSolution,
330 handleClick, 339 handleClick,
331 handleInfoDialog, 340 handleInfoDialog,
332 showHandleInfoDialog, 341 showHandleInfoDialog,
333 - saveHandleInfo 342 + saveHandleInfo,
  343 + handleInfoDialogWidth
334 } = handleInfo(); 344 } = handleInfo();
335 345
336 // 挂载完 346 // 挂载完
@@ -356,11 +366,12 @@ export default { @@ -356,11 +366,12 @@ export default {
356 // 处理弹框 366 // 处理弹框
357 handleInfoForm, 367 handleInfoForm,
358 handleInfoRules, 368 handleInfoRules,
  369 + setSolution,
359 handleClick, 370 handleClick,
360 handleInfoDialog, 371 handleInfoDialog,
361 showHandleInfoDialog, 372 showHandleInfoDialog,
362 - saveHandleInfo  
363 - 373 + saveHandleInfo,
  374 + handleInfoDialogWidth
364 } 375 }
365 } 376 }
366 } 377 }