fix: 实体列表恢复事件数量,并完善下拉详情和列表事件数量的一致性

This commit is contained in:
刘洪洪
2023-11-22 10:44:17 +08:00
parent bfb1d93d95
commit b30a8a8a25
7 changed files with 46 additions and 18 deletions

View File

@@ -188,7 +188,7 @@
<el-collapse-transition>
<div class="cn-entity__detail-overview" v-if="!isCollapse">
<el-divider></el-divider>
<detail-overview :entity="entityData" :time-filter="timeFilter" :keywordList="keywordList" @reloadEntity="getEntity" />
<detail-overview :entity="entityData" :time-filter="timeFilter" :keywordList="keywordList" @eventNum="getEventNum" />
</div>
</el-collapse-transition>
</div>
@@ -335,6 +335,9 @@ export default {
},
getEntity (data) {
this.entityData = { ...data }
},
getEventNum (data) {
this.eventNum = data
}
}
}

View File

@@ -321,7 +321,7 @@ export default {
getMillisecond,
dateFormatByAppearance,
getQueryParams (dateRangeValue) {
if (dateRangeValue) {
if (dateRangeValue && (!this.timeFilter.startTime || !this.timeFilter.endTime)) {
// range取 config.js 中配置的值
const { startTime, endTime } = getNowTime(dateRangeValue)
return {

View File

@@ -1,13 +1,13 @@
<template>
<div class="entity-detail-overview">
<template v-if="entity.entityType === 'ip'">
<ip-overview :entity="entity" :time-filter="timeFilter" :keywordList="keywordList" @reloadEntity="getEntity"></ip-overview>
<ip-overview :entity="entity" :time-filter="timeFilter" :keywordList="keywordList" @reloadEntity="getEntity" @eventNum="getEventNum"></ip-overview>
</template>
<template v-else-if="entity.entityType === 'domain'">
<domain-overview :entity="entity" :time-filter="timeFilter" :keywordList="keywordList" @reloadEntity="getEntity"></domain-overview>
<domain-overview :entity="entity" :time-filter="timeFilter" :keywordList="keywordList" @reloadEntity="getEntity" @eventNum="getEventNum"></domain-overview>
</template>
<template v-else-if="entity.entityType === 'app'">
<app-overview :entity="entity" :time-filter="timeFilter" :keywordList="keywordList" @reloadEntity="getEntity"></app-overview>
<app-overview :entity="entity" :time-filter="timeFilter" :keywordList="keywordList" @reloadEntity="getEntity" @eventNum="getEventNum"></app-overview>
</template>
</div>
</template>
@@ -33,6 +33,9 @@ export default {
methods: {
getEntity (data) {
this.$emit('reloadEntity', data)
},
getEventNum (data) {
this.$emit('eventNum', data)
}
}
}

View File

@@ -325,7 +325,7 @@ export default {
getMillisecond,
dateFormatByAppearance,
getQueryParams (dateRangeValue) {
if (dateRangeValue) {
if (dateRangeValue && (!this.timeFilter.startTime || !this.timeFilter.endTime)) {
// range取 config.js 中配置的值
const { startTime, endTime } = getNowTime(dateRangeValue)
return {

View File

@@ -409,7 +409,7 @@ export default {
getMillisecond,
dateFormatByAppearance,
getQueryParams (dateRangeValue) {
if (dateRangeValue) {
if (dateRangeValue && (!this.timeFilter.startTime || !this.timeFilter.endTime)) {
// range取 config.js 中配置的值
const { startTime, endTime } = getNowTime(dateRangeValue)
return {

View File

@@ -50,7 +50,8 @@ export default {
isShowMoreApp: false, // related App 展示更多时
isShowMoreDomain: false, // related Domain 展示更多时
scoreDataState: false, // 性能数据加载情况true 表示加载完成
performanceScoreData: {} // 用来计算评分的性能数据
performanceScoreData: {}, // 用来计算评分的性能数据
eventNum: 0 // 性能事件和安全事件数量之和
}
},
computed: {
@@ -109,6 +110,13 @@ export default {
if (n && this.scoreBaseState) {
this.handleScoreData()
}
},
'entityData.securityNum': {
handler (n) {
this.eventNum = 0
this.eventNum = n + (this.entityData.performanceNum || 0)
this.$emit('eventNum', this.eventNum)
}
}
},
methods: {
@@ -347,7 +355,7 @@ export default {
queryEntityDetailPerformance () {
this.loadingAlert = true
axios.get(this.performanceUrl, { params: this.getQueryParams(DEFAULT_TIME_FILTER_RANGE.entity.performanceEvent) }).then(response => {
axios.get(this.performanceUrl, { params: { ...this.getQueryParams(DEFAULT_TIME_FILTER_RANGE.entity.securityEvent), pageSize: -1 } }).then(response => {
if (response.status === 200) {
this.entityData.performanceNum = response.data.data.result.length
this.performanceData = response.data.data.result
@@ -359,7 +367,7 @@ export default {
queryEntityDetailSecurity () {
this.loadingSecurityEvents = true
axios.get(this.securityUrl, { params: this.getQueryParams(DEFAULT_TIME_FILTER_RANGE.entity.securityEvent) }).then(response => {
axios.get(this.securityUrl, { params: { ...this.getQueryParams(DEFAULT_TIME_FILTER_RANGE.entity.securityEvent), pageSize: -1 } }).then(response => {
if (response.status === 200) {
this.entityData.securityNum = response.data.data.result.length
this.securityData = response.data.data.result

View File

@@ -292,17 +292,31 @@ export default {
/** 获取事件数量 */
queryEventNum () {
this.loadingEvent = true
const performance = axios.get(this.performanceEventUrl, { params: this.getQueryParams() })
const security = axios.get(this.securityEventUrl, { params: this.getQueryParams() })
// const performance = axios.get(this.performanceEventUrl, { params: this.getQueryParams() })
// const security = axios.get(this.securityEventUrl, { params: this.getQueryParams() })
// performance接口修改暂时不能访问故只调用security的后续加上
this.eventNum = 0
Promise.all([performance, security]).then(response => {
this.eventNum = response[0].data.data.result.length + response[1].data.data.result.length
}).catch(e => {
this.eventNum = 0
const param = {
params: {
...this.getQueryParams(),
pageSize: -1
}
}
axios.get(this.securityEventUrl, param).then(res => {
if (res.status === 200) {
this.eventNum = res.data.data.result.length
}
}).finally(() => {
this.loadingEvent = false
})
// Promise.all([performance, security]).then(response => {
// this.eventNum = response[0].data.data.result.length + response[1].data.data.result.length
// }).catch(e => {
// this.eventNum = 0
// }).finally(() => {
// this.loadingEvent = false
// })
},
handleScoreData () {
this.score = computeScore(this.performanceScoreData, this.$store.getters.getScoreBase)
@@ -335,7 +349,7 @@ export default {
setTimeout(() => {
this.queryEntityDetailTraffic()
this.queryNetworkQuantity()
// this.queryEventNum()
this.queryEventNum()
})
},
beforeUnmount () {