CN-1087 fix: 实体关系探索架子

This commit is contained in:
chenjinsong
2023-06-16 17:18:58 +08:00
parent f8456e57a3
commit c86a7cfeae
5 changed files with 58 additions and 3 deletions

View File

@@ -27,6 +27,10 @@ const routes = [
path: '/entityDetail', path: '/entityDetail',
component: () => import('@/views/entityExplorer/EntityDetail') component: () => import('@/views/entityExplorer/EntityDetail')
}, },
{
path: '/entityGraph',
component: () => import('@/views/entityExplorer/EntityGraph')
},
{ {
path: '/detection', path: '/detection',
redirect: '/detection/securityEvent' redirect: '/detection/securityEvent'

View File

@@ -90,7 +90,7 @@ export const entityType = {
export const entityDetailTabsName = { export const entityDetailTabsName = {
informationAggregation: 'informationAggregation', informationAggregation: 'informationAggregation',
domainNameResolution: 'domainNameResolution', relatedEntity: 'relatedEntity',
openPort: 'openPort', openPort: 'openPort',
digitalCertificate: 'digitalCertificate', digitalCertificate: 'digitalCertificate',
securityEvent: 'securityEvent', securityEvent: 'securityEvent',

View File

@@ -13,7 +13,7 @@
<i v-if="tab.warnFlag" :class="tab.warnIcon" class="tab-pane-warn--icon"></i> <i v-if="tab.warnFlag" :class="tab.warnIcon" class="tab-pane-warn--icon"></i>
</template> </template>
<information-aggregation v-if="tab.name === entityDetailTabsName.informationAggregation && tab.name === activeTab" @toggleLoading="setLoading" :entity="entity"></information-aggregation> <information-aggregation v-if="tab.name === entityDetailTabsName.informationAggregation && tab.name === activeTab" @toggleLoading="setLoading" :entity="entity"></information-aggregation>
<domain-name-resolution v-else-if="tab.name === entityDetailTabsName.domainNameResolution && tab.name === activeTab" @toggleLoading="setLoading" :entity="entity" :timeFilter="oneDayTimeFilter"></domain-name-resolution> <domain-name-resolution v-else-if="tab.name === entityDetailTabsName.relatedEntity && tab.name === activeTab" @toggleLoading="setLoading" :entity="entity" :timeFilter="oneDayTimeFilter"></domain-name-resolution>
<digital-certificate v-else-if="tab.name === entityDetailTabsName.digitalCertificate && tab.name === activeTab" @toggleLoading="setLoading" :timeFilter="oneDayTimeFilter" /> <digital-certificate v-else-if="tab.name === entityDetailTabsName.digitalCertificate && tab.name === activeTab" @toggleLoading="setLoading" :timeFilter="oneDayTimeFilter" />
<security-event v-else-if="tab.name === entityDetailTabsName.securityEvent && tab.name === activeTab" @toggleLoading="setLoading" :timeFilter="oneDayTimeFilter" @checkWarn="setWarn" /> <security-event v-else-if="tab.name === entityDetailTabsName.securityEvent && tab.name === activeTab" @toggleLoading="setLoading" :timeFilter="oneDayTimeFilter" @checkWarn="setWarn" />
<performance-event v-else-if="tab.name === entityDetailTabsName.performanceEvent && tab.name === activeTab" @toggleLoading="setLoading" :timeFilter="oneDayTimeFilter" @checkWarn="setWarn" /> <performance-event v-else-if="tab.name === entityDetailTabsName.performanceEvent && tab.name === activeTab" @toggleLoading="setLoading" :timeFilter="oneDayTimeFilter" @checkWarn="setWarn" />
@@ -80,7 +80,7 @@ export default {
const entityType = props.entity.entityType const entityType = props.entity.entityType
const tabs = reactive([ const tabs = reactive([
{ name: entityDetailTabsName.domainNameResolution, label: i18n.global.t('entities.relatedEntity'), icon: 'cn-icon cn-icon-domain-name-resolution' }, { name: entityDetailTabsName.relatedEntity, label: i18n.global.t('entities.relatedEntity'), icon: 'cn-icon cn-icon-domain-name-resolution' },
{ name: entityDetailTabsName.openPort, label: i18n.global.t('entities.openPort'), icon: 'cn-icon cn-icon-open-port' }, { name: entityDetailTabsName.openPort, label: i18n.global.t('entities.openPort'), icon: 'cn-icon cn-icon-open-port' },
// { name: entityDetailTabsName.digitalCertificate, label: i18n.global.t('entities.digitalCertificate'), icon: 'cn-icon cn-icon-digital-certificate' }, // { name: entityDetailTabsName.digitalCertificate, label: i18n.global.t('entities.digitalCertificate'), icon: 'cn-icon cn-icon-digital-certificate' },
{ name: entityDetailTabsName.securityEvent, label: i18n.global.t('overall.securityEvent'), icon: 'cn-icon cn-icon-security-event', warnIcon: 'cn-icon cn-icon-warn', warnFlag: false }, { name: entityDetailTabsName.securityEvent, label: i18n.global.t('overall.securityEvent'), icon: 'cn-icon cn-icon-security-event', warnIcon: 'cn-icon cn-icon-warn', warnFlag: false },

View File

@@ -0,0 +1,38 @@
<template>
<div class="entity-graph">
<div class="entity-graph__chart"></div>
<div class="entity-graph__detail">
<ip-list v-if="mode === 'ipList'"></ip-list>
</div>
</div>
</template>
<script>
import IpList from '@/views/entityExplorer/entityGraphDetail/IpList'
export default {
name: 'EntityRelationship',
components: {
IpList
},
data () {
return {
mode: 'ipList' // ipList, ipDetail, domainList, domainDetail, appList, appDetail
}
}
}
</script>
<style lang="scss">
.entity-graph {
display: flex;
.entity-graph__chart {
width: calc(100% - 360px);
}
.entity-graph__detail {
width: 360px;
border-left: 1px solid #E2E5EC;
overflow: auto;
}
}
</style>

View File

@@ -0,0 +1,13 @@
<template>
</template>
<script>
export default {
name: 'IpList'
}
</script>
<style scoped>
</style>