diff --git a/nezha-fronted/src/assets/css/components/common/alert/alertLabel.scss b/nezha-fronted/src/assets/css/components/common/alert/alertLabel.scss index e2db4c7ce..5d7fcaea6 100644 --- a/nezha-fronted/src/assets/css/components/common/alert/alertLabel.scss +++ b/nezha-fronted/src/assets/css/components/common/alert/alertLabel.scss @@ -63,6 +63,12 @@ position: absolute; } } +.no-position-alert-label { + .alert-label.alert-label__border{ + border: none !important; + position: unset; + } +} //.alert-label::after, .alert-labelUp::after { // content: ''; // display: block; diff --git a/nezha-fronted/src/assets/css/components/common/alert/alertMessageInfo.scss b/nezha-fronted/src/assets/css/components/common/alert/alertMessageInfo.scss index 56511bf41..7061ddbb2 100644 --- a/nezha-fronted/src/assets/css/components/common/alert/alertMessageInfo.scss +++ b/nezha-fronted/src/assets/css/components/common/alert/alertMessageInfo.scss @@ -59,10 +59,6 @@ overflow-y: auto; } } - .alert-label.alert-label__border{ - border: none !important; - position: unset; - } } } .info-box-right{ @@ -71,7 +67,54 @@ border: 1px solid #E7EAED; border-radius: 2px; box-sizing: border-box; - padding: 20px; + padding: 0px 20px 20px 0; + .time-line-header{ + padding: 20px; + font-size: 16px; + color: $--color-text-primary; + font-weight: 600; + } + .el-timeline{ + height: calc(100% - 80px); + overflow-y: auto; + padding-top: 14px; + padding-left: 40px; + box-sizing: border-box; + .el-timeline-item{ + padding-bottom: 24px; + } + .has-time{ + padding-top: 36px; + .el-timeline-item__tail{ + height: calc(100% + 14px); + top: -14px; + } + } + .el-timeline-item:last-child .el-timeline-item__tail{ + display: block; + top: -100%; + } + .el-timeline-item:last-child .el-timeline-item__tail.only{ + display: block; + top: -100%; + } + .el-timeline-item__timestamp.is-top{ + position: absolute; + top: -40px; + left: -20px; + font-size: 14px; + color: $--color-text-regular; + font-weight: 600; + background: $--background-color-empty; + margin: 0; + padding: 10px 0; + } + .time-line-item-header{ + font-size: 14px; + color: #333333; + font-weight: 400; + } + } } .table-no-data { width: 100%; diff --git a/nezha-fronted/src/assets/css/components/common/table/alert/alertMessageTable.scss b/nezha-fronted/src/assets/css/components/common/table/alert/alertMessageTable.scss index 5c380bfa0..bf2876791 100644 --- a/nezha-fronted/src/assets/css/components/common/table/alert/alertMessageTable.scss +++ b/nezha-fronted/src/assets/css/components/common/table/alert/alertMessageTable.scss @@ -104,5 +104,5 @@ .alert-message-state{ padding: 3px 5px; border-radius: 4px; - color: $--color-text-primary; + color: $--color-text-label; } diff --git a/nezha-fronted/src/assets/css/themes/theme-dark.scss b/nezha-fronted/src/assets/css/themes/theme-dark.scss index 11ef03a7e..86a16ff18 100644 --- a/nezha-fronted/src/assets/css/themes/theme-dark.scss +++ b/nezha-fronted/src/assets/css/themes/theme-dark.scss @@ -41,6 +41,8 @@ $--color-text-secondary: #999998; $--color-text-link: #3C92F1; // 禁用字色 $--color-text-disabled: #505050; +// 标签内白色 +$--color-text-label: #505050; /* 4.边框色 */ // 普通边框色 diff --git a/nezha-fronted/src/assets/css/themes/theme-light.scss b/nezha-fronted/src/assets/css/themes/theme-light.scss index 8ceb5e38a..9807384e4 100644 --- a/nezha-fronted/src/assets/css/themes/theme-light.scss +++ b/nezha-fronted/src/assets/css/themes/theme-light.scss @@ -41,6 +41,8 @@ $--color-text-secondary: #999998; $--color-text-link: #3C92F1; // 禁用字色 $--color-text-disabled: #FFFFFF; +// 标签内白色 +$--color-text-label: #FFFFFF; /* 4.边框色 */ // 普通边框色(覆盖element-ui内置变量) diff --git a/nezha-fronted/src/components/common/alert/alertDaysInfo.vue b/nezha-fronted/src/components/common/alert/alertDaysInfo.vue index 7337fe689..36d7cab25 100644 --- a/nezha-fronted/src/components/common/alert/alertDaysInfo.vue +++ b/nezha-fronted/src/components/common/alert/alertDaysInfo.vue @@ -25,7 +25,7 @@ export default { daysData: [], severityData: this.$store.getters.severityData, severityDataWeight: this.$store.getters.severityDataWeight, - dateFormatStr: localStorage.getItem('nz-default-dateFormat') ? localStorage.getItem('nz-default-dateFormat') : 'YYYY-MM-DD' + dateFormatStr: localStorage.getItem('nz-default-dateFormat') ? localStorage.getItem('nz-default-dateFormat') : 'YYYY-MM-DD HH:ss:mm' } }, // watch: { diff --git a/nezha-fronted/src/components/common/alert/alertMessageInfo.vue b/nezha-fronted/src/components/common/alert/alertMessageInfo.vue index 6c1316f18..ccac3a110 100644 --- a/nezha-fronted/src/components/common/alert/alertMessageInfo.vue +++ b/nezha-fronted/src/components/common/alert/alertMessageInfo.vue @@ -17,7 +17,7 @@ @close="showFullscreen" class="alert-message-info-header" > - active + {{$t(stateOptions.find(state=>state.value == infoData['state']).label)}} @@ -42,10 +42,11 @@ >
- +
@@ -55,7 +56,7 @@ import ChartScreenHeader from '@/components/chart/ChartScreenHeader' import chart from '@/components/chart/chart' import { isChartPie, isTimeSeries, getGroupHeight, isGroup } from '@/components/chart/chart/tools' -import { chartType, fromRoute } from '@/components/common/js/constants' +import {alertMessage as alertMessageConstant, chartType, fromRoute} from '@/components/common/js/constants' import bus from '@/libs/bus' import axios from 'axios' import chartTempData from '@/components/charts/chartTempData' @@ -63,7 +64,6 @@ import logsData from '@/components/chart/logsData' import lodash from 'lodash' import alertMessageInfoTab from '@/components/common/alert/alertMessageInfoTab' import alertMessageInfoTimeLine from '@/components/common/alert/alertMessageInfoTimeLine' - export default { name: 'panelChart', components: { @@ -96,7 +96,12 @@ export default { allDataLength: 0, severityData: this.$store.getters.severityData, severityDataWeight: this.$store.getters.severityDataWeight, - infoData: {} + infoData: {}, + timeLineData: [], + tabNoData: false, + timeLineNoData: false, + time: [], + stateOptions: alertMessageConstant.states } }, computed: { @@ -152,6 +157,7 @@ export default { const step = bus.getStep(startTime, endTime) startTime = this.$stringTimeParseToUnix(startTime) endTime = this.$stringTimeParseToUnix(endTime) + this.time = [startTime, endTime] const elements = this.chartInfo.elements || [] this.chartInfo.loaded && this.query(elements, startTime, endTime, step, params) }, @@ -311,13 +317,13 @@ export default { this.$emit('showFullscreen', show, this.chartInfo) }, getAlertMessageInfo () { - this.nodata = false + this.tabNoData = false this.$get('/alert/message/' + this.chartInfo.id).then(res => { if (res.code === 200) { this.infoData = res.data - this.nodata = false + this.tabNoData = false } else { - this.nodata = true + this.tabNoData = true } }) } diff --git a/nezha-fronted/src/components/common/alert/alertMessageInfoTab.vue b/nezha-fronted/src/components/common/alert/alertMessageInfoTab.vue index feb5053f2..af088b79e 100644 --- a/nezha-fronted/src/components/common/alert/alertMessageInfoTab.vue +++ b/nezha-fronted/src/components/common/alert/alertMessageInfoTab.vue @@ -5,7 +5,7 @@
-
+
-
- +
+
+ {{$t('alert.relatedAlerts')}} +
+ + +
+
+ {{$t(stateOptions.find(state=>state.value == item['state']).label)}} + {{item.alertRule.name}} +
+
+ + + + {{label.value}} + + + +
+
+
+
+