From 67823891aa7383841231aa133dc4c81c0722a897 Mon Sep 17 00:00:00 2001 From: zhangyu Date: Wed, 22 Feb 2023 15:29:17 +0800 Subject: [PATCH] =?UTF-8?q?feat=EF=BC=9A=20topo=20=E6=B7=BB=E5=8A=A0=20too?= =?UTF-8?q?ltip=20=EF=BC=8830%=EF=BC=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../common/project/meta2d/js/meta2dMain.js | 30 +++++- .../common/project/meta2d/js/topoUtil.js | 14 ++- .../common/project/meta2d/meta2dElement.vue | 50 ++++++++-- .../common/project/meta2d/meta2dMain.vue | 12 ++- .../common/project/meta2d/meta2dTooltip.vue | 91 +++++++++++++++++++ 5 files changed, 180 insertions(+), 17 deletions(-) create mode 100644 nezha-fronted/src/components/common/project/meta2d/meta2dTooltip.vue diff --git a/nezha-fronted/src/components/common/project/meta2d/js/meta2dMain.js b/nezha-fronted/src/components/common/project/meta2d/js/meta2dMain.js index e2ba24b77..9be357287 100644 --- a/nezha-fronted/src/components/common/project/meta2d/js/meta2dMain.js +++ b/nezha-fronted/src/components/common/project/meta2d/js/meta2dMain.js @@ -14,7 +14,6 @@ import { myCubeAnchors } from '../../L5/services/canvas.js' import { getTopology, setTopology, dealImg, topologyImg } from '@/components/common/js/common' -import { getMetricTypeValue } from '@/components/common/js/tools' import bus from '@/libs/bus' import topoUtil from '@/components/common/project/meta2d/js/topoUtil' export default { @@ -23,7 +22,18 @@ export default { selectPens: [], editFlag: false, prevFlag: false, - meta2dLoading: true + meta2dLoading: true, + position: { + top: 50, + left: 0 + }, + chartParams: { + chartType: 'line', + content: '', + legends: [], + title: '', + titleShow: true, + } } }, mixins: [topoUtil], @@ -72,6 +82,7 @@ export default { const endTime = new Date().getTime() const startTime = endTime - 60 * 5 * 1000 this.getQueryValues(this.querysArray, startTime, endTime).then((arr) => { + console.log(arr) this.clacTopoData(this.topoData, arr).then((data) => { getTopology(this.meta2dId).resize() getTopology(this.meta2dId).open(data) @@ -88,7 +99,7 @@ export default { params: { // 用于编辑时 重置为节点初始状态 background: pen.background || '#22222200', color: pen.color || '#222222ff', - textColor: pen.textColor || '#222222ff', + textColor: pen.textColor || '#222222ff' }, imageId: '', valueMapping: [], @@ -183,8 +194,17 @@ export default { this.selectPens = [] } }, - penEnter (pens) { // 移入节点 - // console.log(pens) + penEnter (pen) { // 移入节点 + console.log(pen, 'penEnter') + if (!pen.type) { + this.chartParams = { + ...pen.data.tooltip, + unit: this.params.unit, + statistic: this.params.statistic + } + // this.chartParams.type = 'line' + // this.chartParams.values = pens.data.values + } }, penLeave (pens) { // 移出节点 // console.log(pens) diff --git a/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js b/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js index 599f04a72..89ef543b6 100644 --- a/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js +++ b/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js @@ -1,7 +1,7 @@ import { getTopology, setTopology, dealImg, topologyImg } from '@/components/common/js/common' import bus from '@/libs/bus' import axios from 'axios' -import {getMetricTypeValue} from "@/components/common/js/tools"; +import { getMetricTypeValue } from '@/components/common/js/tools' export default { methods: { topoResize (id) { @@ -76,6 +76,8 @@ export default { id: rindex + elements[index].name + JSON.stringify(r.metric), name: this.handleLegendAlias(legend, elements[index].legend, r.metric), values: r.values, + metric: r.metric || {}, + elements: elements[index], parent: elements[index].name } arr.push(obj) @@ -130,7 +132,6 @@ export default { } }, clacTopoData (data, queryValues) { // 主要处理 属性为原始属性 处理动画属性对原始属性的影响 - console.log(this.params) return new Promise(resolve => { // 处理加载数据 if (!data.pens) { data.pens = [] @@ -139,8 +140,11 @@ export default { if (pen.isNz) { if (pen.data.legend) { const findItem = queryValues.find(query => query.name === pen.data.legend && query.parent === pen.data.parent) - pen.data.value = getMetricTypeValue(findItem.values, pen.data.statistic || 'last') - this.selectMapping(pen) + console.log(findItem) + if (findItem) { + pen.data.value = getMetricTypeValue(findItem.values, this.params.statistic || 'last') + this.selectMapping(pen) + } } } else { // 处理 le5le的数据 @@ -191,6 +195,6 @@ export default { pen.autoPlay = true } } - }, + } } } diff --git a/nezha-fronted/src/components/common/project/meta2d/meta2dElement.vue b/nezha-fronted/src/components/common/project/meta2d/meta2dElement.vue index 744527134..680a63ec5 100644 --- a/nezha-fronted/src/components/common/project/meta2d/meta2dElement.vue +++ b/nezha-fronted/src/components/common/project/meta2d/meta2dElement.vue @@ -887,17 +887,48 @@
-
+
- color + Title
- +
+
+
+ Type +
+
+ +
+
+
+
+ Content +
+
+ +
+
+
+
+ Legends +
+
+
+ + + +
+
+ + + +
+
+
jia
+
@@ -1144,6 +1175,13 @@ export default { } } this.$set(this.pen.data.valueMapping, index, this.pen.data.valueMapping[index]) + }, + addTooltipLegend () { + this.pen.data.tooltip.legends.push({ + parent: '', + legend: '', + alias: '' + }) } } diff --git a/nezha-fronted/src/components/common/project/meta2d/meta2dMain.vue b/nezha-fronted/src/components/common/project/meta2d/meta2dMain.vue index a9becf547..400bd84fc 100644 --- a/nezha-fronted/src/components/common/project/meta2d/meta2dMain.vue +++ b/nezha-fronted/src/components/common/project/meta2d/meta2dMain.vue @@ -13,6 +13,14 @@ :meta2dId="meta2dId" @updatePens="updatePens" /> + @@ -20,6 +28,7 @@ import meta2dHeader from '@/components/common/project/meta2d/meta2dHeader' import meta2dProps from '@/components/common/project/meta2d/meta2dProps' import meta2dMain from '@/components/common/project/meta2d/js/meta2dMain' +import meta2dTooltip from '@/components/common/project/meta2d/meta2dTooltip' import { getTopology, setTopology } from '@/components/common/js/common' import topoUtil from '@/components/common/project/meta2d/js/topoUtil' import bus from '@/libs/bus' @@ -39,7 +48,8 @@ export default { }, components: { meta2dHeader, - meta2dProps + meta2dProps, + meta2dTooltip }, watch: { topoData: { diff --git a/nezha-fronted/src/components/common/project/meta2d/meta2dTooltip.vue b/nezha-fronted/src/components/common/project/meta2d/meta2dTooltip.vue new file mode 100644 index 000000000..cb3c74f78 --- /dev/null +++ b/nezha-fronted/src/components/common/project/meta2d/meta2dTooltip.vue @@ -0,0 +1,91 @@ + + + + +