diff --git a/src/components/common/TimeRange/DateTimeRange.vue b/src/components/common/TimeRange/DateTimeRange.vue
index 23af905d..61db490e 100644
--- a/src/components/common/TimeRange/DateTimeRange.vue
+++ b/src/components/common/TimeRange/DateTimeRange.vue
@@ -129,7 +129,8 @@ export default {
showDetail () {
let str = ''
if (this.dateRangeValue !== -1) {
- str = this.dateRangeArr.find(item => item.value === this.dateRangeValue).name
+ const rangeItem = this.dateRangeArr.find(item => item.value === this.dateRangeValue)
+ str = rangeItem ? rangeItem.name : this.dateRangeArr[0].name
}
return str
}
diff --git a/src/components/layout/Header.vue b/src/components/layout/Header.vue
index 604d19ec..865ed28e 100644
--- a/src/components/layout/Header.vue
+++ b/src/components/layout/Header.vue
@@ -409,10 +409,10 @@ export default {
const endTimeParam = query.endTime
// 若url携带了,使用携带的值,否则使用默认值。
- const dateRangeValue = rangeParam ? parseInt(query.range) : 60
+ const dateRangeValue = rangeParam ? parseInt(rangeParam) : 60
const chartTimeFilter = ref({ dateRangeValue })
if (!startTimeParam || !endTimeParam) {
- const { startTime, endTime } = getNowTime(60)
+ const { startTime, endTime } = getNowTime(dateRangeValue)
chartTimeFilter.value.startTime = startTime
chartTimeFilter.value.endTime = endTime
} else {
diff --git a/src/mixins/relatedServer.js b/src/mixins/relatedServer.js
index de837708..a8a5ee2d 100644
--- a/src/mixins/relatedServer.js
+++ b/src/mixins/relatedServer.js
@@ -17,7 +17,7 @@ export default {
// 请求数据 relationshipUrlOne => 路由 refOne => ref
getRelatedServerDataOne (relationshipUrlOne, refOne) {
this.loadingRelationshipOne = true
- axios.get(relationshipUrlOne, { params: this.getQueryParams() }).then(response => {
+ axios.get(relationshipUrlOne, { params: this.getQueryParams(DEFAULT_TIME_FILTER_RANGE.entity.relatedEntity) }).then(response => {
if (response.status === 200) {
const relationshipDataOne = []
if (response.data.data.result.length > 0) {
@@ -33,7 +33,7 @@ export default {
},
getRelatedServerDataTwo (relationshipUrlTow, refTow) {
this.loadingRelationshipTwo = true
- axios.get(relationshipUrlTow, { params: this.getQueryParams() }).then(response => {
+ axios.get(relationshipUrlTow, { params: this.getQueryParams(DEFAULT_TIME_FILTER_RANGE.entity.relatedEntity) }).then(response => {
if (response.status === 200) {
const relationshipDataTwo = []
if (response.data.data.result.length > 0) {
diff --git a/src/utils/constants.js b/src/utils/constants.js
index 8a364103..5ed7d4e8 100644
--- a/src/utils/constants.js
+++ b/src/utils/constants.js
@@ -98,6 +98,11 @@ export const entityType = {
ip: 'IP'
}
+export const knowledgeCardUpdateRecordType = {
+ updateRecord: 'updateRecord',
+ intelligenceLearning: 'intelligenceLearning'
+}
+
export const entityDetailTabsName = {
informationAggregation: 'informationAggregation',
relatedEntity: 'relatedEntity',
@@ -213,7 +218,7 @@ export const detectionPageType = {
}
export const listScrollPath = [
- '/entity',
+ '/entityExplorer',
'/detection/performanceEvent',
'/detection/securityEvent'
]
diff --git a/src/views/charts/Panel.vue b/src/views/charts/Panel.vue
index a47f6242..4e1328e8 100644
--- a/src/views/charts/Panel.vue
+++ b/src/views/charts/Panel.vue
@@ -66,9 +66,9 @@ export default {
isEntityDetail: Boolean,
typeName: String
},
- /*components: {
+ /* components: {
DnsScreen
- },*/
+ }, */
data () {
return {
chartList: [], // 普通panel的chart
diff --git a/src/views/charts2/Panel.vue b/src/views/charts2/Panel.vue
index d02cbfe1..422de46c 100644
--- a/src/views/charts2/Panel.vue
+++ b/src/views/charts2/Panel.vue
@@ -300,10 +300,10 @@ export default {
const endTimeParam = query.endTime
// 优先级:url > config.js > 默认值。
- const dateRangeValue = rangeParam ? parseInt(query.range) : (DEFAULT_TIME_FILTER_RANGE.dashboard || 60)
+ const dateRangeValue = rangeParam ? parseInt(rangeParam) : (DEFAULT_TIME_FILTER_RANGE.dashboard || 60)
const timeFilter = ref({ dateRangeValue })
if (!startTimeParam || !endTimeParam) {
- const { startTime, endTime } = getNowTime(60)
+ const { startTime, endTime } = getNowTime(dateRangeValue)
timeFilter.value.startTime = getSecond(startTime)
timeFilter.value.endTime = getSecond(endTime)
// 如果没有时间参数,就将参数写入url
diff --git a/src/views/charts2/chart-mixin.js b/src/views/charts2/chart-mixin.js
index d3687a96..ad556b1d 100644
--- a/src/views/charts2/chart-mixin.js
+++ b/src/views/charts2/chart-mixin.js
@@ -1,4 +1,5 @@
-import { entityDetailRelatedEntitiesShowSize } from '@/utils/constants'
+import { entityDetailRelatedEntitiesShowSize, entityDetailTabsName } from '@/utils/constants'
+import { getSecond } from '@/utils/date-util'
export default {
props: {
@@ -28,6 +29,59 @@ export default {
}
}
},
+ getParamsByTabType (tabType) {
+ let params = {
+ resource: this.entity.entityName
+ }
+ let dataRangeValue = 60 * 24 * 7
+ switch (tabType) {
+ case entityDetailTabsName.relatedEntity:
+ dataRangeValue = DEFAULT_TIME_FILTER_RANGE.entity.relatedEntity
+ break
+ case entityDetailTabsName.performanceEvent:
+ dataRangeValue = DEFAULT_TIME_FILTER_RANGE.entity.performanceEvent
+ break
+ case entityDetailTabsName.securityEvent:
+ dataRangeValue = DEFAULT_TIME_FILTER_RANGE.entity.securityEvent
+ break
+ case entityDetailTabsName.openPort:
+ dataRangeValue = DEFAULT_TIME_FILTER_RANGE.entity.openPort
+ break
+ case entityDetailTabsName.informationAggregation:
+ dataRangeValue = DEFAULT_TIME_FILTER_RANGE.entity.informationAggregation
+ break
+ case entityDetailTabsName.behaviorPattern:
+ dataRangeValue = DEFAULT_TIME_FILTER_RANGE.entity.behaviorPattern
+ break
+ default:
+ dataRangeValue = 60 * 24 * 7
+ }
+
+ if (dataRangeValue !== 0) {
+ const endTime = window.$dayJs.tz().valueOf()
+ const startTime = endTime - dataRangeValue * 60 * 1000
+ params = {
+ ...params,
+ startTime: getSecond(startTime),
+ endTime: getSecond(endTime)
+ }
+ }
+ return params
+ },
+ getParams () {
+ const range = this.timeFilter.dateRangeValue
+ let params = {
+ resource: this.entity.entityName
+ }
+ if (range !== 0) {
+ params = {
+ ...params,
+ startTime: getSecond(this.timeFilter.startTime),
+ endTime: getSecond(this.timeFilter.endTime)
+ }
+ }
+ return params
+ },
handleShowDataNum (showListInfo, allList) {
if (allList.length <= entityDetailRelatedEntitiesShowSize) {
showListInfo.num = allList.length
diff --git a/src/views/charts2/charts/entityDetail/EntityDetailLine.vue b/src/views/charts2/charts/entityDetail/EntityDetailLine.vue
index 0d2d27d2..fa1a2aea 100644
--- a/src/views/charts2/charts/entityDetail/EntityDetailLine.vue
+++ b/src/views/charts2/charts/entityDetail/EntityDetailLine.vue
@@ -124,12 +124,12 @@ export default {
const rangeParam = query.range
const startTimeParam = query.startTime
const endTimeParam = query.endTime
- // 若url携带了,使用携带的值,否则使用默认值。
- const dateRangeValue = rangeParam ? parseInt(query.range) : 60
+ // 优先级:url > config.js > 默认值。
+ const dateRangeValue = rangeParam ? parseInt(rangeParam) : (DEFAULT_TIME_FILTER_RANGE.entity.trafficLine || 60)
const timeFilter = ref({ dateRangeValue })
if (!startTimeParam || !endTimeParam) {
- const { startTime, endTime } = getNowTime(60)
+ const { startTime, endTime } = getNowTime(dateRangeValue)
timeFilter.value.startTime = startTime
timeFilter.value.endTime = endTime
} else {
diff --git a/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue b/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue
index 84fa19a8..8f679b2c 100644
--- a/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue
+++ b/src/views/charts2/charts/entityDetail/EntityDetailTabs.vue
@@ -14,13 +14,13 @@
{{ tab.tag }}
-
-
-
-
-
-
-
+
+
+
+
+
+
+
@@ -58,12 +58,7 @@ export default {
},
data () {
return {
- timer: null,
- // 最近一天的时间
- oneDayTimeFilter: {
- startTime: window.$dayJs.tz().valueOf() - 1440 * 60 * 1000,
- endTime: window.$dayJs.tz().valueOf()
- }
+ timer: null
}
},
watch: {
@@ -114,22 +109,17 @@ export default {
},
methods: {
initData () {
- const params = {
- resource: this.entity.entityName
- // startTime: getSecond(this.oneDayTimeFilter.startTime),
- // endTime: getSecond(this.oneDayTimeFilter.endTime)
- }
-
const url = this.getUrlByEntityType(this.entity.entityType)
- const informationAggregation = axios.get(`${api.entity.informationAggregation}/${this.entity.entityType}?resource=${this.entity.entityName}&pageSize=100&pageNo=1`, { params: params })
- const openPort = axios.get(url, { params: params })
- // const security = axios.get(`${api.entity.security}/${this.entity.entityType}`, { params: params })
- // const performance = axios.get(`${api.entity.performance}/${this.entityType}`, { params: params })
+ const informationAggregation = axios.get(`${api.entity.informationAggregation}/${this.entity.entityType}?resource=${this.entity.entityName}&pageSize=100&pageNo=1`, { params: this.getParamsByTabType(entityDetailTabsName.informationAggregation) })
+ const openPort = axios.get(url, { params: this.getParamsByTabType(entityDetailTabsName.openPort) })
+ const security = axios.get(`${api.entity.security}/${this.entity.entityType}`, { params: this.getParamsByTabType(entityDetailTabsName.securityEvent) })
+ const performance = axios.get(`${api.entity.performance}/${this.entityType}`, { params: this.getParamsByTabType(entityDetailTabsName.performanceEvent) })
- Promise.all([informationAggregation, openPort]).then(response => {
- if (response[0].status === 200) {
+ Promise.allSettled([informationAggregation, openPort, security, performance]).then(response => {
+ const informationAggregationResponse = response[0].value
+ if (informationAggregationResponse.status === 200) {
const list = []
- response[0].data.data.result.forEach(r => {
+ informationAggregationResponse.data.data.result.forEach(r => {
Object.keys(r).forEach(k => {
const aggregation = {
createTime: r[k].createTime,
@@ -152,40 +142,43 @@ export default {
}
})
})
-
this.initSetTag(entityDetailTabsName.informationAggregation, list.length)
}
- if (response[1].status === 200) {
- this.initSetTag(entityDetailTabsName.openPort, response[1].data.data.result.length)
+ const openPortResponse = response[1].value
+ if (openPortResponse.status === 200) {
+ this.initSetTag(entityDetailTabsName.openPort, openPortResponse.data.data.result.length)
}
- // if (response[2].status === 200) {
- // this.initSetTag(entityDetailTabsName.securityEvent, response[2].data.data.result.length)
+ // let securityResponse = response[2].value
+ // if (securityResponse.status === 200) {
+ // this.initSetTag(entityDetailTabsName.securityEvent, securityResponse.data.data.result.length)
// }
- // if (response[3].status === 200) {
- // this.initSetTag(entityDetailTabsName.performanceEvent, response[3].data.data.result.length)
+ // let performanceResponse = response[3].value
+ // if (performanceResponse.status === 200) {
+ // this.initSetTag(entityDetailTabsName.performanceEvent, performanceResponse.data.data.result.length)
// }
this.initSetTag(entityDetailTabsName.securityEvent, 0)
this.initSetTag(entityDetailTabsName.performanceEvent, 0)
})
+ const relatedEntityParams = this.getParamsByTabType(entityDetailTabsName.relatedEntity)
// 域名解析
if (this.entity.entityType === 'app') {
- const ipsOfApp = axios.get(api.entity.domainNameResolutionAboutIpsOfApp, { params: params })
- const domainsOfApp = axios.get(api.entity.domainNameResolutionAboutDomainsOfApp, { params: params })
+ const ipsOfApp = axios.get(api.entity.domainNameResolutionAboutIpsOfApp, { params: relatedEntityParams })
+ const domainsOfApp = axios.get(api.entity.domainNameResolutionAboutDomainsOfApp, { params: relatedEntityParams })
this.promiseData(ipsOfApp, domainsOfApp)
}
if (this.entity.entityType === 'ip') {
- const appsOfIp = axios.get(api.entity.domainNameResolutionAboutAppsOfIp, { params: params })
- const domainsOfIp = axios.get(api.entity.domainNameResolutionAboutDomainsOfIp, { params: params })
- const behaviorPattern = axios.get(api.entity.behaviorPattern, { params: params })
+ const appsOfIp = axios.get(api.entity.domainNameResolutionAboutAppsOfIp, { params: relatedEntityParams })
+ const domainsOfIp = axios.get(api.entity.domainNameResolutionAboutDomainsOfIp, { params: relatedEntityParams })
+ const behaviorPattern = axios.get(api.entity.behaviorPattern, { params: relatedEntityParams })
this.promiseData(appsOfIp, domainsOfIp, behaviorPattern)
}
if (this.entity.entityType === 'domain') {
- const appsOfDomain = axios.get(api.entity.domainNameResolutionAboutAppsOfDomain, { params: params })
- const ipsOfDomain = axios.get(api.entity.domainNameResolutionAboutIpsOfDomain, { params: params })
- const fqdnsOfDomain = axios.get(api.entity.domainNameResolutionAboutFQDNsOfDomain, { params: params })
+ const appsOfDomain = axios.get(api.entity.domainNameResolutionAboutAppsOfDomain, { params: relatedEntityParams })
+ const ipsOfDomain = axios.get(api.entity.domainNameResolutionAboutIpsOfDomain, { params: relatedEntityParams })
+ const fqdnsOfDomain = axios.get(api.entity.domainNameResolutionAboutFQDNsOfDomain, { params: relatedEntityParams })
this.promiseData(appsOfDomain, ipsOfDomain, fqdnsOfDomain)
}
},
diff --git a/src/views/charts2/charts/entityDetail/tabs/BehaviorPattern.vue b/src/views/charts2/charts/entityDetail/tabs/BehaviorPattern.vue
index 7433e2fa..1b75e727 100644
--- a/src/views/charts2/charts/entityDetail/tabs/BehaviorPattern.vue
+++ b/src/views/charts2/charts/entityDetail/tabs/BehaviorPattern.vue
@@ -20,10 +20,10 @@