Authored by 王涛

Merge branch 'master-v32-xwx' into 'master'

故障诊断性能曲线图



See merge request !823
@@ -14,7 +14,7 @@ @@ -14,7 +14,7 @@
14 </el-tooltip> 14 </el-tooltip>
15 </div> 15 </div>
16 <div style="width: calc(100% - 252px);line-height: 54px;" class="align-right"> 16 <div style="width: calc(100% - 252px);line-height: 54px;" class="align-right">
17 - <a v-model="cardName" v-if="card && card.length > 0" @click="openOrCloseBase()">{{cardName}}</a> 17 + <a class="text-link" v-model="cardName" v-if="card && card.length > 0" @click="openOrCloseBase()">{{cardName}}</a>
18 </div> 18 </div>
19 </div> 19 </div>
20 <el-divider/> 20 <el-divider/>
@@ -44,13 +44,13 @@ @@ -44,13 +44,13 @@
44 <div style="width: 230px;margin-left: 20px;display: flex;align-self: center;color: #75af49;align-items: center;"> 44 <div style="width: 230px;margin-left: 20px;display: flex;align-self: center;color: #75af49;align-items: center;">
45 <img src="../src/style/img/fault/success.png" style="width: 22px;height: 22px"> 45 <img src="../src/style/img/fault/success.png" style="width: 22px;height: 22px">
46 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px">正常</span> 46 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px">正常</span>
47 - <h style="font-size: 24px" class="text-link" @click="openDiagnosticItem('normal')">{{getFaultItemValue(dialTest,'normal')}}</h> 47 + <h style="font-size: 24px;color: #75af49;" class="text-link" @click="openDiagnosticItem('normal')">{{getFaultItemValue(dialTest,'normal')}}</h>
48 </div> 48 </div>
49 <span class="flex-border-span">|</span> 49 <span class="flex-border-span">|</span>
50 <div style="width: 200px;margin-left: 20px;display: flex;align-self: center;color: #febb1a;align-items: center;"> 50 <div style="width: 200px;margin-left: 20px;display: flex;align-self: center;color: #febb1a;align-items: center;">
51 <img src="../src/style/img/fault/error.png"style="width: 22px;height: 22px"> 51 <img src="../src/style/img/fault/error.png"style="width: 22px;height: 22px">
52 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px"> 异常</span> 52 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px"> 异常</span>
53 - <h style="font-size: 24px" class="text-link" @click="openDiagnosticItem('abnormal')">{{getFaultItemValue(dialTest,'abnormal')}}</h> 53 + <h style="font-size: 24px;color: #febb1a;" class="text-link" @click="openDiagnosticItem('abnormal')">{{getFaultItemValue(dialTest,'abnormal')}}</h>
54 </div> 54 </div>
55 </div> 55 </div>
56 </div> 56 </div>
@@ -29,25 +29,25 @@ @@ -29,25 +29,25 @@
29 <div style="width: 230px;margin-left: 20px;display: flex;align-self: center;color: #75af49;align-items: center;"> 29 <div style="width: 230px;margin-left: 20px;display: flex;align-self: center;color: #75af49;align-items: center;">
30 <img src="../src/style/img/fault/success.png" style="width:22px;height: 22px;"> 30 <img src="../src/style/img/fault/success.png" style="width:22px;height: 22px;">
31 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px;">正常</span> 31 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px;">正常</span>
32 - <h style="font-size: 20px" class="text-link" @click="openDiagnosticItem('normal')">{{getFaultItemValue(cardList,'normal')}}</h> 32 + <h style="font-size: 20px;color: #75af49;" class="text-link" @click="openDiagnosticItem('normal')">{{getFaultItemValue(cardList,'normal')}}</h>
33 </div> 33 </div>
34 <span class="flex-border-span">|</span> 34 <span class="flex-border-span">|</span>
35 <div style="width: 200px;margin-left: 40px;display: flex;align-self: center;color: #febb1a;align-items: center;"> 35 <div style="width: 200px;margin-left: 40px;display: flex;align-self: center;color: #febb1a;align-items: center;">
36 <img src="../src/style/img/fault/error.png" style="width:22px;height: 22px;"> 36 <img src="../src/style/img/fault/error.png" style="width:22px;height: 22px;">
37 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px;"> 异常</span> 37 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px;"> 异常</span>
38 - <h style="font-size: 24px" class="text-link" @click="openDiagnosticItem('abnormal')">{{getFaultItemValue(cardList,'abnormal')}}</h> 38 + <h style="font-size: 24px;color: #febb1a;" class="text-link" @click="openDiagnosticItem('abnormal')">{{getFaultItemValue(cardList,'abnormal')}}</h>
39 </div> 39 </div>
40 <span class="flex-border-span">|</span> 40 <span class="flex-border-span">|</span>
41 <div style="width: 200px;margin-left: 40px;display: flex;align-self: center;color: red;align-items: center;"> 41 <div style="width: 200px;margin-left: 40px;display: flex;align-self: center;color: red;align-items: center;">
42 <img src="../src/style/img/fault/base/alarm.png" style="width:22px;height: 22px;"> 42 <img src="../src/style/img/fault/base/alarm.png" style="width:22px;height: 22px;">
43 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px;"> 告警</span> 43 <span style="margin: 0px 6px 0px 6px;width: 105px;font-size: 16px;"> 告警</span>
44 - <h style="font-size: 24px" class="text-link" @click="openAlarm()">{{getFaultItemValue(cardList,'alarm')}}</h> 44 + <h style="font-size: 24px;color: red;" class="text-link" @click="openAlarm()">{{getFaultItemValue(cardList,'alarm')}}</h>
45 </div> 45 </div>
46 </div> 46 </div>
47 </div> 47 </div>
48 <div class="align-center" style="flex: 1;text-align: right;margin-right: 80px;"> 48 <div class="align-center" style="flex: 1;text-align: right;margin-right: 80px;">
49 - <a class="m-r-20" v-if="cardList.faultFixInfoList && cardList.faultFixInfoList.length > 0" @click="openMoreDialog()">更多</a>  
50 - <a v-model="cardName" v-if="cardList.faultFixInfoList && cardList.faultFixInfoList.length > 0" @click="openOrCloseCard()">{{cardName}}</a> 49 + <a class="m-r-20 text-link" v-if="cardList.faultFixInfoList && cardList.faultFixInfoList.length > 0" @click="openMoreDialog()">更多</a>
  50 + <a class="text-link" v-model="cardName" v-if="cardList.faultFixInfoList && cardList.faultFixInfoList.length > 0" @click="openOrCloseCard()">{{cardName}}</a>
51 </div> 51 </div>
52 </div> 52 </div>
53 <div v-if="cardOpen" 53 <div v-if="cardOpen"
@@ -78,13 +78,13 @@ @@ -78,13 +78,13 @@
78 CPU 78 CPU
79 </el-col> 79 </el-col>
80 <el-col :span="12" class="align-right border-solid p-6" v-if="resClass!='database'"> 80 <el-col :span="12" class="align-right border-solid p-6" v-if="resClass!='database'">
81 - {{item.cpu}} 81 + {{item.cpu}}{{item.cpuUnit}}
82 </el-col> 82 </el-col>
83 <el-col :span="12" class="align-left border-solid p-6" v-if="resClass!='database'"> 83 <el-col :span="12" class="align-left border-solid p-6" v-if="resClass!='database'">
84 内存 84 内存
85 </el-col> 85 </el-col>
86 <el-col :span="12" class="align-right border-solid p-6" v-if="resClass!='database'"> 86 <el-col :span="12" class="align-right border-solid p-6" v-if="resClass!='database'">
87 - {{item.men}} 87 + {{item.men}}{{item.menUnit}}
88 </el-col> 88 </el-col>
89 <el-col :span="12" class="align-left border-solid p-6"> 89 <el-col :span="12" class="align-left border-solid p-6">
90 告警量 90 告警量
@@ -104,7 +104,6 @@ @@ -104,7 +104,6 @@
104 <el-row style="height: 70px;padding: 10px 30px;display:flex;align-items:center;" v-if="item.resClass=='system'"> 104 <el-row style="height: 70px;padding: 10px 30px;display:flex;align-items:center;" v-if="item.resClass=='system'">
105 <el-col :span="4" class="align-center" style="margin: auto;"> 105 <el-col :span="4" class="align-center" style="margin: auto;">
106 <el-tooltip 106 <el-tooltip
107 - effect="light"  
108 placement="top-start"> 107 placement="top-start">
109 <template #content> 108 <template #content>
110 {{item.kpiName}}: {{item.linkState}} 109 {{item.kpiName}}: {{item.linkState}}
@@ -116,13 +115,13 @@ @@ -116,13 +115,13 @@
116 <el-col :span="1" style="line-height: 36px;color: gainsboro;"> 115 <el-col :span="1" style="line-height: 36px;color: gainsboro;">
117 <span class="flex-border-span">|</span> 116 <span class="flex-border-span">|</span>
118 </el-col> 117 </el-col>
119 - <el-col :span="4" class="align-center"> 118 + <el-col :span="4" class="text-link align-center" style="color:#1e9fff;" @click="openResPonse(item.kpiId,item.resId,'cpu性能曲线')">
120 <img src="../src/style/img/fault/base/CPU-green.png"><br/> 119 <img src="../src/style/img/fault/base/CPU-green.png"><br/>
121 - {{item.cpu}} 120 + {{item.cpu}}{{item.cpuUnit}}
122 </el-col> 121 </el-col>
123 - <el-col :span="5" class="align-center"> 122 + <el-col :span="5" class="text-link align-center" style="color:#1e9fff;" @click="openResPonse(item.kpiId,item.resId,'内存性能曲线')">
124 <img src="../src/style/img/fault/base/men.png"><br/> 123 <img src="../src/style/img/fault/base/men.png"><br/>
125 - {{item.men}}% 124 + {{item.men}}{{item.menUnit}}
126 </el-col> 125 </el-col>
127 <el-col :span="5" class="align-center"> 126 <el-col :span="5" class="align-center">
128 <img src="../src/style/img/fault/base/alarm.png"><br/> 127 <img src="../src/style/img/fault/base/alarm.png"><br/>
@@ -136,7 +135,6 @@ @@ -136,7 +135,6 @@
136 <el-row style="height: 70px;padding: 10px 30px;display:flex;align-items:center;" v-if="item.resClass!='system'"> 135 <el-row style="height: 70px;padding: 10px 30px;display:flex;align-items:center;" v-if="item.resClass!='system'">
137 <el-col :span="3" class="align-center" v-if="item.resClass!='middleware'" > 136 <el-col :span="3" class="align-center" v-if="item.resClass!='middleware'" >
138 <el-tooltip 137 <el-tooltip
139 - effect="light"  
140 placement="top-start"> 138 placement="top-start">
141 <template #content> 139 <template #content>
142 {{item.kpiName}}: {{item.linkState}} 140 {{item.kpiName}}: {{item.linkState}}
@@ -147,7 +145,6 @@ @@ -147,7 +145,6 @@
147 </el-col> 145 </el-col>
148 <el-col :span="3" class="align-center" v-else > 146 <el-col :span="3" class="align-center" v-else >
149 <el-tooltip 147 <el-tooltip
150 - effect="light"  
151 placement="top-start"> 148 placement="top-start">
152 <template #content> 149 <template #content>
153 {{item.kpiName}}: {{item.linkState}} 150 {{item.kpiName}}: {{item.linkState}}
@@ -61,19 +61,27 @@ export default { @@ -61,19 +61,27 @@ export default {
61 resClass:'', 61 resClass:'',
62 collTime:'', 62 collTime:'',
63 health:'', 63 health:'',
64 - kpiName:'监控连接状态' 64 + kpiName:'监控连接状态',
  65 + cpuUnit:'',
  66 + menUnit:'',
  67 + kpiId:'',
  68 + resId:''
65 } 69 }
66 for (let j = 0; j < data[i].length; j++) { 70 for (let j = 0; j < data[i].length; j++) {
67 resItem.resName=data[i][j].resName; 71 resItem.resName=data[i][j].resName;
  72 + resItem.kpiId=data[i][j].kpiId;
  73 + resItem.resId=data[i][j].resId;
68 resItem.ipAddr=data[i][j].ipAddr; 74 resItem.ipAddr=data[i][j].ipAddr;
69 resItem.alarm=data[i][j].alarmNum; 75 resItem.alarm=data[i][j].alarmNum;
70 resItem.collTime=data[i][j].collTimeRecent; 76 resItem.collTime=data[i][j].collTimeRecent;
71 resItem.resClass=data[i][j].resClass; 77 resItem.resClass=data[i][j].resClass;
72 resItem.health=data[i][j].health; 78 resItem.health=data[i][j].health;
73 if (data[i][j].kpiId=='KPI31CB8D97'){ 79 if (data[i][j].kpiId=='KPI31CB8D97'){
74 - resItem.men=data[i][j].diagnosisResult 80 + resItem.men=data[i][j].diagnosisResult;
  81 + resItem.menUnit=data[i][j].unit;
75 }else if (data[i][j].kpiId=='KPI7054BC34'){ 82 }else if (data[i][j].kpiId=='KPI7054BC34'){
76 - resItem.cpu=data[i][j].diagnosisResult 83 + resItem.cpu=data[i][j].diagnosisResult;
  84 + resItem.cpuUnit=data[i][j].unit;
77 }else if (data[i][j].kpiId=='KPIE13DD9A3'||data[i][j].kpiId=='KPI4DA976AF'){ 85 }else if (data[i][j].kpiId=='KPIE13DD9A3'||data[i][j].kpiId=='KPI4DA976AF'){
78 resItem.linkState=data[i][j].diagnosisResult; 86 resItem.linkState=data[i][j].diagnosisResult;
79 resItem.kpiName=data[i][j].kpiName; 87 resItem.kpiName=data[i][j].kpiName;
@@ -137,6 +145,17 @@ export default { @@ -137,6 +145,17 @@ export default {
137 service.sendEventNormalDialog(props.parentEmit, proxy.$global, faultNo, targetType, resClass,type); 145 service.sendEventNormalDialog(props.parentEmit, proxy.$global, faultNo, targetType, resClass,type);
138 } 146 }
139 147
  148 + let openResPonse = (kpiId,redId,title) =>{
  149 + let param = {
  150 + faultNo: faultNo,
  151 + targetType: targetType,
  152 + resId: redId,
  153 + kpiId: kpiId,
  154 + title: title
  155 + }
  156 + service.sendEventLineDialog(props.parentEmit, param);
  157 + }
  158 +
140 // 挂载完 159 // 挂载完
141 Vue.onMounted(() => { 160 Vue.onMounted(() => {
142 let cardList = props.cardList; 161 let cardList = props.cardList;
@@ -158,7 +177,8 @@ export default { @@ -158,7 +177,8 @@ export default {
158 openBusScenarios, 177 openBusScenarios,
159 openKpiList, 178 openKpiList,
160 resClass, 179 resClass,
161 - openDiagnosticItem 180 + openDiagnosticItem,
  181 + openResPonse
162 } 182 }
163 } 183 }
164 } 184 }
@@ -84,12 +84,12 @@ @@ -84,12 +84,12 @@
84 <div style="display: flex;text-align: left;margin-top: -17px;margin-left: 50px;"> 84 <div style="display: flex;text-align: left;margin-top: -17px;margin-left: 50px;">
85 <p style="width: 50%;">响应率 85 <p style="width: 50%;">响应率
86 <h class="text-link" style="margin-left: 6px;" 86 <h class="text-link" style="margin-left: 6px;"
87 - :style="{color: item.responseColor}" @click="openResPonse(item.kpiId,item.resId,'响应率折线图')">{{item.responseNum}}% 87 + :style="{color: item.responseColor}" @click="openResPonse(item.kpiId,item.resId,'响应率性能曲线')">{{item.responseNum}}%
88 </h> 88 </h>
89 </p> 89 </p>
90 <p style="width: 50%;">成功率 90 <p style="width: 50%;">成功率
91 <h class="text-link" style="margin-left: 6px;" 91 <h class="text-link" style="margin-left: 6px;"
92 - :style="{color: item.successColor}" @click="openResPonse(item.kpiId,item.resId,'成功率折线图')">{{item.successNum}}% 92 + :style="{color: item.successColor}" @click="openResPonse(item.kpiId,item.resId,'成功率性能曲线')">{{item.successNum}}%
93 </h> 93 </h>
94 </p> 94 </p>
95 </div> 95 </div>
@@ -116,23 +116,26 @@ export default { @@ -116,23 +116,26 @@ export default {
116 proxy.$http.get('/api-web/fault/conf/detail/getDetailByNo', {faultNo: faultDetailDetailInfo.value.faultNo}, function (res) { 116 proxy.$http.get('/api-web/fault/conf/detail/getDetailByNo', {faultNo: faultDetailDetailInfo.value.faultNo}, function (res) {
117 if (res.length > 0) { 117 if (res.length > 0) {
118 res.forEach((item) => { 118 res.forEach((item) => {
119 - if (item.type.toUpperCase() == 'NETLINK') { 119 + if (item.type.toUpperCase() == 'DIALTEST') {
120 faultDetailDetailInfo.value.items[0].state = item.state 120 faultDetailDetailInfo.value.items[0].state = item.state
121 } 121 }
122 122
123 - if (item.type.toUpperCase() == 'DIALTEST') { 123 + if (item.type.toUpperCase() == 'NETLINK') {
124 faultDetailDetailInfo.value.items[1].state = item.state 124 faultDetailDetailInfo.value.items[1].state = item.state
125 } 125 }
  126 +
  127 +
126 if (item.type.toUpperCase() == 'NPM') { 128 if (item.type.toUpperCase() == 'NPM') {
127 faultDetailDetailInfo.value.items[2].state = item.state 129 faultDetailDetailInfo.value.items[2].state = item.state
128 130
129 } 131 }
130 - if (item.type.toUpperCase() == 'BASE') { 132 + if (item.type.toUpperCase() == 'APM') {
131 faultDetailDetailInfo.value.items[3].state = item.state 133 faultDetailDetailInfo.value.items[3].state = item.state
132 } 134 }
133 - if (item.type.toUpperCase() == 'APM') { 135 + if (item.type.toUpperCase() == 'BASE') {
134 faultDetailDetailInfo.value.items[4].state = item.state 136 faultDetailDetailInfo.value.items[4].state = item.state
135 } 137 }
  138 +
136 }) 139 })
137 } 140 }
138 141
@@ -413,14 +413,19 @@ const faultEvent = () => { @@ -413,14 +413,19 @@ const faultEvent = () => {
413 resId: row.resId, 413 resId: row.resId,
414 kpiId: row.kpiId, 414 kpiId: row.kpiId,
415 flag: row.flag, 415 flag: row.flag,
416 - resClass: '' 416 + resClass: '',
  417 + title:row.kpiName+'性能曲线'
417 }) 418 })
418 } 419 }
419 }, 420 },
420 render: function (row) { 421 render: function (row) {
421 if (row) { 422 if (row) {
  423 + var unit = '';
  424 + if (row.unit && row.unit != null) {
  425 + unit = row.unit
  426 + }
422 var lineClass = row.kpiIdent == 1 ? 'text-decoration: underline;' : ''; 427 var lineClass = row.kpiIdent == 1 ? 'text-decoration: underline;' : '';
423 - return `<span style="${lineClass}color:#1e9fff;">${row.diagnosisResult}</span>` 428 + return `<span style="${lineClass}color:#1e9fff;">${row.diagnosisResult}${unit}</span>`
424 } 429 }
425 return ''; 430 return '';
426 } 431 }