diff --git a/nezha-fronted/src/components/common/exportXLSX.vue b/nezha-fronted/src/components/common/exportXLSX.vue
index 70717bee7..9e7d35773 100644
--- a/nezha-fronted/src/components/common/exportXLSX.vue
+++ b/nezha-fronted/src/components/common/exportXLSX.vue
@@ -104,6 +104,7 @@
params:{type:Object},
exportFileName:{type:String},
importUrl: {type:String,required:true},
+ link:{type:Object},
},
data:function(){
return {
@@ -158,6 +159,9 @@
form.append('excelFile',this.importFile.raw);
if(this.paramsType){
form.append('type',this.paramsType);
+ if(this.paramsType==='asset' || this.paramsType==='model'){
+ form.append('linkId',this.link?this.link.id:'');
+ }
}
form.append('language',localStorage.getItem("nz-language") ? localStorage.getItem("nz-language") : 'en')
this.$post(this.importUrl,form,{'Content-Type': 'multipart/form-data'}).then(response=>{
diff --git a/nezha-fronted/src/components/page/config/system.vue b/nezha-fronted/src/components/page/config/system.vue
index a4999bb6b..938523ee3 100644
--- a/nezha-fronted/src/components/page/config/system.vue
+++ b/nezha-fronted/src/components/page/config/system.vue
@@ -20,9 +20,9 @@
-
+
{{$t('config.system.basic.second')}}
@@ -260,7 +260,7 @@
basicCopy:null,
basicRules:{
system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
- node_exporter_target_path:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
+ // node_exporter_target_path:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
alert_api:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:host,trigger: 'blur'}],
asset_ping_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
diff --git a/nezha-fronted/src/components/page/dashboard/chartBox.vue b/nezha-fronted/src/components/page/dashboard/chartBox.vue
index 7b0b21c7f..e17977580 100644
--- a/nezha-fronted/src/components/page/dashboard/chartBox.vue
+++ b/nezha-fronted/src/components/page/dashboard/chartBox.vue
@@ -100,7 +100,7 @@
-
{{$t('dashboard.panel.chartForm.option')}}
+ {{$t('dashboard.panel.chartForm.option')}}
@@ -646,32 +646,40 @@
// 新建图表
addCharts(params) {
let panelId;
+ let panel;
//先处理panel
- if (this.panelId) {
- panelId = this.panelId;
- } else if (this.showPanel && this.showPanel.type != "dashboard") {
- panelId = this.panelData[0].id;
- } else {
- panelId = this.autocompleteExist(this.editChart.panelName);
- if (!panelId) {
- this.$post('panel', {name: this.editChart.panelName}).then(response => {
- if (response.code === 200) {
- this.$emit("reloadOnlyPanel");
- this.$store.commit('panelListChange', true);
- panelId = this.autocompleteExist(this.editChart.panelName);
- } else {
- if(response.msg){
- this.$message.error(response.msg);
- }else {
- this.$message.error(response);
- }
- }
- });
- }
- }
+ let panelPromise=new Promise(resolve => {
+ if (this.panelId) {
+ panelId = this.panelId;
+ panel=this.panelData.find(p => p.id === this.panelId);
+ resolve()
+ } else if (this.showPanel && this.showPanel.type != "dashboard" && this.showPanel.type != 'explore') {
+ panelId = this.panelData[0].id;
+ panel = this.panelData[0]
+ resolve()
+ } else {
+ panelId = this.autocompleteExist(this.editChart.panelName);
+ if (!panelId) {
+ this.$post('panel', {name: this.editChart.panelName}).then(response => {
+ if (response.code === 200) {
+ this.$emit("reloadOnlyPanel");
+ panel = response.data.panel
+ panelId=panel.id;
- let intervalTime = 1; //设置3秒超时
- let interval = setInterval(() => {
+ resolve()
+ } else {
+ if(response.msg){
+ this.$message.error(response.msg);
+ }else {
+ this.$message.error(response);
+ }
+ }
+ });
+ }
+ }
+ })
+
+ panelPromise.then(()=>{
if (panelId) {
this.panelId = panelId;
this.$post('panel/' + this.panelId + '/charts', params ? params : this.editChart).then(response => {
@@ -679,24 +687,17 @@
this.esc();
this.$message({duration: 1000, type: 'success', message: this.$t("tip.saveSuccess")});
this.$refs.chartForm.resetFields();//清空表单
- let panel = this.panelData.find(p => p.id === this.panelId);
this.$emit('on-create-success', 'create', response.data, params, panel);
} else {
- if(response.msg){
+ if (response.msg) {
this.$message.error(response.msg);
- }else {
+ } else {
this.$message.error(response);
}
}
});
- clearInterval(interval);
- } else if (intervalTime > 15) {
- this.$message.error("Time out");
- clearInterval(interval);
- } else {
- intervalTime++;
}
- }, 200);
+ })
},
// 更新图表
updateCharts(params) {
@@ -1320,7 +1321,12 @@
let panel = this.panelData.find(p => {
return p.name == n.panelName;
});
- panel && (this.panelId = panel.id);
+
+ if(panel){
+ this.panelId = panel.id;
+ }else{
+ this.panelId = null;
+ }
}
}
/*panelData: {
diff --git a/nezha-fronted/src/components/page/dashboard/explore/explore.vue b/nezha-fronted/src/components/page/dashboard/explore/explore.vue
index d74696644..47b39c8b0 100644
--- a/nezha-fronted/src/components/page/dashboard/explore/explore.vue
+++ b/nezha-fronted/src/components/page/dashboard/explore/explore.vue
@@ -532,7 +532,6 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c
},
saveChart() {
let chart = {
- id:'',
title: '',
type:'line',
span:12,
@@ -553,7 +552,6 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c
this.rightBox.show = true;
},
createSuccess(type, response, param, panel) { //添加chart成功
- console.info(response, param, panel);
this.$confirm(this.$t("dashboard.metric.goPanelTip"), this.$t("tip.saveSuccess"), {
confirmButtonText: this.$t("tip.yes"),
cancelButtonText: this.$t("tip.no"),