diff --git a/src/assets/css/components/index.scss b/src/assets/css/components/index.scss
index 847a2740..1855d0ab 100644
--- a/src/assets/css/components/index.scss
+++ b/src/assets/css/components/index.scss
@@ -38,6 +38,8 @@
@import './views/charts/chartEchartAppRelateDomain';
@import './views/charts/ChartOneSituationStatistics';
@import './views/charts/ChartTwoSituationStatistics';
+@import './views/charts/chartAlarmInfo';
+@import './views/chartHeader';
//@import '../chart';
diff --git a/src/assets/css/components/views/chartHeader.scss b/src/assets/css/components/views/chartHeader.scss
new file mode 100644
index 00000000..63106ea3
--- /dev/null
+++ b/src/assets/css/components/views/chartHeader.scss
@@ -0,0 +1,42 @@
+.cn-chart-header-button{
+ display: flex;
+ .cn-chart-header-button-all{
+ border: 1px solid #0091FF;
+ color: #0091FF;
+ background-color: #FFFFFF;
+ }
+ .cn-chart-header-button-critical{
+ border: 1px solid #0091FF;
+ color: #0091FF;
+ background-color: #FFFFFF;
+
+ }
+ .cn-chart-header-button-high{
+ border: 1px solid #0091FF;
+ background-color: #FFFFFF;
+ color: #0091FF;
+ }
+ .cn-chart-header-button-low{
+ border: 1px solid #0091FF;
+ background-color: #FFFFFF;
+ color: #0091FF;
+ }
+ .cn-chart-header-button-info{
+ border: 1px solid #0091FF;
+ background-color: #FFFFFF;
+ color: #0091FF;
+ }
+ .cn-chart-header-button-medium{
+ border: 1px solid #0091FF;
+ background-color: #FFFFFF;
+ color: #0091FF;
+ }
+ .el-button--default{
+ height: 24px;
+ border-radius: 2px 0 0 2px;
+ min-height:24px;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/components/views/charts/ChartOneSituationStatistics.scss b/src/assets/css/components/views/charts/ChartOneSituationStatistics.scss
index ce720ee7..902e83eb 100644
--- a/src/assets/css/components/views/charts/ChartOneSituationStatistics.scss
+++ b/src/assets/css/components/views/charts/ChartOneSituationStatistics.scss
@@ -1,10 +1,28 @@
-.situation-statistics-main {
- display: flex;
- align-items: center;
- margin-left: 50px;
- margin-top: 20px;
-
- .situation-statistics-main-right{
- margin-left: 40px;
- }
- }
\ No newline at end of file
+.chart-one-situation-statistics{
+ padding-top: 22px;
+ .situation-statistics-main {
+ display: flex;
+ align-items: center;
+ margin-left: 33px;
+ .situation-statistics-main-left{
+ display: block;
+ width: 76px;
+ height: 76px;
+ .el-progress__text span{
+ font-size: 16px;
+ }
+ }
+ .situation-statistics-main-right{
+ margin-left: 22px;
+ :first-child{
+ font-size: 18px;
+ color: #333;
+ }
+ :last-child{
+ margin-top: 5px;
+ font-size: 14px;
+ color: #666666;
+ }
+ }
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/components/views/charts/ChartTwoSituationStatistics.scss b/src/assets/css/components/views/charts/ChartTwoSituationStatistics.scss
index 847b3c16..884972b8 100644
--- a/src/assets/css/components/views/charts/ChartTwoSituationStatistics.scss
+++ b/src/assets/css/components/views/charts/ChartTwoSituationStatistics.scss
@@ -1,19 +1,28 @@
.chart-two-situation-statistics{
+ padding-top: 22px;
.situation-statistics-top {
display: flex;
align-items: center;
-
- .situation-statistics-main-right{
- margin-left: 40px;
+ margin-left: 33px;
+ padding-top: 22px;
+ .situation-statistics-main-left{
+ display: block;
+ .el-progress__text span{
+ font-size: 16px;
+ }
}
- }
- .situation-statistics-bottom {
- display: flex;
- align-items: center;
-
.situation-statistics-main-right{
- margin-left: 40px;
+ margin-left: 22px;
+ :first-child{
+ font-size: 18px;
+ color: #333;
+ }
+ :last-child{
+ margin-top: 5px;
+ font-size: 14px;
+ color: #666666;
+ }
}
- }
+ }
}
\ No newline at end of file
diff --git a/src/assets/css/components/views/charts/chartAlarmInfo.scss b/src/assets/css/components/views/charts/chartAlarmInfo.scss
new file mode 100644
index 00000000..a67a9aa8
--- /dev/null
+++ b/src/assets/css/components/views/charts/chartAlarmInfo.scss
@@ -0,0 +1,98 @@
+.cn-chart-alarm-info {
+ width: 100%;
+ height: 100%;
+ margin-left: 30px;
+ position: relative;
+ .cn-chart-alarm-info-mainContent{
+ height: calc(100% - 40px) ;
+ width: 100%;
+ .cn-chart-alarm-content {
+ display: flex;
+ justify-content: flex-start;
+ align-items: center;
+ width: 100%;
+ height: calc(100% / 9);
+ border-bottom: 1px solid #E7EAED ;
+ .cn-alarm-info-main {
+ display: flex;
+ .cn-alarm-info-main-left{
+ position: relative;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ .cn-chart-alarm-info-icon {
+ width: 30px;
+ height: 30px;
+ border-radius: 50%;
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ }
+ .cn-icon-alert{
+ width: 12px;
+ position: absolute;
+ top: 13px;
+ left: 7px;
+ }
+ }
+ .cn-alarm-info-textContent{
+ margin-left: 17px;
+ .cn-alarm-info-main-title {
+ font-size: 19px;
+ line-height: 19px;
+ }
+ .cn-alarm-info-bottom {
+ display: flex;
+ font-size: 14px;
+ line-height: 14px;
+ text-align: center;
+ margin-top: 10px;
+
+
+ .cn-alarm-info-bottom-middle {
+ display: flex;
+ margin-left: 20px;
+ height: 14px;
+ .cn-alarm-info-bottom-time {
+ color: #999999;
+ line-height: 14px;
+ font-size: 12px;
+ }
+ }
+
+ .cn-alarm-info-bottom-right {
+ display: flex;
+ justify-content: center;
+ align-items: center;
+ margin-left: 17px;
+ .cn-alarm-info-bottom-time {
+ color: #999999;
+ }
+ }
+
+ .cn-alarm-info-bottom-type {
+ width: auto;
+ height: 16px;
+ font-size: 12px;
+ border: 1px solid;
+ font-weight: 400;
+ }
+
+ .cn-alarm-info-bottom-circle {
+ display: inline-block;
+ width: 5px;
+ height: 5px;
+ border-radius: 50%;
+ }
+ }
+
+ }
+
+ }
+ }
+ }
+ .cn-chart-alarm-info-pagination{
+ height: 40px;
+ width: 100%;
+ }
+}
\ No newline at end of file
diff --git a/src/assets/css/components/views/charts/panel.scss b/src/assets/css/components/views/charts/panel.scss
index b5645b24..52b26691 100644
--- a/src/assets/css/components/views/charts/panel.scss
+++ b/src/assets/css/components/views/charts/panel.scss
@@ -590,3 +590,4 @@
font-size: 12px;
}
}
+
diff --git a/src/utils/api.js b/src/utils/api.js
index 96433455..77237b9c 100644
--- a/src/utils/api.js
+++ b/src/utils/api.js
@@ -95,7 +95,7 @@ export const api = {
listBasic: '/interface/detection/performance/list/basic',
overviewBasic: '/interface/detection/performance/detail/overview/basic'
}
- }
+ },
}
/* panel */
diff --git a/src/views/charts/Chart.vue b/src/views/charts/Chart.vue
index 9a585195..4051874c 100644
--- a/src/views/charts/Chart.vue
+++ b/src/views/charts/Chart.vue
@@ -184,6 +184,7 @@
v-else-if="isSingleSupportStatistics"
:chart-info="chartInfo"
:chart-data="chartData"
+ :query-params="queryParams"
@showLoading="showLoading"
:entity="entity"
>
@@ -192,9 +193,21 @@
v-else-if="isTwoSupportStatistics"
:chart-info="chartInfo"
:chart-data="chartData"
+ :query-params="queryParams"
@showLoading="showLoading"
:entity="entity"
>
+
+
+
@@ -226,6 +239,7 @@ import ChartRelationShip from '@/views/charts/charts/ChartRelationShip'
import ChartSanKey from '@/views/charts/charts/ChartSanKey'
import ChartOneSituationStatistics from '@/views/charts/charts/ChartOneSituationStatistics'
import ChartTwoSituationStatistics from '@/views/charts/charts/ChartTwoSituationStatistics'
+import ChartAlarmInfo from '@/views/charts/charts/ChartAlarmInfo'
import {
isEcharts,
isEchartsLine,
@@ -260,7 +274,8 @@ import {
isAppRelatedDomain,
isBlock,
isSingleSupportStatistics,
- isTwoSupportStatistics
+ isTwoSupportStatistics,
+ isAlarmInfo
} from './charts/tools'
import _ from 'lodash'
@@ -292,7 +307,13 @@ export default {
ChartEchartIpHostedDomain,
ChartEchartAppRelateDomain,
ChartOneSituationStatistics,
- ChartTwoSituationStatistics
+ ChartTwoSituationStatistics,
+ ChartAlarmInfo
+ },
+ data(){
+ return{
+ tabHandleClickType:''
+ }
},
props: {
chartInfo: Object,
@@ -306,7 +327,8 @@ export default {
entity: Object,
isError: Boolean,
table: Object,
- orderPieTable: Object
+ orderPieTable: Object,
+ tabHandleClickType:String
},
computed: {
isNoData () {
@@ -320,7 +342,8 @@ export default {
!this.isActiveIpTable &&
!this.isMap &&
!this.isSingleSupportStatistics &&
- !this.isTwoSupportStatistics
+ !this.isTwoSupportStatistics &&
+ !this.isAlarmInfo
)
},
chartOption () {
@@ -329,7 +352,7 @@ export default {
} else {
return getOption(this.chartInfo.type)
}
- }
+ },
},
methods: {
resize () {
@@ -339,17 +362,26 @@ export default {
showLoading (show) {
this.$emit('showLoading', show)
},
+ getAlarmInfo(url,extraParams){
+ this.$emit('getChartData',url,extraParams)
+ },
initEchartsWithTable () {
this.$refs['chart' + this.chartInfo.id] &&
this.$refs['chart' + this.chartInfo.id].initEchartsWithTable(
`chart${this.chartInfo.id}`
)
- }
+ },
},
watch: {
chartData: {
deep: true,
handler (n) {}
+ },
+ tabHandleClickType:{
+ deep:true,
+ handler(n){
+ this.tabHandleClickType = n
+ }
}
},
setup (props) {
@@ -390,8 +422,9 @@ export default {
isAppBasicInfo: isAppBasicInfo(props.chartInfo.type),
isAppRelatedDomain: isAppRelatedDomain(props.chartInfo.type),
isSingleSupportStatistics: isSingleSupportStatistics(props.chartInfo.type),
- isTwoSupportStatistics: isTwoSupportStatistics(props.chartInfo.type)
+ isTwoSupportStatistics: isTwoSupportStatistics(props.chartInfo.type),
+ isAlarmInfo: isAlarmInfo(props.chartInfo.type),
}
- }
+ },
}
diff --git a/src/views/charts/ChartHeader.vue b/src/views/charts/ChartHeader.vue
index e299c896..aa528860 100644
--- a/src/views/charts/ChartHeader.vue
+++ b/src/views/charts/ChartHeader.vue
@@ -1,124 +1,241 @@
-