From 6a2d5a0efe09e46fc2cceb11e9f8b1078c6478e7 Mon Sep 17 00:00:00 2001 From: hyx Date: Mon, 23 Oct 2023 14:54:14 +0800 Subject: [PATCH] =?UTF-8?q?CN-1384=201.=E6=8A=8A0=E7=9A=84=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E5=8E=BB=E6=8E=89=EF=BC=8C=E5=88=97=E8=A1=A8=E5=92=8C?= =?UTF-8?q?=E5=9B=BE=E9=87=8C=E9=83=BD=E4=B8=8D=E5=B1=95=E7=A4=BA;2.?= =?UTF-8?q?=E8=BF=9B=E5=85=A5=E5=AE=9E=E4=BD=93=E8=AF=A6=E6=83=85=E9=A1=B5?= =?UTF-8?q?=E6=97=B6=EF=BC=8C=E6=9F=A5=E4=B8=80=E6=AC=A1=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=8C=E7=A1=AE=E8=AE=A4=E9=9D=9E0=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E7=9A=84=E4=B8=AA=E6=95=B0=EF=BC=8C=E4=B8=AA=E6=95=B0=E6=98=BE?= =?UTF-8?q?=E7=A4=BA=E5=9C=A8tab=E4=B8=8A;3.=E8=BF=9B=E5=85=A5tab=E6=97=B6?= =?UTF-8?q?=EF=BC=8C=E6=9F=A5=E6=9B=B4=E6=96=B0tab=E9=A1=B6=E9=83=A8?= =?UTF-8?q?=E6=95=B0=E5=80=BC=EF=BC=9B4.=E6=95=B0=E6=8D=AE=E5=85=A8?= =?UTF-8?q?=E6=98=AF0=E6=98=BE=E7=A4=BANo=20Data=EF=BC=9B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../charts/entityDetail/EntityDetailTabs.vue | 15 ++++++- .../entityDetail/tabs/BehaviorPattern.vue | 42 +++++++++++++++---- 2 files changed, 47 insertions(+), 10 deletions(-) diff --git a/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue b/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue index 3c26ac5e..84fa19a8 100644 --- a/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue +++ b/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue @@ -178,7 +178,8 @@ export default { if (this.entity.entityType === 'ip') { const appsOfIp = axios.get(api.entity.domainNameResolutionAboutAppsOfIp, { params: params }) const domainsOfIp = axios.get(api.entity.domainNameResolutionAboutDomainsOfIp, { params: params }) - this.promiseData(appsOfIp, domainsOfIp) + const behaviorPattern = axios.get(api.entity.behaviorPattern, { params: params }) + this.promiseData(appsOfIp, domainsOfIp, behaviorPattern) } if (this.entity.entityType === 'domain') { @@ -198,6 +199,18 @@ export default { const len1 = res[0].status === 200 ? res0.data.result.length : 0 const len2 = res[1].status === 200 ? res1.data.result.length : 0 this.initSetTag(entityDetailTabsName.relatedEntity, len1 + len2) + const behaviorPatternData = res[2].status === 200 ? res[2].data.data.result : 0 + let behaviorPatternLen = 0 + if (behaviorPatternData && behaviorPatternData[0]) { + const dataObject = behaviorPatternData[0] + Object.keys(dataObject).forEach(key => { + const value = Number(dataObject[key]) ? Number(dataObject[key]) : 0 + if (value !== 0) { + behaviorPatternLen++ + } + }) + } + this.initSetTag(entityDetailTabsName.behaviorPattern, behaviorPatternLen) break } case 'domain': { diff --git a/src/views/charts2/charts/entityDetail/tabs/BehaviorPattern.vue b/src/views/charts2/charts/entityDetail/tabs/BehaviorPattern.vue index 374c6d80..1122aefd 100644 --- a/src/views/charts2/charts/entityDetail/tabs/BehaviorPattern.vue +++ b/src/views/charts2/charts/entityDetail/tabs/BehaviorPattern.vue @@ -57,7 +57,6 @@ export default { } }, async mounted () { - this.$emit('checkTag', entityDetailTabsName.behaviorPattern, 0) await this.initData() this.toggleLoading(true) const timer = setTimeout(() => { @@ -80,13 +79,32 @@ export default { this.chartOption.angleAxis.data.push(item.name) this.chartOption.series[0].data.push(item.value) }) - const len = this.tableData.length - 1 + const len = this.tableData.length + const endIndex = len - 1 this.tableData.forEach((item, i) => { - if (i !== len) { + if (i !== endIndex) { this.chartOption.angleAxis.data.push(item.name + '2') this.chartOption.series[0].data.push(0) } }) + const axisLabel = this.chartOption.angleAxis.axisLabel + this.chartOption.angleAxis.axisLabel = { + ...axisLabel, + formatter: function (params, index) { + if (len > 15) { + if (index === 7) { + return params + '\n' + } else if (index === 8) { + return '\n' + params + } + } + if (index === endIndex) { + return params + '\n' + } else { + return params + } + } + } const self = this this.$nextTick(() => { @@ -122,7 +140,7 @@ export default { if (response.status === 200) { this.isNoData = res.data.result.length === 0 - this.$emit('checkTag', entityDetailTabsName.behaviorPattern, res.data.result.length) + this.showError = false if (!this.isNoData) { const data = res.data.result @@ -132,16 +150,22 @@ export default { const dataObject = data[0] Object.keys(dataObject).forEach(key => { const value = Number(dataObject[key]) ? Number(dataObject[key]) : 0 - sum = sum + value - this.tableData.push({ - name: key, - value: value - }) + if (value !== 0) { + sum = sum + value + this.tableData.push({ + name: key, + value: value + }) + } }) this.tableData.forEach(item => { item.percent = item.value / sum }) this.tableData = this.tableData.sort(reverseSortBy('value')) + this.$emit('checkTag', entityDetailTabsName.behaviorPattern, this.tableData.length) + if (this.tableData.length === 0) { + this.isNoData = true + } } } } else {