diff --git a/nezha-fronted/src/components/common/mixin/mainMixinFun.js b/nezha-fronted/src/components/common/mixin/mainMixinFun.js index 986b7daec..81e127835 100644 --- a/nezha-fronted/src/components/common/mixin/mainMixinFun.js +++ b/nezha-fronted/src/components/common/mixin/mainMixinFun.js @@ -111,6 +111,47 @@ export default { node.addEventListener('animationend', handleAnimationEnd, { once: true }) }) + }, + handleLegendAlias (legend, aliasExpression, params) { + const self = this + const myParams = JSON.parse(JSON.stringify(params)) + myParams.$labels = JSON.parse(JSON.stringify(params)) + myParams.$value = myParams.value + if (/\{\{.+\}\}/.test(aliasExpression)) { + const labelValue = aliasExpression.replace(/(\{\{.+?\}\})/g, function (i) { + const label = i.substr(i.indexOf('{{') + 2, i.indexOf('}}') - i.indexOf('{{') - 2) + if (!legend) { + return label + } + let value = null + if (params && self.$lodash.get(myParams, label)) { + value = self.$lodash.get(myParams, label) + } + if (label) { + const reg = new RegExp(label + '=".+?"', 'g') + if (reg.test(legend)) { + const ans = legend.match(reg) + let find = '' + ans.forEach(item => { + const index = legend.indexOf(item) + if (legend[index - 1] !== '_') { + find = item + } + }) + value = find.substr(find.indexOf('"') + 1, find.lastIndexOf('"') - find.indexOf('"') - 1) + } + } + return value || '' + }) + return labelValue + } else { + if (!aliasExpression) { + return legend + // let result =legend.substr(legend.indexOf('"') + 1,legend.lastIndexOf('"') - legend.indexOf('"') - 1); + // return result + } + return aliasExpression + } } } } diff --git a/nezha-fronted/src/components/common/project/meta2d/js/meta2dMainCalc.js b/nezha-fronted/src/components/common/project/meta2d/js/meta2dMainCalc.js index 89d8e95e6..8da8b4c93 100644 --- a/nezha-fronted/src/components/common/project/meta2d/js/meta2dMainCalc.js +++ b/nezha-fronted/src/components/common/project/meta2d/js/meta2dMainCalc.js @@ -354,7 +354,9 @@ export default { this.chartParams = { ...pen.data.tooltip, unit: this.params.unit, - statistic: this.params.statistic + statistic: this.params.statistic, + legend: pen.data.legend, + parent: pen.data.parent } this.timer3 = setTimeout(() => { let ePosition = window.ePosition 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 2af9f3372..b180d7c72 100644 --- a/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js +++ b/nezha-fronted/src/components/common/project/meta2d/js/topoUtil.js @@ -97,47 +97,6 @@ export default { }) }) }, - handleLegendAlias (legend, aliasExpression, params) { - const self = this - const myParams = JSON.parse(JSON.stringify(params)) - myParams.$labels = JSON.parse(JSON.stringify(params)) - myParams.$value = myParams.value - if (/\{\{.+\}\}/.test(aliasExpression)) { - const labelValue = aliasExpression.replace(/(\{\{.+?\}\})/g, function (i) { - const label = i.substr(i.indexOf('{{') + 2, i.indexOf('}}') - i.indexOf('{{') - 2) - if (!legend) { - return label - } - let value = null - if (params && self.$lodash.get(myParams, label)) { - value = self.$lodash.get(myParams, label) - } - if (label) { - const reg = new RegExp(label + '=".+?"', 'g') - if (reg.test(legend)) { - const ans = legend.match(reg) - let find = '' - ans.forEach(item => { - const index = legend.indexOf(item) - if (legend[index - 1] !== '_') { - find = item - } - }) - value = find.substr(find.indexOf('"') + 1, find.lastIndexOf('"') - find.indexOf('"') - 1) - } - } - return value || '' - }) - return labelValue - } else { - if (!aliasExpression) { - return legend - // let result =legend.substr(legend.indexOf('"') + 1,legend.lastIndexOf('"') - legend.indexOf('"') - 1); - // return result - } - return aliasExpression - } - }, clacTopoData (data, queryValues) { // 主要处理 属性为原始属性 处理动画属性对原始属性的影响 return new Promise(resolve => { // 处理加载数据 if (!data) { diff --git a/nezha-fronted/src/components/common/project/meta2d/meta2dElement.vue b/nezha-fronted/src/components/common/project/meta2d/meta2dElement.vue index 54e17bb92..23f0f551c 100644 --- a/nezha-fronted/src/components/common/project/meta2d/meta2dElement.vue +++ b/nezha-fronted/src/components/common/project/meta2d/meta2dElement.vue @@ -789,6 +789,31 @@ + +