`;
+ let sum = 0;
params.forEach((item, i) => {
//alert('tooltip====='+JSON.stringify(item))
//let tip=legend.find((element)=>{
@@ -801,6 +811,7 @@
if(val===0){
val = Number(item.data[1]);
}
+ sum +=val;
str += `
`;
str += `
${tip?(tip.alias?tip.alias:tip.name):item.seriesName}
`;
str += `
`;
@@ -815,6 +826,18 @@
str +=chartDataFormat.getUnit(chartInfo.unit?chartInfo.unit:2).compute(val,null,2);
str +=`
`;*/
});
+ if(self.data.type==='stackArea' || self.isStackArea){
+ sum = parseFloat(Number(sum).toFixed(2));
+ str +=`
`;
+ str +=`
`
+ str +=self.$t("dashboard.panel.chartTotal");
+ str +=`
`;
+ str +=`
`;
+ str +=chartDataFormat.getUnit(chartInfo.unit?chartInfo.unit:2).compute(sum,null,2);
+ str +=`
`;
+ str += `
`;
+ }
+
str +=`
`;
return str;
// return `
${params[0].seriesName}:${params[0].data[1]}
`;
@@ -1041,6 +1064,67 @@
this.echartStore.setOption(option);//创建图表
this.$refs['localLoading'+this.chartIndex].endLoading();
this.firstShow = true; // 展示操作按键
+
+ this.echartStore.on('magictypechanged', function (params) {
+ self.isStackArea = !self.isStackArea;
+ if(self.isStackArea){
+ this.setOption({
+ toolbox:{
+ feature:{
+ magicType:{
+ iconStyle:{
+ borderColor:'#7e7e7e',
+ },
+ },
+ }
+ },
+ tooltip: {
+ formatter:function(params){
+ let str = `
`;
+ let sum = 0;
+ params.forEach((item, i) => {let tip=legend[item.seriesIndex];
+ let color = self.bgColorList[item.seriesIndex];
+ if(i===0){
+ let value=bus.computeTimezone(item.data[0]);
+ let t_date = new Date(value);
+ str += [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + " "
+ + [t_date.getHours(), t_date.getMinutes(),t_date.getSeconds()].join(':');
+ str +=`
`;
+ }
+ let val = parseFloat(Number(item.data[1]).toFixed(2));
+ if(val===0){
+ val = Number(item.data[1]);
+ }
+ sum +=val;
+ str += `
`;
+ str += `
${tip?(tip.alias?tip.alias:tip.name):item.seriesName}
`;
+ str += `
`;
+ str += chartDataFormat.getUnit(chartInfo.unit?chartInfo.unit:2).compute(val,null,2);
+ str += `
`;
+ str += `
`;
+ });
+ if(self.data.type==='stackArea' || self.isStackArea){
+ sum = parseFloat(Number(sum).toFixed(2));
+ str +=`
`;
+ str +=`
`
+ str +=self.$t("dashboard.panel.chartTotal");
+ str +=`
`;
+ str +=`
`;
+ str +=chartDataFormat.getUnit(chartInfo.unit?chartInfo.unit:2).compute(sum,null,2);
+ str +=`
`;
+ str += `
`;
+ }
+
+ str +=`
`;
+ return str;
+ },
+ }
+ });
+ }
+ });
+ //this.echartStore.dispatchAction({
+ //type: 'magictypechanged',
+ //});
});
} else if (chartSite === 'screen') { // 全屏显示
@@ -1127,6 +1211,63 @@
let divHeight = this.$refs.screenLegendArea.offsetHeight;
this.echartModalStore.resize({height: '100%'});
});*/
+ this.echartModalStore.on('magictypechanged', function (params) {
+ self.isStackArea = !self.isStackArea;
+ if(self.isStackArea){
+ this.setOption({
+ toolbox:{
+ feature:{
+ magicType:{
+ iconStyle:{
+ borderColor:'#7e7e7e',
+ },
+ },
+ }
+ },
+ tooltip: {
+ formatter:function(params){
+ let str = `
`;
+ let sum = 0;
+ params.forEach((item, i) => {let tip=legend[item.seriesIndex];
+ let color = self.bgColorList[item.seriesIndex];
+ if(i===0){
+ let value=bus.computeTimezone(item.data[0]);
+ let t_date = new Date(value);
+ str += [t_date.getFullYear(), t_date.getMonth() + 1, t_date.getDate()].join('-') + " "
+ + [t_date.getHours(), t_date.getMinutes(),t_date.getSeconds()].join(':');
+ str +=`
`;
+ }
+ let val = parseFloat(Number(item.data[1]).toFixed(2));
+ if(val===0){
+ val = Number(item.data[1]);
+ }
+ sum +=val;
+ str += `
`;
+ str += `
${tip?(tip.alias?tip.alias:tip.name):item.seriesName}
`;
+ str += `
`;
+ str += chartDataFormat.getUnit(chartInfo.unit?chartInfo.unit:2).compute(val,null,2);
+ str += `
`;
+ str += `
`;
+ });
+ if(self.data.type==='stackArea' || self.isStackArea){
+ sum = parseFloat(Number(sum).toFixed(2));
+ str +=`
`;
+ str +=`
`
+ str +=self.$t("dashboard.panel.chartTotal");
+ str +=`
`;
+ str +=`
`;
+ str +=chartDataFormat.getUnit(chartInfo.unit?chartInfo.unit:2).compute(sum,null,2);
+ str +=`
`;
+ str += `
`;
+ }
+
+ str +=`
`;
+ return str;
+ },
+ }
+ });
+ }
+ });
}
},
handleLineFeed(str,chartWidth){
@@ -1259,10 +1400,11 @@
// 重新请求数据 刷新操作
refreshChart() {
this.dropdownMenuShow=false;
+ let id = this.data.id;
this.clearChart();
this.$refs['localLoading'+this.chartIndex].startLoading();
- /*this.firstShow = false;
- this.$emit('on-refresh-data', this.data.id);*/
+ this.firstShow = false;
+ this.$emit('on-refresh-data', id);
},
initDialog(){
//此时初始化,才能获得screenShowArea对象,否则此对象为undefined,无法初始化图表
diff --git a/nezha-fronted/src/components/common/language/cn.js b/nezha-fronted/src/components/common/language/cn.js
index 7dd778b86..2fc798ce7 100644
--- a/nezha-fronted/src/components/common/language/cn.js
+++ b/nezha-fronted/src/components/common/language/cn.js
@@ -97,6 +97,7 @@ const cn = {
searchItem: {
name: "名称"
},
+ chartTotal:'总和',
createPanelTitle: "新增面板",
selectPanelTitle: "选择面板",
createPanelTitleSec: "新增面板",
diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js
index 3c43b94cf..c9cf7466f 100644
--- a/nezha-fronted/src/components/common/language/en.js
+++ b/nezha-fronted/src/components/common/language/en.js
@@ -101,6 +101,7 @@ const en = {
searchItem:{
name:'name'
},
+ chartTotal:'total',
//面板-侧滑框
createPanelTitle: 'New panel', //"新增面板"
selectPanelTitle:'Select', //"选择面板"