diff --git a/src/assets/css/components/views/detections/detection-list/row.scss b/src/assets/css/components/views/detections/detection-list/row.scss index 66bb1bdb..25a3242f 100644 --- a/src/assets/css/components/views/detections/detection-list/row.scss +++ b/src/assets/css/components/views/detections/detection-list/row.scss @@ -164,3 +164,68 @@ } } } + +.security.cn-detection--list,.service.cn-detection--list { + height: 100%; + flex-direction: column; + justify-content: space-between; + .cn-detection__case { + background: #FFFFFF; + border: 1px solid #E7EAED; + border-radius: 2px; + margin-bottom: 10px; + } + .cn-detection__case { + padding: 18px 0; + flex: unset; + } + .cn-detection__header { + margin-bottom: 8px; + } + .cn-detection__case-severity { + display: flex; + width: 38px; + height: 34px; + text-align: center; + margin: auto; + margin-right: 20px; + margin-left: 29px; + line-height: 34px; + i { + font-size: 40px; + } + } + .el-pagination__jump { + margin-left: 0 !important; + } + .cn-detection__footer { + background: #FFFFFF; + position: relative; + box-shadow: 0 0 4px 0 rgba(0,0,0,0.06); + .el-pagination__total { + position: absolute; + left: 0; + } + } + .domain.cn-detection-domain { + height: 20px; + line-height: 20px !important; + padding: 0 4px; + font-style: italic; + } + .critical { + color: #D84C4C !important; + } + .high { + color: #FF9A79 !important; + } + .info { + color: #D1BD50 !important; + } + .medium { + color: #FFB65A !important; + } + .low { + color: #FFD82D !important; + } +} diff --git a/src/views/charts/Chart.vue b/src/views/charts/Chart.vue index 8f19c0e6..1e5eafab 100644 --- a/src/views/charts/Chart.vue +++ b/src/views/charts/Chart.vue @@ -247,6 +247,24 @@ v-else-if="isDomainRecursiveResolve" > + + + + @@ -280,6 +298,8 @@ import ChartOneSituationStatistics from '@/views/charts/charts/ChartOneSituation import ChartTwoSituationStatistics from '@/views/charts/charts/ChartTwoSituationStatistics' import ChartAlarmInfo from '@/views/charts/charts/ChartAlarmInfo' import ChartDomainRecursiveResolve from '@/views/charts/charts/ChartDomainRecursiveResolve' +import chartDetectionSecurity from '@/views/charts/charts/chartDetectionSecurity' +import chartDetectionService from '@/views/charts/charts/chartDetectionService' import { isEcharts, isEchartsLine, @@ -315,7 +335,9 @@ import { isSingleSupportStatistics, isTwoSupportStatistics, isAlarmInfo, - isDomainRecursiveResolve + isDomainRecursiveResolve, + isDetectionSecurity, + isDetectionService } from './charts/tools' import _ from 'lodash' @@ -349,7 +371,9 @@ export default { ChartOneSituationStatistics, ChartTwoSituationStatistics, ChartAlarmInfo, - ChartDomainRecursiveResolve + ChartDomainRecursiveResolve, + chartDetectionSecurity, + chartDetectionService }, data () { return { @@ -385,7 +409,9 @@ export default { !this.isMap && !this.isSingleSupportStatistics && !this.isTwoSupportStatistics && - !this.isAlarmInfo + !this.isAlarmInfo && + !this.isDetectionSecurity && + !this.isDetectionService ) }, chartOption () { @@ -410,6 +436,9 @@ export default { getChartData (url, extraParams) { this.$emit('getChartData', url, extraParams) }, + getDetectionData (url, extraParams, isRefresh, timeFilter) { + this.$emit('getChartData', url, extraParams, isRefresh, timeFilter) + }, initEchartsWithTable () { this.$refs['chart' + this.chartInfo.id] && this.$refs['chart' + this.chartInfo.id].initEchartsWithTable( @@ -424,8 +453,15 @@ export default { tabHandleClickType: { deep: true, handler (n) { + console.log(n) this.tabHandleClickType = n } + }, + chartData: { + deep: true, + immediate: true, + handler (n) { + } } }, setup (props) { @@ -467,7 +503,9 @@ export default { ), isTwoSupportStatistics: isTwoSupportStatistics(props.chartInfo.type), isAlarmInfo: isAlarmInfo(props.chartInfo.type), - isDomainRecursiveResolve: isDomainRecursiveResolve(props.chartInfo.type) + isDomainRecursiveResolve: isDomainRecursiveResolve(props.chartInfo.type), + isDetectionSecurity: isDetectionSecurity(props.chartInfo.type), + isDetectionService: isDetectionService(props.chartInfo.type) } } } diff --git a/src/views/charts/PanelChart.vue b/src/views/charts/PanelChart.vue index 0231cb34..a2ec8fb2 100644 --- a/src/views/charts/PanelChart.vue +++ b/src/views/charts/PanelChart.vue @@ -7,7 +7,7 @@ > + + / {{totalPage}} + + + + diff --git a/src/views/charts/charts/chartDetectionSecurity.vue b/src/views/charts/charts/chartDetectionSecurity.vue new file mode 100644 index 00000000..56594960 --- /dev/null +++ b/src/views/charts/charts/chartDetectionSecurity.vue @@ -0,0 +1,85 @@ + + + diff --git a/src/views/charts/charts/chartDetectionService.vue b/src/views/charts/charts/chartDetectionService.vue new file mode 100644 index 00000000..6d5149f5 --- /dev/null +++ b/src/views/charts/charts/chartDetectionService.vue @@ -0,0 +1,83 @@ + + + diff --git a/src/views/charts/charts/tools.js b/src/views/charts/charts/tools.js index 859f246a..6f060f6f 100644 --- a/src/views/charts/charts/tools.js +++ b/src/views/charts/charts/tools.js @@ -189,6 +189,13 @@ export function isBlock (type) { return type === 805 } +export function isDetectionSecurity (type) { + return type === 709 +} + +export function isDetectionService (type) { + return type === 710 +} /* 根据type获取图表分类 */ const typeCategory = { MAP: 'map', diff --git a/src/views/detections/detectionsTable.vue b/src/views/detections/detectionsTable.vue new file mode 100644 index 00000000..4be334cc --- /dev/null +++ b/src/views/detections/detectionsTable.vue @@ -0,0 +1,108 @@ + + +