diff --git a/nezha-fronted/src/assets/css/components/chart/chart.scss b/nezha-fronted/src/assets/css/components/chart/chart.scss index 853d3480a..09685600d 100644 --- a/nezha-fronted/src/assets/css/components/chart/chart.scss +++ b/nezha-fronted/src/assets/css/components/chart/chart.scss @@ -275,3 +275,8 @@ overflow: hidden; } } +.chart-diagram{ + height: 100%; + width: 100%; + box-sizing: border-box; +} diff --git a/nezha-fronted/src/components/chart/chart.vue b/nezha-fronted/src/components/chart/chart.vue index 2f2597d20..741d297c8 100644 --- a/nezha-fronted/src/components/chart/chart.vue +++ b/nezha-fronted/src/components/chart/chart.vue @@ -33,6 +33,7 @@ :chart-data="chartData" :chart-info="chartInfo" :chart-option="chartOption" + :is-fullscreen="isFullscreen" > + @@ -93,7 +107,7 @@ import chartTreemap from './chart/chartTreemap' import chartUrl from './chart/chartUrl' import chartValue from './chart/chartValue' import chartHexagon from './chart/chartHexagon' -import { getOption, isTimeSeries, isHexagonFigure, isUrl, isText, isChartPie, isChartBar, isTreemap, isLog, isStat } from './chart/tools' +import { getOption, isTimeSeries, isHexagonFigure, isUrl, isText, isChartPie, isChartBar, isTreemap, isLog, isStat, isDiagram } from './chart/tools' import lodash from 'lodash' export default { @@ -148,6 +162,7 @@ export default { isTreemap, isLog, isStat, + isDiagram, resize () { this.$refs['chart' + this.chartInfo.id].resize() } diff --git a/nezha-fronted/src/components/chart/chart/chartDiagram.vue b/nezha-fronted/src/components/chart/chart/chartDiagram.vue index 3a093e07d..7e20020cd 100644 --- a/nezha-fronted/src/components/chart/chart/chartDiagram.vue +++ b/nezha-fronted/src/components/chart/chart/chartDiagram.vue @@ -1,10 +1,33 @@ diff --git a/nezha-fronted/src/components/chart/chart/tools.js b/nezha-fronted/src/components/chart/chart/tools.js index ad381c12f..c851072ea 100644 --- a/nezha-fronted/src/components/chart/chart/tools.js +++ b/nezha-fronted/src/components/chart/chart/tools.js @@ -76,6 +76,9 @@ export function isLog (type) { export function isStat (type) { return type === chartType.stat } +export function isDiagram (type) { + return type === chartType.diagram +} export function initColor (colorNum = 20) { const colorList = [ diff --git a/nezha-fronted/src/components/chart/panelChart.vue b/nezha-fronted/src/components/chart/panelChart.vue index 8d5aec248..2a1706e4b 100644 --- a/nezha-fronted/src/components/chart/panelChart.vue +++ b/nezha-fronted/src/components/chart/panelChart.vue @@ -138,6 +138,9 @@ export default { this.loading = false }) } + if (this.chartInfo.type === 'diagram') { + this.chartData = [this.chartInfo.param.topo] + } break } } diff --git a/nezha-fronted/src/components/common/ChartDiagram/diagram.vue b/nezha-fronted/src/components/common/ChartDiagram/diagram.vue index b08e477ea..065699562 100644 --- a/nezha-fronted/src/components/common/ChartDiagram/diagram.vue +++ b/nezha-fronted/src/components/common/ChartDiagram/diagram.vue @@ -2075,7 +2075,11 @@ export default { /* tools 方法 */ winResize () { - setTimeout(() => { + if (this.timer) { + clearTimeout(this.timer) + this.timer = null + } + this.timer = setTimeout(() => { const dom = document.getElementById('topology-canvas' + this.topologyIndex) const domRect = dom ? dom.getBoundingClientRect() : {} getTopology(this.topologyIndex).canvasPos = domRect @@ -2083,7 +2087,6 @@ export default { getTopology(this.topologyIndex).open(this.oldTopologyData) } let flag = false - const position = { x: this.$refs['topology-canvas' + this.topologyIndexF].offsetWidth, y: this.$refs['topology-canvas' + this.topologyIndexF].offsetHeight @@ -2097,8 +2100,11 @@ export default { flag = true } }) + getTopology(this.topologyIndex).resize() getTopology(this.topologyIndex).centerView() - this.getNodesArr() + clearTimeout(this.timer) + this.timer = null + // this.getNodesArr() }, 100) }, contextmenuNone () {