diff --git a/src/main.js b/src/main.js index e7fe88c2..b4c912f4 100644 --- a/src/main.js +++ b/src/main.js @@ -6,7 +6,7 @@ import store from '@/store' import App from '@/App.vue' import { hasPermission } from '@/permission' import commonMixin from '@/mixins/common' -import { cancelWithChange, clickOutside, noData } from '@/utils/tools' +import { cancelWithChange, noData } from '@/utils/tools' import { ClickOutside } from 'element-plus/lib/directives' import i18n from '@/i18n' import hljsVuePlugin from '@highlightjs/vue-plugin' @@ -15,19 +15,14 @@ import '@/assets/css/main.scss' // 样式入口 import VueGridLayout from 'vue-grid-layout' import ElementPlus from 'element-plus' import bus from 'tiny-emitter' -import dayjs from 'dayjs' -import utc from 'dayjs/plugin/utc' // dependent on utc plugin -import timezone from 'dayjs/plugin/timezone' -import advancedFormat from 'dayjs/plugin/advancedFormat' -import weekday from 'dayjs/plugin/weekday' import DateTimeRange from '@/components/common/TimeRange/DateTimeRange' import TimeRefresh from '@/components/common/TimeRange/TimeRefresh' import PanelChartList from '@/views/charts/PanelChartList' -const emitter = new bus() - import 'lib-flexible' +const emitter = new bus() + const _ = require('lodash') // lodash工具 /* dayjs.extend(utc) @@ -46,7 +41,6 @@ app.use(hljsVuePlugin) app.use(VueGridLayout) app.directive('has', hasPermission) // 注册指令 -app.directive('click-outside', clickOutside) app.directive('ele-click-outside', ClickOutside) app.directive('cancel', cancelWithChange) app.directive('no-data', noData) diff --git a/src/utils/constants.js b/src/utils/constants.js index c404111e..c9132a6b 100644 --- a/src/utils/constants.js +++ b/src/utils/constants.js @@ -50,7 +50,8 @@ export const panelTypeAndRouteMapping = { ipEntityDetail: 4, domainEntityDetail: 5, appEntityDetail: 6, - cryptocurrency: 7 + cryptocurrency: 7, + ipDrillDownTest: 8 } /* operationLog state 执行状态属性 值与名称之间的映射 */ diff --git a/src/views/charts2/Chart.vue b/src/views/charts2/Chart.vue index cf174a13..794551eb 100644 --- a/src/views/charts2/Chart.vue +++ b/src/views/charts2/Chart.vue @@ -41,6 +41,7 @@ + + + @@ -85,20 +101,23 @@ import Loading from '@/components/common/Loading' import ChartNoData from '@/views/charts/charts/ChartNoData' import { typeMapping } from '@/views/charts2/chart-tools' -import NetworkOverviewLine from '@/views/charts2/charts/NetworkOverviewLine' -import NetworkOverviewDdosDetection from '@/views/charts2/charts/NetworkOverviewDdosDetection' -import NetworkOverviewPerformanceEvent from '@/views/charts2/charts/NetworkOverviewPerformanceEvent' -import NetworkOverviewTabs from '@/views/charts2/charts/NetworkOverviewTabs' -import NetworkOverviewApps from '@/views/charts2/charts/NetworkOverviewApps' -import NpmTabs from '@/views/charts2/charts/NpmTabs' -import NpmAppEventTable from '@/views/charts2/charts/NpmAppEventTable' -import NpmNetworkQuantity from '@/views/charts2/charts/NpmNetworkQuantity' -import NpmAppCategoryScore from '@/views/charts2/charts/NpmAppCategoryScore' -import NpmMap from '@/views/charts2/charts/NpmMap' -import NpmLine from '@/views/charts2/charts/NpmLine' -import NpmEventsByType from '@/views/charts2/charts/NpmEventsByType' -import NpmRecentEvents from '@/views/charts2/charts/NpmRecentEvents' -import NpmEventsHeader from '@/views/charts2/charts/NpmEventsHeader' +import NetworkOverviewLine from '@/views/charts2/charts/networkOverview/NetworkOverviewLine' +import NetworkOverviewDdosDetection from '@/views/charts2/charts/networkOverview/NetworkOverviewDdosDetection' +import NetworkOverviewPerformanceEvent from '@/views/charts2/charts/networkOverview/NetworkOverviewPerformanceEvent' +import NetworkOverviewTabs from '@/views/charts2/charts/networkOverview/NetworkOverviewTabs' +import NetworkOverviewApps from '@/views/charts2/charts/networkOverview/NetworkOverviewApps' +import NpmTabs from '@/views/charts2/charts/npm/NpmTabs' +import NpmAppEventTable from '@/views/charts2/charts/npm/NpmAppEventTable' +import NpmNetworkQuantity from '@/views/charts2/charts/npm/NpmNetworkQuantity' +import NpmAppCategoryScore from '@/views/charts2/charts/npm/NpmAppCategoryScore' +import NpmMap from '@/views/charts2/charts/npm/NpmMap' +import NpmLine from '@/views/charts2/charts/npm/NpmLine' +import NpmEventsByType from '@/views/charts2/charts/npm/NpmEventsByType' +import NpmRecentEvents from '@/views/charts2/charts/npm/NpmRecentEvents' +import NpmEventsHeader from '@/views/charts2/charts/npm/NpmEventsHeader' +import RelatedSessions from '@/views/charts2/charts/npm/RelatedSessions' +import NpmIpMap from '@/views/charts2/charts/npm/NpmIpMap' +import NpmTrafficLine from '@/views/charts2/charts/npm/NpmTrafficLine' import { get } from '@/utils/http' import { getNowTime, getSecond } from '@/utils/date-util' import { ref } from 'vue' @@ -120,7 +139,10 @@ export default { NetworkOverviewApps, NpmTabs, NpmNetworkQuantity, - NpmAppEventTable + NpmAppEventTable, + RelatedSessions, + NpmIpMap, + NpmTrafficLine }, props: { chart: Object, @@ -210,7 +232,6 @@ export default { resizeLine () { this.$nextTick(function () { setTimeout(() => { - console.log(this.$refs) if (this.$refs.networkLine) { this.$refs.networkLine.resize() } diff --git a/src/views/charts2/chart-tools.js b/src/views/charts2/chart-tools.js index e8f66e8d..b17ddf63 100644 --- a/src/views/charts2/chart-tools.js +++ b/src/views/charts2/chart-tools.js @@ -8,11 +8,14 @@ export const typeMapping = { }, npm: { npmMap: 1, + npmIpMap: 2, npmLine: 101, + npmTrafficLine: 104, npmEventsByType: 301, npmAppCategoryScore: 702, npmTabs: 704, npmEventsHeader: 705, + relatedSessions: 706, npmNetworkQuantity: 703, npmRecentEvents: 602, appEventTable: 603 diff --git a/src/views/charts2/charts/NetworkOverviewApps.vue b/src/views/charts2/charts/networkOverview/NetworkOverviewApps.vue similarity index 99% rename from src/views/charts2/charts/NetworkOverviewApps.vue rename to src/views/charts2/charts/networkOverview/NetworkOverviewApps.vue index 498730d2..e2e79d0b 100644 --- a/src/views/charts2/charts/NetworkOverviewApps.vue +++ b/src/views/charts2/charts/networkOverview/NetworkOverviewApps.vue @@ -119,7 +119,7 @@ import { get, put } from '@/utils/http' import { api } from '@/utils/api' import _ from 'lodash' import { getSecond } from '@/utils/date-util' -import { appTestData, appPrevTestData, providerTestData, providerPrevTestData } from './appsTestData' +import { appTestData, appPrevTestData, providerTestData, providerPrevTestData } from '../appsTestData' import { getChainRatio } from '@/utils/tools' export default { name: 'NetworkOverviewApps', diff --git a/src/views/charts2/charts/NetworkOverviewDdosDetection.vue b/src/views/charts2/charts/networkOverview/NetworkOverviewDdosDetection.vue similarity index 100% rename from src/views/charts2/charts/NetworkOverviewDdosDetection.vue rename to src/views/charts2/charts/networkOverview/NetworkOverviewDdosDetection.vue diff --git a/src/views/charts2/charts/NetworkOverviewLine.vue b/src/views/charts2/charts/networkOverview/NetworkOverviewLine.vue similarity index 100% rename from src/views/charts2/charts/NetworkOverviewLine.vue rename to src/views/charts2/charts/networkOverview/NetworkOverviewLine.vue diff --git a/src/views/charts2/charts/NetworkOverviewPerformanceEvent.vue b/src/views/charts2/charts/networkOverview/NetworkOverviewPerformanceEvent.vue similarity index 100% rename from src/views/charts2/charts/NetworkOverviewPerformanceEvent.vue rename to src/views/charts2/charts/networkOverview/NetworkOverviewPerformanceEvent.vue diff --git a/src/views/charts2/charts/NetworkOverviewTabs.vue b/src/views/charts2/charts/networkOverview/NetworkOverviewTabs.vue similarity index 100% rename from src/views/charts2/charts/NetworkOverviewTabs.vue rename to src/views/charts2/charts/networkOverview/NetworkOverviewTabs.vue diff --git a/src/views/charts2/charts/NpmAppCategoryScore.vue b/src/views/charts2/charts/npm/NpmAppCategoryScore.vue similarity index 100% rename from src/views/charts2/charts/NpmAppCategoryScore.vue rename to src/views/charts2/charts/npm/NpmAppCategoryScore.vue diff --git a/src/views/charts2/charts/NpmAppEventTable.vue b/src/views/charts2/charts/npm/NpmAppEventTable.vue similarity index 100% rename from src/views/charts2/charts/NpmAppEventTable.vue rename to src/views/charts2/charts/npm/NpmAppEventTable.vue diff --git a/src/views/charts2/charts/NpmEventsByType.vue b/src/views/charts2/charts/npm/NpmEventsByType.vue similarity index 100% rename from src/views/charts2/charts/NpmEventsByType.vue rename to src/views/charts2/charts/npm/NpmEventsByType.vue diff --git a/src/views/charts2/charts/NpmEventsHeader.vue b/src/views/charts2/charts/npm/NpmEventsHeader.vue similarity index 100% rename from src/views/charts2/charts/NpmEventsHeader.vue rename to src/views/charts2/charts/npm/NpmEventsHeader.vue diff --git a/src/views/charts2/charts/NpmMap.vue b/src/views/charts2/charts/npm/NpmIpMap.vue similarity index 100% rename from src/views/charts2/charts/NpmMap.vue rename to src/views/charts2/charts/npm/NpmIpMap.vue diff --git a/src/views/charts2/charts/NpmLine.vue b/src/views/charts2/charts/npm/NpmLine.vue similarity index 100% rename from src/views/charts2/charts/NpmLine.vue rename to src/views/charts2/charts/npm/NpmLine.vue diff --git a/src/views/charts2/charts/npm/NpmMap.vue b/src/views/charts2/charts/npm/NpmMap.vue new file mode 100644 index 00000000..29e13fd3 --- /dev/null +++ b/src/views/charts2/charts/npm/NpmMap.vue @@ -0,0 +1,217 @@ + + + + + + Server + Client + + + + {{country.label}} + + + + + + {{$t('npm.highScore')}} + + + + {{$t('npm.middleScore')}} + + + + {{$t('npm.lowScore')}} + + + + + + diff --git a/src/views/charts2/charts/NpmNetworkQuantity.vue b/src/views/charts2/charts/npm/NpmNetworkQuantity.vue similarity index 100% rename from src/views/charts2/charts/NpmNetworkQuantity.vue rename to src/views/charts2/charts/npm/NpmNetworkQuantity.vue diff --git a/src/views/charts2/charts/NpmRecentEvents.vue b/src/views/charts2/charts/npm/NpmRecentEvents.vue similarity index 100% rename from src/views/charts2/charts/NpmRecentEvents.vue rename to src/views/charts2/charts/npm/NpmRecentEvents.vue diff --git a/src/views/charts2/charts/NpmTabs.vue b/src/views/charts2/charts/npm/NpmTabs.vue similarity index 60% rename from src/views/charts2/charts/NpmTabs.vue rename to src/views/charts2/charts/npm/NpmTabs.vue index 28f68919..2c25f174 100644 --- a/src/views/charts2/charts/NpmTabs.vue +++ b/src/views/charts2/charts/npm/NpmTabs.vue @@ -2,27 +2,11 @@ - + - - {{$t('overall.overview')}} - - - - - - - - {{$t('overall.location')}} - - - - - - - - {{$t('overall.events')}} + + {{$t(tab.i18n)}} @@ -36,9 +20,13 @@ export default { data () { return { currentTab: 0, - leftOffset: 27 + leftOffset: 27, + tabs: [] } }, + props: { + chart: Object + }, watch: { currentTab (n) { this.$nextTick(() => { @@ -52,10 +40,12 @@ export default { const { offsetLeft, clientWidth, clientLeft } = document.querySelector('.npm-tabs .el-tabs__item.is-active') const activeBar = document.querySelector('.npm-tabs .npm-tabs__active-bar') activeBar.style.cssText += `width: ${clientWidth + 2}px; left: ${offsetLeft + this.leftOffset + clientLeft - 1}px;` - console.info(activeBar.style.left) } }, mounted () { + if (this.chart.params && this.chart.params.tabs) { + this.tabs = this.chart.params.tabs + } setTimeout(() => { this.handleActiveBar(0) }, 200) diff --git a/src/views/charts2/charts/npm/NpmTrafficLine.vue b/src/views/charts2/charts/npm/NpmTrafficLine.vue new file mode 100644 index 00000000..b23902a3 --- /dev/null +++ b/src/views/charts2/charts/npm/NpmTrafficLine.vue @@ -0,0 +1,9 @@ + + + + + diff --git a/src/views/charts2/charts/npm/RelatedSessions.vue b/src/views/charts2/charts/npm/RelatedSessions.vue new file mode 100644 index 00000000..71e05f76 --- /dev/null +++ b/src/views/charts2/charts/npm/RelatedSessions.vue @@ -0,0 +1,9 @@ + + + + +