Merge branch 'dev' of https://git.mesalab.cn/cyber-narrator/cn-ui into dev
This commit is contained in:
@@ -110,15 +110,15 @@ export default {
|
||||
let className
|
||||
switch (this.entityData.entityType) {
|
||||
case ('ip'): {
|
||||
className = 'cn-icon cn-icon-ip'
|
||||
className = 'cn-icon cn-icon-ip2'
|
||||
break
|
||||
}
|
||||
case ('domain'): {
|
||||
className = 'cn-icon cn-icon-domain'
|
||||
className = 'cn-icon cn-icon-domain2'
|
||||
break
|
||||
}
|
||||
case ('app'): {
|
||||
className = 'cn-icon cn-icon-app'
|
||||
className = 'cn-icon cn-icon-app2'
|
||||
break
|
||||
}
|
||||
default: break
|
||||
|
||||
@@ -259,169 +259,7 @@ export default {
|
||||
q: '',
|
||||
metaList: [],
|
||||
limitFilterType: true, // 是否限定了filter的类型
|
||||
listLoading: false/*,
|
||||
listData: JSON.parse(`[
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "360cn",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"domainCategory": "Streaming Media",
|
||||
"domainCategoryGroup": "IT Resources",
|
||||
"domainReputationScore": 79,
|
||||
"domainName": "9ddm.com",
|
||||
"entityType": "domain",
|
||||
"domainReputationLevel": "Low Risk"
|
||||
},
|
||||
{
|
||||
"ipAsn": "",
|
||||
"ipLocationCountry": "China",
|
||||
"entityType": "ip",
|
||||
"ipLocationProvince": "Other",
|
||||
"ipAddr": "116.178.30.96",
|
||||
"ipLocationCity": "Other"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "youku",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "qqmusic",
|
||||
"appCategory": "media",
|
||||
"appId": "",
|
||||
"appRisk": "3",
|
||||
"appSubcategory": "multimedia-streaming"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "meituan",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "sohu",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "mqtt",
|
||||
"appCategory": "networking",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "remote-access"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "adjust",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "tiktok",
|
||||
"appCategory": "media",
|
||||
"appId": "",
|
||||
"appRisk": "2",
|
||||
"appSubcategory": "photo-video"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "4399com",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "ixigua",
|
||||
"appCategory": "media",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "Multimedia-streaming"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "oicq",
|
||||
"appCategory": "collaboration",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "instant-messaging"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "digicert",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "rdp",
|
||||
"appCategory": "networking",
|
||||
"appId": "",
|
||||
"appRisk": "4",
|
||||
"appSubcategory": "remote-access"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "163com",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "meitu",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "gitv_tv",
|
||||
"appCategory": "media",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "Multimedia-streaming"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "tencent",
|
||||
"appCategory": "general-internet",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "internet-utility"
|
||||
},
|
||||
{
|
||||
"entityType": "app",
|
||||
"appName": "thunder",
|
||||
"appCategory": "networking",
|
||||
"appId": "",
|
||||
"appRisk": "1",
|
||||
"appSubcategory": "infrastructure"
|
||||
}
|
||||
]`) */
|
||||
listLoading: false
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
|
||||
@@ -154,14 +154,14 @@
|
||||
<div class="basic-info__item">
|
||||
<i class="cn-icon cn-icon-entity-alert"></i>
|
||||
<span>{{ $t('entities.recentAlert') }} : </span>
|
||||
<span>{{ entityData.alertCount || '-' }}</span>
|
||||
<span>{{ entityData.performanceCount}}</span>
|
||||
</div>
|
||||
<div class="basic-info__item">
|
||||
<i class="cn-icon cn-icon-safe"></i>
|
||||
<span
|
||||
>{{ $t('entities.recentSecurity') }} : </span
|
||||
>
|
||||
<span>{{ entityData.securityCount || '-' }}</span>
|
||||
<span>{{ entityData.securityCount}}</span>
|
||||
</div>
|
||||
</div>
|
||||
<div
|
||||
@@ -200,21 +200,21 @@ export default {
|
||||
name: 'Row',
|
||||
props: {
|
||||
index: Number,
|
||||
timeFilter: Object,
|
||||
timeFilter: Object
|
||||
},
|
||||
components: {
|
||||
DetailOverview,
|
||||
DetailOverview
|
||||
},
|
||||
mixins: [entityListMixin, entityDetailMixin, relatedServer],
|
||||
data() {
|
||||
data () {
|
||||
return {
|
||||
isCollapse: true, // 是否是折叠状态
|
||||
trafficUrl: '',
|
||||
entityType: '',
|
||||
entityType: ''
|
||||
}
|
||||
},
|
||||
computed: {
|
||||
ipLocationRegion() {
|
||||
ipLocationRegion () {
|
||||
return function (entityData) {
|
||||
const hasProvinceAndCity =
|
||||
entityData.ipLocationProvince &&
|
||||
@@ -237,7 +237,7 @@ export default {
|
||||
}
|
||||
}
|
||||
},
|
||||
entityType() {
|
||||
entityType () {
|
||||
let type
|
||||
switch (this.entityData.entityType) {
|
||||
case 'ip': {
|
||||
@@ -257,12 +257,12 @@ export default {
|
||||
}
|
||||
this.entityType = type
|
||||
return type
|
||||
},
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
entityData: {
|
||||
deep: true,
|
||||
handler(n) {
|
||||
handler (n) {
|
||||
if (n.entityType) {
|
||||
switch (n.entityType) {
|
||||
case 'ip': {
|
||||
@@ -281,35 +281,35 @@ export default {
|
||||
break
|
||||
}
|
||||
}
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
},
|
||||
setup() {
|
||||
setup () {
|
||||
return {
|
||||
unitConvert,
|
||||
unitTypes,
|
||||
unitTypes
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
/* 切换折叠状态 */
|
||||
switchCollapse() {
|
||||
switchCollapse () {
|
||||
this.isCollapse = !this.isCollapse
|
||||
this.$emit('switchCollapse', this.isCollapse, this.index)
|
||||
},
|
||||
/* 设为折叠状态 */
|
||||
collapse() {
|
||||
collapse () {
|
||||
this.isCollapse = true
|
||||
},
|
||||
getQueryParams() {
|
||||
getQueryParams () {
|
||||
const queryParams = {
|
||||
startTime: parseInt(this.timeFilter.startTime / 1000),
|
||||
endTime: parseInt(this.timeFilter.endTime / 1000),
|
||||
appName: this.entityType,
|
||||
domain:this.entityType,
|
||||
ip:this.entityType
|
||||
domain: this.entityType,
|
||||
ip: this.entityType
|
||||
}
|
||||
return queryParams
|
||||
},
|
||||
},
|
||||
}
|
||||
}
|
||||
}
|
||||
</script>
|
||||
|
||||
@@ -4,19 +4,23 @@
|
||||
<div class="overview__content">
|
||||
<div class="overview__row">
|
||||
<div class="row__label row__label--width130">APP ID</div>
|
||||
<div class="row__content">{{entityData.appId|| '-'}}</div>
|
||||
<div class="row__content">{{entity.appId|| '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row">
|
||||
<div class="row__label row__label--width130">{{$t('entities.category')}}</div>
|
||||
<div class="row__content">{{entityData.appCategory|| '-'}}</div>
|
||||
<div class="row__content">{{entity.appCategory|| '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row">
|
||||
<div class="row__label row__label--width130">{{$t('entities.subcategory')}}</div>
|
||||
<div class="row__content">{{entityData.appSubcategory || '-'}}</div>
|
||||
<div class="row__content">{{entity.appSubcategory || '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row">
|
||||
<div class="row__label row__label--width130">{{$t('entities.riskLevel')}}</div>
|
||||
<div class="row__content">{{appRisk(entityData.appRisk) || '-'}}</div>
|
||||
<div class="row__content">{{appRisk(entity.appRisk) || '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row">
|
||||
<div class="row__label row__label--width130">{{$t('overall.remark')}}</div>
|
||||
<div class="row__content">{{entity.appDescription || '-'}}</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -131,17 +135,17 @@
|
||||
<div class="overview__content">
|
||||
<div class="overview__row">
|
||||
<div class="row__label">{{$t('entities.recentAlert')}}</div>
|
||||
<div class="row__content">{{entityData.alertNum || '-'}}</div>
|
||||
<div class="row__content">{{entityData.performanceNum || '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(alert, index) in entityData.alertList" :key="index">
|
||||
<div class="row__label row__label--width160">{{alert.startTime}}</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(performance, index) in entityData.performanceList" :key="index">
|
||||
<div class="row__label row__label--width160">{{dayJs.tz(getMillisecond(performance.startTime)).format('YYYY-MM-DD HH:mm:ss') || '-'}}</div>
|
||||
<div class="row__content row__content--width200">
|
||||
<div class="alert-level-tag alert-level-tag--high">{{alert.alertSeverity}}</div>
|
||||
<div>{{alert.alertName}}</div>
|
||||
<div class="alert-level-tag alert-level-tag--high">{{performance.eventSeverity}}</div>
|
||||
<div>{{performance.eventType}}</div>
|
||||
</div>
|
||||
<div class="row__desc"></div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-if="entityData.alertList && entityData.alertList.length > 3">
|
||||
<div class="overview__row overview__row--small-font" v-if="entityData.performanceList && entityData.performanceList.length > 3">
|
||||
<div class="show-more">{{$t('overall.showMore')}}>></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -154,10 +158,10 @@
|
||||
<div class="row__content">{{entityData.securityNum || '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(security, index) in entityData.securityList" :key="index">
|
||||
<div class="row__label row__label--width160">{{security.startTime}}</div>
|
||||
<div class="row__label row__label--width160">{{dayJs.tz(getMillisecond(security.startTime)).format('YYYY-MM-DD HH:mm:ss') || '-'}}</div>
|
||||
<div class="row__content row__content--width200">
|
||||
<div class="alert-level-tag alert-level-tag--high">{{security.securitySeverity}}</div>
|
||||
<div>{{security.sourceName}}</div>
|
||||
<div class="alert-level-tag alert-level-tag--high">{{security.eventSeverity}}</div>
|
||||
<div>{{security.securityType}}</div>
|
||||
</div>
|
||||
<div class="row__desc"></div>
|
||||
</div>
|
||||
@@ -188,6 +192,7 @@ import _ from 'lodash'
|
||||
import ChartSingleValue from '@/views/charts/charts/ChartSingleValue'
|
||||
import { get } from '@/utils/http'
|
||||
import relatedServer from '@/mixins/relatedServer'
|
||||
import { getSecond, getMillisecond } from '@/utils/date-util'
|
||||
|
||||
export default {
|
||||
name: 'App',
|
||||
@@ -205,7 +210,7 @@ export default {
|
||||
networkQuantityUrl: api.entityAppDetailNetworkQuantity,
|
||||
linkInUrl: api.entityAppDetailLinkIn,
|
||||
linkOutUrl: api.entityAppDetailLinkOut,
|
||||
alertUrl: api.entityAppDetailAlert,
|
||||
performanceUrl: api.entityAppDetailPerformance,
|
||||
securityUrl: api.entityAppDetailSecurity,
|
||||
trafficUrlMap: api.entityAppDetailTrafficMap,
|
||||
relatedServerDomainUrl: api.entityAppRelatedServerDomain,
|
||||
@@ -260,10 +265,11 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getMillisecond,
|
||||
getQueryParams () {
|
||||
const queryParams = {
|
||||
startTime: parseInt(this.timeFilter.startTime / 1000),
|
||||
endTime: parseInt(this.timeFilter.endTime / 1000),
|
||||
startTime: getSecond(this.timeFilter.startTime),
|
||||
endTime: getSecond(this.timeFilter.endTime),
|
||||
appName: this.entity.appName
|
||||
}
|
||||
return queryParams
|
||||
|
||||
@@ -139,17 +139,17 @@
|
||||
<div class="overview__content">
|
||||
<div class="overview__row">
|
||||
<div class="row__label">{{$t('entities.recentAlert')}}</div>
|
||||
<div class="row__content">{{entityData.alertNum || '-'}}</div>
|
||||
<div class="row__content">{{entityData.performanceNum || '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(alert, index) in entityData.alertList" :key="index">
|
||||
<div class="row__label row__label--width160">{{alert.startTime}}</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(performance, index) in entityData.performanceList" :key="index">
|
||||
<div class="row__label row__label--width160">{{dayJs.tz(getMillisecond(performance.startTime)).format('YYYY-MM-DD HH:mm:ss') || '-'}}</div>
|
||||
<div class="row__content row__content--width200">
|
||||
<div class="alert-level-tag alert-level-tag--high">{{alert.alertSeverity}}</div>
|
||||
<div>{{alert.alertName}}</div>
|
||||
<div class="alert-level-tag alert-level-tag--high">{{performance.eventSeverity}}</div>
|
||||
<div>{{performance.eventType}}</div>
|
||||
</div>
|
||||
<div class="row__desc"></div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-if="entityData.alertList && entityData.alertList.length > 3">
|
||||
<div class="overview__row overview__row--small-font" v-if="entityData.performanceList && entityData.performanceList.length > 3">
|
||||
<div class="show-more">{{$t('overall.showMore')}}>></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -162,10 +162,10 @@
|
||||
<div class="row__content">{{entityData.securityNum || '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(security, i) in entityData.securityList" :key="i">
|
||||
<div class="row__label row__label--width160">{{security.startTime}}</div>
|
||||
<div class="row__label row__label--width160">{{dayJs.tz(getMillisecond(security.startTime)).format('YYYY-MM-DD HH:mm:ss') || '-'}}</div>
|
||||
<div class="row__content row__content--width200">
|
||||
<div class="alert-level-tag alert-level-tag--high">{{security.securitySeverity}}</div>
|
||||
<div>{{security.sourceName}}</div>
|
||||
<div class="alert-level-tag alert-level-tag--high">{{security.eventSeverity}}</div>
|
||||
<div>{{security.securityType}}</div>
|
||||
</div>
|
||||
<div class="row__desc"></div>
|
||||
</div>
|
||||
@@ -196,6 +196,8 @@ import Chart from '@/views/charts/Chart'
|
||||
import _ from 'lodash'
|
||||
import { get } from '@/utils/http'
|
||||
import relatedServer from '@/mixins/relatedServer'
|
||||
import { getSecond, getMillisecond } from '@/utils/date-util'
|
||||
|
||||
export default {
|
||||
name: 'Domain',
|
||||
components: {
|
||||
@@ -212,7 +214,7 @@ export default {
|
||||
networkQuantityUrl: api.entityDomainDetailNetworkQuantity,
|
||||
linkInUrl: api.entityDomainDetailLinkIn,
|
||||
linkOutUrl: api.entityDomainDetailLinkOut,
|
||||
alertUrl: api.entityDomainDetailAlert,
|
||||
performanceUrl: api.entityDomainDetailPerformance,
|
||||
securityUrl: api.entityDomainDetailSecurity,
|
||||
trafficUrlMap: api.entityDomainDetailTrafficMap,
|
||||
relatedServerIpUrl: api.entityDomainRelatedServerIp,
|
||||
@@ -268,10 +270,11 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getMillisecond,
|
||||
getQueryParams () {
|
||||
const queryParams = {
|
||||
startTime: parseInt(this.timeFilter.startTime / 1000),
|
||||
endTime: parseInt(this.timeFilter.endTime / 1000),
|
||||
startTime: getSecond(this.timeFilter.startTime),
|
||||
endTime: getSecond(this.timeFilter.endTime),
|
||||
domain: this.entity.domainName
|
||||
}
|
||||
return queryParams
|
||||
|
||||
@@ -123,17 +123,17 @@
|
||||
<div class="overview__content">
|
||||
<div class="overview__row">
|
||||
<div class="row__label">{{$t('entities.recentAlert')}}</div>
|
||||
<div class="row__content">{{entityData.alertNum || '-'}}</div>
|
||||
<div class="row__content">{{entityData.performanceNum || '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(alert, index) in entityData.alertList" :key="index">
|
||||
<div class="row__label row__label--width160">{{alert.startTime}}</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(performance, index) in entityData.performanceList" :key="index">
|
||||
<div class="row__label row__label--width160">{{dayJs.tz(getMillisecond(performance.startTime)).format('YYYY-MM-DD HH:mm:ss') || '-'}}</div>
|
||||
<div class="row__content row__content--width200">
|
||||
<div class="alert-level-tag alert-level-tag--high">{{alert.alertSeverity}}</div>
|
||||
<div>{{alert.alertName}}</div>
|
||||
<div class="alert-level-tag alert-level-tag--high">{{performance.eventSeverity}}</div>
|
||||
<div>{{performance.eventType}}</div>
|
||||
</div>
|
||||
<div class="row__desc"></div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-if="entityData.alertList && entityData.alertList.length > 3">
|
||||
<div class="overview__row overview__row--small-font" v-if="entityData.performanceList && entityData.performanceList.length > 3">
|
||||
<div class="show-more">{{$t('overall.showMore')}}>></div>
|
||||
</div>
|
||||
</div>
|
||||
@@ -146,10 +146,10 @@
|
||||
<div class="row__content">{{entityData.securityNum || '-'}}</div>
|
||||
</div>
|
||||
<div class="overview__row overview__row--small-font" v-for="(security, index) in entityData.securityList" :key="index">
|
||||
<div class="row__label row__label--width160">{{security.startTime}}</div>
|
||||
<div class="row__label row__label--width160">{{dayJs.tz(getMillisecond(security.startTime)).format('YYYY-MM-DD HH:mm:ss') || '-'}}</div>
|
||||
<div class="row__content row__content--width200">
|
||||
<div class="alert-level-tag alert-level-tag--high">{{security.securitySeverity}}</div>
|
||||
<div>{{security.sourceName}}</div>
|
||||
<div class="alert-level-tag alert-level-tag--high">{{security.eventSeverity}}</div>
|
||||
<div>{{security.securityType}}</div>
|
||||
</div>
|
||||
<div class="row__desc"></div>
|
||||
</div>
|
||||
@@ -180,6 +180,7 @@ import Chart from '@/views/charts/Chart'
|
||||
import _ from 'lodash'
|
||||
import { get } from '@/utils/http'
|
||||
import relatedServer from '@/mixins/relatedServer'
|
||||
import { getSecond, getMillisecond } from '@/utils/date-util'
|
||||
|
||||
export default {
|
||||
name: 'Ip',
|
||||
@@ -190,7 +191,6 @@ export default {
|
||||
},
|
||||
data () {
|
||||
return {
|
||||
// entityData: {}
|
||||
entityType: 'ip',
|
||||
trafficUrl: api.entityIpDetailTraffic,
|
||||
trafficUrlMap: api.entityIpDetailTrafficMap,
|
||||
@@ -198,7 +198,7 @@ export default {
|
||||
networkQuantityUrl: api.entityIpDetailNetworkQuantity,
|
||||
linkInUrl: api.entityIpDetailLinkIn,
|
||||
linkOutUrl: api.entityIpDetailLinkOut,
|
||||
alertUrl: api.entityIpDetailAlert,
|
||||
performanceUrl: api.entityIpDetailPerformance,
|
||||
securityUrl: api.entityIpDetailSecurity,
|
||||
relatedServerDomainUrl: api.entityIpRelatedServerDomain,
|
||||
relatedServerAppUrl: api.entityIpRelatedServerApp,
|
||||
@@ -272,10 +272,11 @@ export default {
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
getMillisecond,
|
||||
getQueryParams () {
|
||||
const queryParams = {
|
||||
startTime: parseInt(this.timeFilter.startTime / 1000),
|
||||
endTime: parseInt(this.timeFilter.endTime / 1000),
|
||||
startTime: getSecond(this.timeFilter.startTime),
|
||||
endTime: getSecond(this.timeFilter.endTime),
|
||||
ip: this.entity.ipAddr
|
||||
}
|
||||
return queryParams
|
||||
|
||||
@@ -74,7 +74,7 @@ export default {
|
||||
this.entityData.p50 = t.aggregation.p50
|
||||
this.entityData.p90 = t.aggregation.p90
|
||||
} else if (t.legend === 'bytesSentRate') {
|
||||
this.entityData.bytesSentRate = _.nth(t.values,-3)[1]
|
||||
this.entityData.bytesSentRate = _.nth(t.values, -3)[1]
|
||||
this.chartOptionSent = {
|
||||
...this.chartOption,
|
||||
series: [
|
||||
@@ -90,7 +90,7 @@ export default {
|
||||
}
|
||||
},
|
||||
color: '#69b072',
|
||||
data: _.dropRight(t.values,2).map(v => [Number(v[0]) * 1000, Number(v[1]), unitTypes.byte]),
|
||||
data: _.dropRight(t.values, 2).map(v => [Number(v[0]) * 1000, Number(v[1]), unitTypes.byte]),
|
||||
showSymbol: false
|
||||
}
|
||||
]
|
||||
@@ -212,11 +212,11 @@ export default {
|
||||
}
|
||||
},
|
||||
|
||||
queryEntityDetailAlert () {
|
||||
get(this.alertUrl, this.getQueryParams()).then(response => {
|
||||
queryEntityDetailPerformance () {
|
||||
get(this.performanceUrl, this.getQueryParams()).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.entityData.alertNum = response.data.result.length
|
||||
this.entityData.alertList = response.data.result
|
||||
this.entityData.performanceNum = response.data.result.length
|
||||
this.entityData.performanceList = response.data.result
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -232,8 +232,7 @@ export default {
|
||||
|
||||
queryEntityDetail () {
|
||||
this.queryEntityDetailTraffic()
|
||||
// this.queryEntityDetailRelation()
|
||||
this.queryEntityDetailAlert()
|
||||
this.queryEntityDetailPerformance()
|
||||
this.queryEntityDetailSecurity()
|
||||
this.queryEntityDetailNetworkQuantity()
|
||||
this.queryEntityDetailLinkOutUrl()
|
||||
|
||||
@@ -4,6 +4,7 @@ import { api } from '@/utils/api'
|
||||
import * as echarts from 'echarts'
|
||||
import { entityListLineOption } from '@/views/charts/charts/chart-options'
|
||||
import { riskLevelMapping, unitTypes } from '@/utils/constants'
|
||||
import { getSecond } from '@/utils/date-util'
|
||||
|
||||
export default {
|
||||
props: {
|
||||
@@ -22,15 +23,15 @@ export default {
|
||||
let className
|
||||
switch (this.entityData.entityType) {
|
||||
case ('ip'): {
|
||||
className = 'cn-icon cn-icon-ip'
|
||||
className = 'cn-icon cn-icon-ip2'
|
||||
break
|
||||
}
|
||||
case ('domain'): {
|
||||
className = 'cn-icon cn-icon-domain'
|
||||
className = 'cn-icon cn-icon-domain2'
|
||||
break
|
||||
}
|
||||
case ('app'): {
|
||||
className = 'cn-icon cn-icon-app'
|
||||
className = 'cn-icon cn-icon-app2'
|
||||
break
|
||||
}
|
||||
default: break
|
||||
@@ -149,27 +150,61 @@ export default {
|
||||
},
|
||||
querySecurity () {
|
||||
const queryParams = {
|
||||
startTime: parseInt(this.timeFilter.startTime / 1000),
|
||||
endTime: parseInt(this.timeFilter.endTime / 1000),
|
||||
entityType: this.entityData.entityType,
|
||||
name: this.entityName
|
||||
startTime: getSecond(this.timeFilter.startTime),
|
||||
endTime: getSecond(this.timeFilter.endTime)
|
||||
}
|
||||
get(api.entitySecurityNum, queryParams).then(response => {
|
||||
let url
|
||||
switch (this.entityData.entityType) {
|
||||
case ('ip'): {
|
||||
url = api.entityIpDetailSecurity
|
||||
queryParams.ip = this.entityName
|
||||
break
|
||||
}
|
||||
case ('domain'): {
|
||||
url = api.entityDomainDetailSecurity
|
||||
queryParams.domain = this.entityName
|
||||
break
|
||||
}
|
||||
case ('app'): {
|
||||
url = api.entityAppDetailSecurity
|
||||
queryParams.appName = this.entityName
|
||||
break
|
||||
}
|
||||
default: break
|
||||
}
|
||||
get(url, queryParams).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.entityData.securityCount = response.data.result[0].count
|
||||
this.entityData.securityCount = response.data.result && response.data.result.length
|
||||
}
|
||||
})
|
||||
},
|
||||
queryAlert () {
|
||||
queryPerformance () {
|
||||
const queryParams = {
|
||||
startTime: parseInt(this.timeFilter.startTime / 1000),
|
||||
endTime: parseInt(this.timeFilter.endTime / 1000),
|
||||
entityType: this.entityData.entityType,
|
||||
name: this.entityName
|
||||
startTime: getSecond(this.timeFilter.startTime),
|
||||
endTime: getSecond(this.timeFilter.endTime)
|
||||
}
|
||||
get(api.entityAlertNum, queryParams).then(response => {
|
||||
let url
|
||||
switch (this.entityData.entityType) {
|
||||
case ('ip'): {
|
||||
url = api.entityIpDetailPerformance
|
||||
queryParams.ip = this.entityName
|
||||
break
|
||||
}
|
||||
case ('domain'): {
|
||||
url = api.entityDomainDetailPerformance
|
||||
queryParams.domain = this.entityName
|
||||
break
|
||||
}
|
||||
case ('app'): {
|
||||
url = api.entityAppDetailPerformance
|
||||
queryParams.appName = this.entityName
|
||||
break
|
||||
}
|
||||
default: break
|
||||
}
|
||||
get(url, queryParams).then(response => {
|
||||
if (response.code === 200) {
|
||||
this.entityData.alertCount = response.data.result[0].value
|
||||
this.entityData.performanceCount = response.data.result && response.data.result.length
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -259,7 +294,7 @@ export default {
|
||||
this.entityData = _.cloneDeep(this.entity)
|
||||
setTimeout(() => { this.queryTraffic() })
|
||||
setTimeout(() => { this.querySecurity() })
|
||||
setTimeout(() => { this.queryAlert() })
|
||||
setTimeout(() => { this.queryPerformance() })
|
||||
if (this.listMode === 'block') {
|
||||
setTimeout(() => { this.queryTrafficLine() })
|
||||
}
|
||||
|
||||
@@ -67,8 +67,7 @@ export default {
|
||||
{
|
||||
name: 'entity_type',
|
||||
type: 'string',
|
||||
// label: this.$t('overall.type')
|
||||
label: 'Type'
|
||||
label: 'Entity type'
|
||||
},
|
||||
{
|
||||
name: 'ip_addr',
|
||||
@@ -78,31 +77,42 @@ export default {
|
||||
{
|
||||
name: 'ip_location_country',
|
||||
type: 'string',
|
||||
// label: this.$t('overall.country')
|
||||
label: 'Country'
|
||||
label: 'IP.Country'
|
||||
},
|
||||
{
|
||||
name: 'ip_location_province',
|
||||
type: 'string',
|
||||
// label: this.$t('overall.province')
|
||||
label: 'Province'
|
||||
label: 'IP.Province'
|
||||
},
|
||||
{
|
||||
name: 'ip_location_city',
|
||||
type: 'string',
|
||||
// label: this.$t('overall.city')
|
||||
label: 'City'
|
||||
label: 'IP.City'
|
||||
},
|
||||
{
|
||||
name: 'ip_asn',
|
||||
type: 'string',
|
||||
// label: this.$t('entities.asn')
|
||||
label: 'ASN'
|
||||
label: 'IP.ASN'
|
||||
},
|
||||
{
|
||||
name: 'ip_os',
|
||||
name: 'dns_server_role',
|
||||
type: 'string',
|
||||
label: 'OS'
|
||||
label: 'IP.DNS server role'
|
||||
},
|
||||
{
|
||||
name: 'dns_server_org',
|
||||
type: 'string',
|
||||
label: 'IP.DNS server organization'
|
||||
},
|
||||
{
|
||||
name: 'dns_server_os',
|
||||
type: 'string',
|
||||
label: 'IP.Operating system'
|
||||
},
|
||||
{
|
||||
name: 'dns_server_software',
|
||||
type: 'string',
|
||||
label: 'IP.DNS server software'
|
||||
},
|
||||
{
|
||||
name: 'domain_name',
|
||||
@@ -112,84 +122,122 @@ export default {
|
||||
{
|
||||
name: 'domain_category',
|
||||
type: 'string',
|
||||
// label: this.$t('entities.domainCategory')
|
||||
label: 'Domain category'
|
||||
label: 'Domain.Category'
|
||||
},
|
||||
{
|
||||
name: 'domain_category_group',
|
||||
type: 'string',
|
||||
// label: this.$t('entities.domainDetail.categoryGroup')
|
||||
label: 'Domain category group'
|
||||
},
|
||||
{
|
||||
name: 'domain_reputation_score',
|
||||
type: 'long',
|
||||
// label: this.$t('entities.domainDetail.reputationValue')
|
||||
label: 'Domain reputation score'
|
||||
label: 'Domain.Category group'
|
||||
},
|
||||
{
|
||||
name: 'domain_reputation_level',
|
||||
type: 'string',
|
||||
// label: this.$t('entities.reputationLevel')
|
||||
label: 'Domain reputation level'
|
||||
label: 'Domain.Reputation'
|
||||
},
|
||||
{
|
||||
name: 'domain_whois_email',
|
||||
type: 'string',
|
||||
label: 'Domain whois email'
|
||||
label: 'Domain.Whois email'
|
||||
},
|
||||
{
|
||||
name: 'domain_whois_name_servers',
|
||||
type: 'string',
|
||||
label: 'Domain whois ns'
|
||||
label: 'Domain.Whois nameserver'
|
||||
},
|
||||
{
|
||||
name: 'domain_whois_registrar',
|
||||
type: 'string',
|
||||
label: 'Domain whois registrar'
|
||||
label: 'Domain.Whois registrar'
|
||||
},
|
||||
{
|
||||
name: 'domain_whois_org',
|
||||
type: 'string',
|
||||
label: 'Domain whois organization'
|
||||
label: 'Domain.Whois organization'
|
||||
},
|
||||
{
|
||||
name: 'domain_whois_address',
|
||||
type: 'string',
|
||||
label: 'Domain.Whois address'
|
||||
},
|
||||
{
|
||||
name: 'domain_whois_city',
|
||||
type: 'string',
|
||||
label: 'Domain whois city'
|
||||
label: 'Domain.Whois city'
|
||||
},
|
||||
{
|
||||
name: 'domain_whois_state',
|
||||
type: 'string',
|
||||
label: 'Domain whois state'
|
||||
label: 'Domain.Whois state'
|
||||
},
|
||||
{
|
||||
name: 'domain_whois_country',
|
||||
type: 'string',
|
||||
label: 'Domain whois country'
|
||||
label: 'Domain.Whois country'
|
||||
},
|
||||
{
|
||||
name: 'domain_icp_owner',
|
||||
type: 'string',
|
||||
label: 'Domain.ICP owner'
|
||||
},
|
||||
{
|
||||
name: 'domain_icp_company_name',
|
||||
type: 'string',
|
||||
label: 'Domain.ICP company'
|
||||
},
|
||||
{
|
||||
name: 'domain_icp_company_type',
|
||||
type: 'string',
|
||||
label: 'Domain.ICP company type'
|
||||
},
|
||||
{
|
||||
name: 'domain_icp_site_license',
|
||||
type: 'string',
|
||||
label: 'Domain.ICP site license'
|
||||
},
|
||||
{
|
||||
name: 'domain_icp_site_name',
|
||||
type: 'string',
|
||||
label: 'Domain.ICP site'
|
||||
},
|
||||
{
|
||||
name: 'app_name',
|
||||
type: 'string',
|
||||
label: 'APP'
|
||||
},
|
||||
{
|
||||
name: 'app_id',
|
||||
type: 'string',
|
||||
label: 'APP.ID'
|
||||
},
|
||||
{
|
||||
name: 'app_category',
|
||||
type: 'string',
|
||||
// label: this.$t('trafficSummary.appCategory')
|
||||
label: 'APP category'
|
||||
label: 'APP.Category'
|
||||
},
|
||||
{
|
||||
name: 'app_subcategory',
|
||||
type: 'string',
|
||||
// label: this.$t('entities.domainDetail.appSubcategory')
|
||||
label: 'APP subcategory'
|
||||
label: 'APP.Subcategory'
|
||||
},
|
||||
{
|
||||
name: 'app_risk',
|
||||
type: 'string',
|
||||
// label: this.$t('trafficSummary.appRisk')
|
||||
label: 'APP risk'
|
||||
label: 'APP.Risk'
|
||||
},
|
||||
{
|
||||
name: 'app_description',
|
||||
type: 'string',
|
||||
label: 'APP.Description'
|
||||
},
|
||||
{
|
||||
name: 'app_longname',
|
||||
type: 'string',
|
||||
label: 'APP.Long name'
|
||||
},
|
||||
{
|
||||
name: 'app_technology',
|
||||
type: 'string',
|
||||
label: 'APP.Technology'
|
||||
}
|
||||
],
|
||||
operatorList: ['=', '!=', '>', '<', '>=', '<=', 'IN', 'NOT IN', 'LIKE', 'NOT LIKE'],
|
||||
|
||||
Reference in New Issue
Block a user