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"),