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 {