From a24401a87c589301efd9f4584baddc6239762d3c Mon Sep 17 00:00:00 2001 From: hi2hi Date: Thu, 10 Apr 2025 12:04:31 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20=E6=96=B0=E5=A2=9E=E7=BD=91?= =?UTF-8?q?=E7=BB=9C=E7=9B=91=E6=8E=A7=E6=8A=98=E7=BA=BF=E5=9B=BE=E6=8B=86?= =?UTF-8?q?=E5=88=86=E4=B8=BA=E5=8D=95=E7=8B=AC=E5=9B=BE=E8=A1=A8=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- public/config.js | 2 + src/components/charts/line.js | 20 -- src/components/charts/line.vue | 7 +- .../server-detail/server-monitor.vue | 288 ++++++++++++------ 4 files changed, 192 insertions(+), 125 deletions(-) diff --git a/public/config.js b/public/config.js index 796b24f..10a7a0a 100644 --- a/public/config.js +++ b/public/config.js @@ -33,6 +33,8 @@ window.$$nazhuaConfig = { // hideTag: false, // 隐藏标签 // hideDotBG: true, // 隐藏框框里面的点点背景 // monitorRefreshTime: 10, // 监控刷新时间间隔,单位s(秒), 0为不刷新,为保证不频繁请求源站,最低生效值为10s + monitorChartType: 'multi', // 监控图表类型 single/multi + monitorChartTypeToggle: true, // 监控图表类型切换 // filterGPUKeywords: ['Virtual Display'], // 如果GPU名称中包含这些关键字,则过滤掉 // customCodeMap: {}, // 自定义的地图点信息 // nezhaVersion: 'v1', // 哪吒版本 diff --git a/src/components/charts/line.js b/src/components/charts/line.js index 28b902b..5abcf89 100644 --- a/src/components/charts/line.js +++ b/src/components/charts/line.js @@ -3,7 +3,6 @@ import { SVGRenderer } from 'echarts/renderers'; import { LineChart } from 'echarts/charts'; import { TooltipComponent, - // LegendComponent, GridComponent, DataZoomComponent, } from 'echarts/components'; @@ -15,13 +14,11 @@ use([ SVGRenderer, LineChart, TooltipComponent, - // LegendComponent, GridComponent, DataZoomComponent, ]); export default ( - cateList, dateList, valueList, mode = 'dark', @@ -69,23 +66,6 @@ export default ( fontSize: 14, }, }, - // legend: { - // show: false, - // data: cateList.map((i) => ({ - // name: i.name, - // itemStyle: { - // color: i.color, - // }, - // lineStyle: { - // color: i.color, - // }, - // })), - // textStyle: { - // color: mode === 'dark' ? '#ddd' : '#222', - // fontFamily, - // fontSize: 14, - // }, - // }, grid: { top: 10, left: 5, diff --git a/src/components/charts/line.vue b/src/components/charts/line.vue index 3729caf..fac77e9 100644 --- a/src/components/charts/line.vue +++ b/src/components/charts/line.vue @@ -25,10 +25,6 @@ import VChart from 'vue-echarts'; import lineChart from './line'; const props = defineProps({ - cateList: { - type: Array, - default: () => [], - }, dateList: { type: Array, default: () => [], @@ -45,9 +41,8 @@ const props = defineProps({ const chartRef = ref(); const option = computed(() => { - if (props.cateList && props.dateList && props.valueList) { + if (props.dateList && props.valueList) { return lineChart( - props.cateList, props.dateList, props.valueList, ); diff --git a/src/views/components/server-detail/server-monitor.vue b/src/views/components/server-detail/server-monitor.vue index d0f2eed..b54f27e 100644 --- a/src/views/components/server-detail/server-monitor.vue +++ b/src/views/components/server-detail/server-monitor.vue @@ -11,6 +11,22 @@
+
+ 聚合 +
+ +
+
-
- +
- + + @@ -175,6 +240,14 @@ const showCates = ref({}); const monitorData = ref([]); const longPressTimer = ref(null); +const chartType = ref(config.nazhua.monitorChartType === 'single' ? 'single' : 'multi'); +const monitorChartType = computed(() => { + if (config.nazhua.monitorChartTypeToggle) { + return chartType.value; + } + return config.nazhua.monitorChartType; +}); + const now = ref(Date.now()); const accpetShowTime = computed(() => now.value - (minute.value * 60 * 1000)); @@ -314,6 +387,10 @@ function switchRefresh() { refreshData.value = !refreshData.value; } +function switchChartType() { + chartType.value = chartType.value === 'single' ? 'multi' : 'single'; +} + function toggleMinute(value) { now.value = store.state.serverTime || Date.now(); minute.value = value; @@ -400,6 +477,51 @@ onUnmounted(() => {