diff --git a/nezha-fronted/src/components/charts/chart-list.vue b/nezha-fronted/src/components/charts/chart-list.vue
index 817756c84..739de0b37 100644
--- a/nezha-fronted/src/components/charts/chart-list.vue
+++ b/nezha-fronted/src/components/charts/chart-list.vue
@@ -842,6 +842,9 @@
chartInfo.param.nullType=chartInfo.param.nullType||'connected';
query+='&nullType='+chartInfo.param.nullType;
}
+ if(chartInfo.type === 'table'&&chartInfo.param&&chartInfo.param.last == 1){
+ return this.$get('/prom/api/v1/query_range?query=' + query + "&start=" + this.$stringTimeParseToUnix(endTime) + "&end=" + this.$stringTimeParseToUnix(endTime) + '&step=' + step);
+ }
return this.$get('/prom/api/v1/query_range?query=' + query + "&start=" + this.$stringTimeParseToUnix(startTime) + "&end=" + this.$stringTimeParseToUnix(endTime) + '&step=' + step);
});
// 一个图表的所有element单独获取数据
diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/panelTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/panelTab.vue
index 4f6ef65a6..dd804eb0a 100644
--- a/nezha-fronted/src/components/common/bottomBox/tabs/panelTab.vue
+++ b/nezha-fronted/src/components/common/bottomBox/tabs/panelTab.vue
@@ -86,7 +86,7 @@
-
+
@@ -249,12 +249,30 @@
type: 'success',
message: this.$t("tip.deleteSuccess")
});
+ this.rightBox.show = false;
let chartList=this.$refs.chartList.dataList;
+ let nextChart=null,prevChart=null
for (let i =0;i< chartList.length;i++){
if(chartList[i].id === data.id){
chartList.splice(i,1);
- break;
}
+ if(data.next != -1){
+ if(chartList[i].id === data.next){
+ nextChart = chartList[i]
+ }
+ }
+ if(data.prev != 0){
+ if(chartList[i].id === data.prev){
+ prevChart = chartList[i]
+ }
+ }
+ }
+ if(nextChart&&prevChart){ //删除图表为中间位置
+ prevChart.next = nextChart.id;
+ nextChart.prev = prevChart.id;
+ }else{
+ if(!nextChart) prevChart.next = -1;
+ if(!prevChart) nextChart.prev = 0;
}
// this.getTableData(this.obj.id); //删除相关图表后,刷新面板数据
} else {
diff --git a/nezha-fronted/src/components/common/language/cn.js b/nezha-fronted/src/components/common/language/cn.js
index f622020c9..2d891365e 100644
--- a/nezha-fronted/src/components/common/language/cn.js
+++ b/nezha-fronted/src/components/common/language/cn.js
@@ -129,6 +129,7 @@ const cn = {
url: "URL",
statistics:'Statistics',
sync: '同步到设备',
+ last:'Last',
threshold:'阈值',
typeVal: {
line: {
diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js
index 61ff121a3..5d682e154 100644
--- a/nezha-fronted/src/components/common/language/en.js
+++ b/nezha-fronted/src/components/common/language/en.js
@@ -138,6 +138,7 @@ const en = {
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.',
sync: 'Sync to assets',
+ last:'Last',
threshold:'Threshold',
typeVal:{
line:{
diff --git a/nezha-fronted/src/components/page/dashboard/chartBox.vue b/nezha-fronted/src/components/page/dashboard/chartBox.vue
index 1088b290f..afc1c6553 100644
--- a/nezha-fronted/src/components/page/dashboard/chartBox.vue
+++ b/nezha-fronted/src/components/page/dashboard/chartBox.vue
@@ -143,6 +143,9 @@
px
+
+
+
@@ -531,24 +534,8 @@
}
});
},
- del(u) {
- this.$confirm(this.$t("tip.confirmDelete"), {
- confirmButtonText: this.$t("tip.yes"),
- cancelButtonText: this.$t("tip.no"),
- type: 'warning'
- }).then(() => {
- this.$delete("panel/" + this.panelId + "/charts?ids=" + u.id).then(response => {
- if (response.code === 200) {
- if(this.$refs.chartForm){
- this.$refs.chartForm.resetFields();//清空表单
- }
- this.$message({duration: 1000, type: 'success', message: this.$t("tip.deleteSuccess")});
- this.esc(true);
- } else {
- this.$message.error(response.msg);
- }
- })
- });
+ del() {
+ this.$emit('delete-chart',this.editChart)
},
//----------------------------------
@@ -1054,6 +1041,7 @@
this.editChart.height = 400+'';
this.editChart.unit=2;
let param = {};
+ param.last=0;
param.url='';
param.threshold='';
param.valueMapping={type:'text',mapping:[{value:'',text:''}]};
@@ -1120,6 +1108,8 @@
this.setIsOtherChart();
if(chartType === 'bar'||chartType === 'line'||chartType === 'stackArea'){
this.editChart.param={nullType:this.editChart.param.nullType,threshold:'',legendValue:{min:'off',max:'off',avg:'off',last:'off',total:'off'}}
+ }else if(chartType == 'table'){
+ this.editChart.param.last= 0;
}
/*if(this.$refs.chartTag){
this.$refs.chartTag.forEach((item, index) => {
@@ -1295,7 +1285,9 @@
} else if(n.type === 'singleStat'){
n.param&&!n.param.valueMapping&&this.$set(this.editChart.param,'valueMapping',{type:'value',mapping:[{text:'',value:''}]})
this.setIsSingleStat();
- } else {
+ } else if(n.type === 'table'){
+ n.param.last?this.$set(this.editChart.param,'last',n.param.last):this.$set(this.editChart.param,'last',0)
+ }else {
this.setIsOtherChart();
n.param&&!n.param.legendValue&&this.$set(this.editChart.param,'legendValue',{min:'off',max:'off',avg:'off',last:'off',total:'off'})
}
diff --git a/nezha-fronted/src/components/page/dashboard/panel.vue b/nezha-fronted/src/components/page/dashboard/panel.vue
index c7e7c0989..2e47bcb1e 100644
--- a/nezha-fronted/src/components/page/dashboard/panel.vue
+++ b/nezha-fronted/src/components/page/dashboard/panel.vue
@@ -84,7 +84,7 @@
-
+
@@ -321,6 +321,7 @@
type: 'success',
message: this.$t("tip.deleteSuccess")
});
+ this.rightBox.chart.show = false;
let chartList=this.$refs.chartList.dataList;
let nextChart=null,prevChart=null
for (let i =0;i< chartList.length;i++){