fix:修复save chart 时填入不存在的panel未创建新panel的问题
This commit is contained in:
@@ -104,6 +104,7 @@
|
|||||||
params:{type:Object},
|
params:{type:Object},
|
||||||
exportFileName:{type:String},
|
exportFileName:{type:String},
|
||||||
importUrl: {type:String,required:true},
|
importUrl: {type:String,required:true},
|
||||||
|
link:{type:Object},
|
||||||
},
|
},
|
||||||
data:function(){
|
data:function(){
|
||||||
return {
|
return {
|
||||||
@@ -158,6 +159,9 @@
|
|||||||
form.append('excelFile',this.importFile.raw);
|
form.append('excelFile',this.importFile.raw);
|
||||||
if(this.paramsType){
|
if(this.paramsType){
|
||||||
form.append('type',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')
|
form.append('language',localStorage.getItem("nz-language") ? localStorage.getItem("nz-language") : 'en')
|
||||||
this.$post(this.importUrl,form,{'Content-Type': 'multipart/form-data'}).then(response=>{
|
this.$post(this.importUrl,form,{'Content-Type': 'multipart/form-data'}).then(response=>{
|
||||||
|
|||||||
@@ -20,9 +20,9 @@
|
|||||||
<el-form-item :label="$t('config.system.basic.defaultCabinetUsize')" prop="default_cabinet_usize">
|
<el-form-item :label="$t('config.system.basic.defaultCabinetUsize')" prop="default_cabinet_usize">
|
||||||
<el-input v-model.number="basic.default_cabinet_usize" ></el-input>
|
<el-input v-model.number="basic.default_cabinet_usize" ></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item :label="$t('config.system.basic.exporterTarget')" prop="node_exporter_target_path">
|
<!--<el-form-item :label="$t('config.system.basic.exporterTarget')" prop="node_exporter_target_path">
|
||||||
<el-input v-model="basic.node_exporter_target_path"></el-input>
|
<el-input v-model="basic.node_exporter_target_path"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>-->
|
||||||
<el-form-item :label="$t('config.system.basic.scrapeInterval')" prop="scrape_interval">
|
<el-form-item :label="$t('config.system.basic.scrapeInterval')" prop="scrape_interval">
|
||||||
<el-input v-model.number="basic.scrape_interval" ></el-input><span class="nz-input-append">{{$t('config.system.basic.second')}}</span>
|
<el-input v-model.number="basic.scrape_interval" ></el-input><span class="nz-input-append">{{$t('config.system.basic.second')}}</span>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -260,7 +260,7 @@
|
|||||||
basicCopy:null,
|
basicCopy:null,
|
||||||
basicRules:{
|
basicRules:{
|
||||||
system_name:[{required:true,message:this.$t('validate.required'),trigger:'blur'},],
|
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'}],
|
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'}],
|
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'}],
|
scrape_interval:[{required:true,message:this.$t('validate.required'),trigger:'blur'},{validator:positiveInteger,trigger:'blur'}],
|
||||||
|
|||||||
@@ -100,7 +100,7 @@
|
|||||||
<el-input size="small" maxlength="64" show-word-limit v-model="editChart.title"></el-input>
|
<el-input size="small" maxlength="64" show-word-limit v-model="editChart.title"></el-input>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
<div class="right-box-small-title">{{$t('dashboard.panel.chartForm.option')}}</div>
|
<div class="right-box-sub-title">{{$t('dashboard.panel.chartForm.option')}}</div>
|
||||||
<div style="margin-bottom: 20px;width: 100%"></div>
|
<div style="margin-bottom: 20px;width: 100%"></div>
|
||||||
|
|
||||||
<!-- type unit start-->
|
<!-- type unit start-->
|
||||||
@@ -646,19 +646,27 @@
|
|||||||
// 新建图表
|
// 新建图表
|
||||||
addCharts(params) {
|
addCharts(params) {
|
||||||
let panelId;
|
let panelId;
|
||||||
|
let panel;
|
||||||
//先处理panel
|
//先处理panel
|
||||||
|
let panelPromise=new Promise(resolve => {
|
||||||
if (this.panelId) {
|
if (this.panelId) {
|
||||||
panelId = this.panelId;
|
panelId = this.panelId;
|
||||||
} else if (this.showPanel && this.showPanel.type != "dashboard") {
|
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;
|
panelId = this.panelData[0].id;
|
||||||
|
panel = this.panelData[0]
|
||||||
|
resolve()
|
||||||
} else {
|
} else {
|
||||||
panelId = this.autocompleteExist(this.editChart.panelName);
|
panelId = this.autocompleteExist(this.editChart.panelName);
|
||||||
if (!panelId) {
|
if (!panelId) {
|
||||||
this.$post('panel', {name: this.editChart.panelName}).then(response => {
|
this.$post('panel', {name: this.editChart.panelName}).then(response => {
|
||||||
if (response.code === 200) {
|
if (response.code === 200) {
|
||||||
this.$emit("reloadOnlyPanel");
|
this.$emit("reloadOnlyPanel");
|
||||||
this.$store.commit('panelListChange', true);
|
panel = response.data.panel
|
||||||
panelId = this.autocompleteExist(this.editChart.panelName);
|
panelId=panel.id;
|
||||||
|
|
||||||
|
resolve()
|
||||||
} else {
|
} else {
|
||||||
if(response.msg){
|
if(response.msg){
|
||||||
this.$message.error(response.msg);
|
this.$message.error(response.msg);
|
||||||
@@ -669,9 +677,9 @@
|
|||||||
});
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
})
|
||||||
|
|
||||||
let intervalTime = 1; //设置3秒超时
|
panelPromise.then(()=>{
|
||||||
let interval = setInterval(() => {
|
|
||||||
if (panelId) {
|
if (panelId) {
|
||||||
this.panelId = panelId;
|
this.panelId = panelId;
|
||||||
this.$post('panel/' + this.panelId + '/charts', params ? params : this.editChart).then(response => {
|
this.$post('panel/' + this.panelId + '/charts', params ? params : this.editChart).then(response => {
|
||||||
@@ -679,24 +687,17 @@
|
|||||||
this.esc();
|
this.esc();
|
||||||
this.$message({duration: 1000, type: 'success', message: this.$t("tip.saveSuccess")});
|
this.$message({duration: 1000, type: 'success', message: this.$t("tip.saveSuccess")});
|
||||||
this.$refs.chartForm.resetFields();//清空表单
|
this.$refs.chartForm.resetFields();//清空表单
|
||||||
let panel = this.panelData.find(p => p.id === this.panelId);
|
|
||||||
this.$emit('on-create-success', 'create', response.data, params, panel);
|
this.$emit('on-create-success', 'create', response.data, params, panel);
|
||||||
} else {
|
} else {
|
||||||
if(response.msg){
|
if (response.msg) {
|
||||||
this.$message.error(response.msg);
|
this.$message.error(response.msg);
|
||||||
}else {
|
} else {
|
||||||
this.$message.error(response);
|
this.$message.error(response);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
clearInterval(interval);
|
|
||||||
} else if (intervalTime > 15) {
|
|
||||||
this.$message.error("Time out");
|
|
||||||
clearInterval(interval);
|
|
||||||
} else {
|
|
||||||
intervalTime++;
|
|
||||||
}
|
}
|
||||||
}, 200);
|
})
|
||||||
},
|
},
|
||||||
// 更新图表
|
// 更新图表
|
||||||
updateCharts(params) {
|
updateCharts(params) {
|
||||||
@@ -1320,7 +1321,12 @@
|
|||||||
let panel = this.panelData.find(p => {
|
let panel = this.panelData.find(p => {
|
||||||
return p.name == n.panelName;
|
return p.name == n.panelName;
|
||||||
});
|
});
|
||||||
panel && (this.panelId = panel.id);
|
|
||||||
|
if(panel){
|
||||||
|
this.panelId = panel.id;
|
||||||
|
}else{
|
||||||
|
this.panelId = null;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*panelData: {
|
/*panelData: {
|
||||||
|
|||||||
@@ -532,7 +532,6 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c
|
|||||||
},
|
},
|
||||||
saveChart() {
|
saveChart() {
|
||||||
let chart = {
|
let chart = {
|
||||||
id:'',
|
|
||||||
title: '',
|
title: '',
|
||||||
type:'line',
|
type:'line',
|
||||||
span:12,
|
span:12,
|
||||||
@@ -553,7 +552,6 @@ instance_cpu_time_ns{app="fox", proc="widget", rev="4d3a513", env="prod", job="c
|
|||||||
this.rightBox.show = true;
|
this.rightBox.show = true;
|
||||||
},
|
},
|
||||||
createSuccess(type, response, param, panel) { //添加chart成功
|
createSuccess(type, response, param, panel) { //添加chart成功
|
||||||
console.info(response, param, panel);
|
|
||||||
this.$confirm(this.$t("dashboard.metric.goPanelTip"), this.$t("tip.saveSuccess"), {
|
this.$confirm(this.$t("dashboard.metric.goPanelTip"), this.$t("tip.saveSuccess"), {
|
||||||
confirmButtonText: this.$t("tip.yes"),
|
confirmButtonText: this.$t("tip.yes"),
|
||||||
cancelButtonText: this.$t("tip.no"),
|
cancelButtonText: this.$t("tip.no"),
|
||||||
|
|||||||
Reference in New Issue
Block a user