CN-1676 fix: 1、修复detection的ruleType为threshold时,详情折线图单个点不显示的问题;2、ruleType为sequence时stage下拉详情的字段动态显示
This commit is contained in:
@@ -57,6 +57,9 @@ $color-regular: var(--el-text-color-regular);
|
|||||||
line-height: 14px;
|
line-height: 14px;
|
||||||
word-break: normal;
|
word-break: normal;
|
||||||
}
|
}
|
||||||
|
.row__label__capitalize {
|
||||||
|
text-transform: capitalize;
|
||||||
|
}
|
||||||
|
|
||||||
.row__charts {
|
.row__charts {
|
||||||
height: 20px;
|
height: 20px;
|
||||||
|
|||||||
@@ -500,12 +500,15 @@ export default {
|
|||||||
generateBreadcrumb (breadcrumb, menus, tab) {
|
generateBreadcrumb (breadcrumb, menus, tab) {
|
||||||
const menu = menus.find(m => m.route === this.route)
|
const menu = menus.find(m => m.route === this.route)
|
||||||
if (menu) {
|
if (menu) {
|
||||||
breadcrumb.unshift({
|
if (menu.code !== 'securityEvents') {
|
||||||
code: menu.code,
|
breadcrumb.unshift({
|
||||||
value: menu.i18n ? this.$t(menu.i18n) : menu.name,
|
code: menu.code,
|
||||||
route: menu.route,
|
value: menu.i18n ? this.$t(menu.i18n) : menu.name,
|
||||||
type: menu.type
|
route: menu.route,
|
||||||
})
|
type: menu.type
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
return true
|
return true
|
||||||
} else {
|
} else {
|
||||||
for (let i = 0; i < menus.length; i++) {
|
for (let i = 0; i < menus.length; i++) {
|
||||||
|
|||||||
@@ -467,7 +467,7 @@ export const lineOption = {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
yAxis: {
|
yAxis: {
|
||||||
max: 100
|
// max: 100
|
||||||
},
|
},
|
||||||
grid: {
|
grid: {
|
||||||
top: '12px',
|
top: '12px',
|
||||||
@@ -482,5 +482,8 @@ export const lineOption = {
|
|||||||
color: '#ff9a79',
|
color: '#ff9a79',
|
||||||
symbol: 'none'
|
symbol: 'none'
|
||||||
}
|
}
|
||||||
]
|
],
|
||||||
|
tooltip: {
|
||||||
|
trigger: 'axis'
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -8,34 +8,20 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="overview__title">{{ $t('detection.detail.stage') }}1</div>
|
<div v-for="(obj, index) in myDetection.eventInfoList" :key="obj.stage_id">
|
||||||
<div class="overview__row">
|
<div class="overview__title margin-t-18">{{ $t('detection.detail.stage') }}{{ index + 1 }}</div>
|
||||||
<div class="row__label">Dns_query</div>
|
<div v-for="(item, fields) in obj" :key="fields">
|
||||||
<div class="row__content">{{ $_.get(myDetection, 'eventInfoList[0].domain', '-') || '-' }}</div>
|
<div class="overview__row" v-if="fields !== 'stage_id'">
|
||||||
</div>
|
<div class="row__label row__label__capitalize">{{ fields }}</div>
|
||||||
<div class="overview__row">
|
<div class="row__content">{{ item || '-' }}</div>
|
||||||
<div class="row__label">Time</div>
|
</div>
|
||||||
<div class="row__content">
|
|
||||||
<i class="cn-icon cn-icon-time2 row__content__icon"></i>
|
|
||||||
{{ myDetection.startTime ? dateFormatByAppearance(myDetection.startTime) : '-' }}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
<div class="overview__row">
|
||||||
<div class="overview__title">{{ $t('detection.detail.stage') }}2</div>
|
<div class="row__label">Time</div>
|
||||||
<div class="overview__row">
|
<div class="row__content">
|
||||||
<div class="row__label">Decoded_as</div>
|
<i class="cn-icon cn-icon-time2 row__content__icon"></i>
|
||||||
<div class="row__content">{{ $_.get(myDetection, 'eventInfoList[1].client_ip', '-') || '-' }}</div>
|
{{ myDetection.startTime ? dateFormatByAppearance(myDetection.startTime) : '-' }}
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<div class="overview__row">
|
|
||||||
<div class="row__label">APP</div>
|
|
||||||
<div class="row__content">{{ $_.get(myDetection, 'eventInfoList[1].app_transition', '-') || '-' }}</div>
|
|
||||||
</div>
|
|
||||||
|
|
||||||
<div class="overview__row">
|
|
||||||
<div class="row__label">Time</div>
|
|
||||||
<div class="row__content">
|
|
||||||
<i class="cn-icon cn-icon-time2 row__content__icon"></i>
|
|
||||||
{{ myDetection.startTime ? dateFormatByAppearance(myDetection.startTime) : '-' }}
|
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@
|
|||||||
<div class="row__content1">
|
<div class="row__content1">
|
||||||
<div class="row__content__charts" :id="`myChart${detection.eventId}`"></div>
|
<div class="row__content__charts" :id="`myChart${detection.eventId}`"></div>
|
||||||
</div>
|
</div>
|
||||||
<div class="row__content1">
|
<div class="row__content1" v-if="seriesDataNum>1">
|
||||||
<div class="charts__visual__map"></div>
|
<div class="charts__visual__map"></div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import { detectionEventType, detectionRuleType } from '@/utils/constants'
|
|||||||
import { getMillisecond, getSecond } from '@/utils/date-util'
|
import { getMillisecond, getSecond } from '@/utils/date-util'
|
||||||
import axios from 'axios'
|
import axios from 'axios'
|
||||||
import { api } from '@/utils/api'
|
import { api } from '@/utils/api'
|
||||||
import { lineOption } from '@/views/detections/options/detectionOptions'
|
import { getSeverityColor, lineOption } from '@/views/detections/options/detectionOptions'
|
||||||
import { markRaw } from 'vue'
|
import { markRaw } from 'vue'
|
||||||
import * as echarts from 'echarts'
|
import * as echarts from 'echarts'
|
||||||
|
|
||||||
@@ -21,7 +21,8 @@ export default {
|
|||||||
timeData: [],
|
timeData: [],
|
||||||
isGroup: 0,
|
isGroup: 0,
|
||||||
myChart: null,
|
myChart: null,
|
||||||
lineOption: lineOption
|
lineOption: lineOption,
|
||||||
|
seriesDataNum: 0
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
mounted () {
|
mounted () {
|
||||||
@@ -72,6 +73,16 @@ export default {
|
|||||||
seriesData.push([getMillisecond(JSON.parse(item.statTime)), item.recordsNums])
|
seriesData.push([getMillisecond(JSON.parse(item.statTime)), item.recordsNums])
|
||||||
})
|
})
|
||||||
this.lineOption.series[0].data = seriesData
|
this.lineOption.series[0].data = seriesData
|
||||||
|
this.lineOption.series[0].color = getSeverityColor(res.data.data.result[0].severity) || '#ff9a79'
|
||||||
|
|
||||||
|
this.seriesDataNum = seriesData.length
|
||||||
|
if (this.seriesDataNum <= 1) {
|
||||||
|
this.lineOption.series[0].symbol = 'circle'
|
||||||
|
this.lineOption.series[0].symbolSize = 9
|
||||||
|
} else {
|
||||||
|
this.lineOption.series[0].symbol = 'none'
|
||||||
|
}
|
||||||
|
|
||||||
this.myChart = markRaw(echarts.init(document.getElementById('myChart' + this.detection.eventId)))
|
this.myChart = markRaw(echarts.init(document.getElementById('myChart' + this.detection.eventId)))
|
||||||
this.myChart.setOption(this.lineOption)
|
this.myChart.setOption(this.lineOption)
|
||||||
} else {
|
} else {
|
||||||
|
|||||||
Reference in New Issue
Block a user