diff --git a/nezha-fronted/src/components/charts/chart-single-stat.vue b/nezha-fronted/src/components/charts/chart-single-stat.vue index 5679cb2a5..d1c775c61 100644 --- a/nezha-fronted/src/components/charts/chart-single-stat.vue +++ b/nezha-fronted/src/components/charts/chart-single-stat.vue @@ -424,7 +424,7 @@ export default { if(this.mapping&&!this.mapping.color){ this.mapping.color={bac:'#fff',text:'#000'} } - this.serieSingleStat = mapping?mapping.text:chartDataFormat.getUnit(chartItem.unit?chartItem.unit:2).compute(singleStatTmp,null,2); + this.serieSingleStat = mapping?mapping.text.replace('{{value}}', singleStatTmp):chartDataFormat.getUnit(chartItem.unit?chartItem.unit:2).compute(singleStatTmp,null,2); }else{ this.serieSingleStat = chartDataFormat.getUnit(chartItem.unit?chartItem.unit:2).compute(singleStatTmp,null,2); } @@ -460,7 +460,7 @@ export default { if(this.mapping&&!this.mapping.color){ this.mapping.color={bac:'#fff',text:'#000'} } - this.serieSingleStat = mapping?mapping.text:chartDataFormat.getUnit(chartItem.unit?chartItem.unit:2).compute(singleStatTmp,null,2); + this.serieSingleStat = mapping?mapping.text.replace('{{value}}', singleStatTmp):chartDataFormat.getUnit(chartItem.unit?chartItem.unit:2).compute(singleStatTmp,null,2); }else{ this.serieSingleStat = chartDataFormat.getUnit(chartItem.unit?chartItem.unit:2).compute(singleStatTmp,null,2); } diff --git a/nezha-fronted/src/components/charts/chart-table.vue b/nezha-fronted/src/components/charts/chart-table.vue index a429d635e..edb8e4ca4 100644 --- a/nezha-fronted/src/components/charts/chart-table.vue +++ b/nezha-fronted/src/components/charts/chart-table.vue @@ -52,7 +52,7 @@
+ @sort-change="tableDataSort" > @@ -97,7 +97,7 @@ @@ -210,7 +210,8 @@ }], searchTime: [new Date().setHours(new Date().getHours() - 1), new Date()],//全屏显示的时间 oldSearchTime: [], - ps: null + ps: null, + mapping:{}, }; }, created() { @@ -395,7 +396,8 @@ }else{ mapping=mappings.find(t=>{return t.from <= value&& t.to >= value}); } - item.value = mapping?mapping.text:chartDataFormat.getUnit(chartItem.unit?chartItem.unit:2).compute(value,null,2); + this.mapping=mapping; + item.value = mapping?mapping.text.replace('{{value}}', item.value):chartDataFormat.getUnit(chartItem.unit?chartItem.unit:2).compute(value,null,2); } return item; })); diff --git a/nezha-fronted/src/components/common/language/cn.js b/nezha-fronted/src/components/common/language/cn.js index 858171ecb..7a6e3752d 100644 --- a/nezha-fronted/src/components/common/language/cn.js +++ b/nezha-fronted/src/components/common/language/cn.js @@ -182,6 +182,9 @@ const cn = { unit: "单位", legend: "图例", legendTip: "使用名称或表达式控制时间序列的名称。例如{{hostname}将替换为标签主机名的标签值。", + valueMappingTip: '使用{{value}}可以显示原值\n'+ + '例如:total alive: {{value}}\n'+ + '结果为:total alive: 100', option: "操作", alertParam:{ param:'参数', diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js index 4b685d9ee..92cdac40a 100644 --- a/nezha-fronted/src/components/common/language/en.js +++ b/nezha-fronted/src/components/common/language/en.js @@ -145,6 +145,9 @@ const en = { legend:'Legend', statistics:'Statistics', legendTip:'Controls the name of the time series, using name or pattern. For example {{hostname}} will be replaced with label value for the label hostname.', + valueMappingTip: 'Use {{value}} to display the original value\n'+ + 'For example: Total Alive: {{value}}\n'+ + 'The result is: Total Alive: 100', sync: 'Sync to assets', last:'Last', threshold:'Threshold', diff --git a/nezha-fronted/src/components/page/dashboard/chartBox.vue b/nezha-fronted/src/components/page/dashboard/chartBox.vue index 66e8c20e2..5144f11a0 100644 --- a/nezha-fronted/src/components/page/dashboard/chartBox.vue +++ b/nezha-fronted/src/components/page/dashboard/chartBox.vue @@ -329,7 +329,13 @@
- {{$t('dashboard.panel.chartForm.valMapping.name')}} + + {{$t('dashboard.panel.chartForm.valMapping.name')}} + +
{{$t('dashboard.panel.chartForm.valueMappingTip')}}
+ +
+
@@ -1628,7 +1634,7 @@ deep: true, immediate: true, handler(n) { - //console.log(n); + console.log(n,(n.param&&n.param.valueMapping)&&(n.type === 'singleStat' || n.type === 'table')); if((n.param&&n.param.valueMapping)&&(n.type === 'singleStat' || n.type === 'table')){ n.param.valueMapping.mapping.forEach(item=>{ this.showPicker.push({bac:false,text:false})