diff --git a/nezha-fronted/src/components/charts/chart-list.vue b/nezha-fronted/src/components/charts/chart-list.vue
index 198573cfd..c9f83f9ec 100644
--- a/nezha-fronted/src/components/charts/chart-list.vue
+++ b/nezha-fronted/src/components/charts/chart-list.vue
@@ -83,7 +83,7 @@
animation:150,
handle:'.chartTitle',
}" >
-
{
- if(this.$refs['editChart'+chartItem.id] && this.$refs['editChart'+chartItem.id].length>0){
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, [], this.filter.panelId, this.filter);//????怎么设置的无数据??
- }
- });
+ if (this.isModel) {
+ this.modelStaticData(chartInfo, filterType);
} else {
- let startTime = '';
- let endTime = '';
- if (filterType === 'refresh') {//刷新
- const now = new Date();
- const origin = new Date(this.filter.end_time);
- const numInterval = now.getTime() - origin.getTime();
- if (numInterval >= 60000) {//大于1分钟,则start、end均往后移numInterval,否则时间不变
- startTime = this.getNewTime(this.filter.start_time, numInterval);
- endTime = bus.timeFormate(now, 'yyyy-MM-dd hh:mm:ss');
+ // 没有数据的设置提示信息暂无数据-针对每一个图
+ const len = chartItem.elements.length;
+ if (len === 0) {
+ this.$nextTick(() => {
+ if (this.$refs['editChart' + chartItem.id] && this.$refs['editChart' + chartItem.id].length > 0) {
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, [], this.filter.panelId, this.filter);//????怎么设置的无数据??
+ }
+ });
+ } else {
+ let startTime = '';
+ let endTime = '';
+ if (filterType === 'refresh') {//刷新
+ const now = new Date();
+ const origin = new Date(this.filter.end_time);
+ const numInterval = now.getTime() - origin.getTime();
+ if (numInterval >= 60000) {//大于1分钟,则start、end均往后移numInterval,否则时间不变
+ startTime = this.getNewTime(this.filter.start_time, numInterval);
+ endTime = bus.timeFormate(now, 'yyyy-MM-dd hh:mm:ss');
+ } else {
+ startTime = this.filter.start_time;
+ endTime = this.filter.end_time;
+ }
+ } else if (filterType === 'showFullScreen') {//全屏时间查询
+ startTime = this.filter.start_time;
+ endTime = this.filter.end_time;
+ //this.$parent.refreshTime(startTime,endTime);全屏查询,不更新panel列表的时间条件
} else {
startTime = this.filter.start_time;
endTime = this.filter.end_time;
}
- } else if(filterType==='showFullScreen'){//全屏时间查询
- startTime = this.filter.start_time;
- endTime = this.filter.end_time;
- //this.$parent.refreshTime(startTime,endTime);全屏查询,不更新panel列表的时间条件
- }else {
- startTime = this.filter.start_time;
- endTime = this.filter.end_time;
- }
- let step = bus.getStep(startTime,endTime);
- this.$nextTick(() => {
- const axiosArr = chartItem.elements.map((ele) => {
- const filterItem = ele;
- let query = encodeURIComponent(filterItem.expression);
- return this.$get('/prom/api/v1/query_range?query='+query+"&start="+this.$stringTimeParseToUnix(startTime)+"&end="+this.$stringTimeParseToUnix(endTime)+'&step='+step);
- });
- // 一个图表的所有element单独获取数据
- axios.all(axiosArr).then((res) => {
- if (res.length > 0) {
- const series = [];
- let singleStatRlt = '';
- const legend = [];
- const tableData = [];
- const sumData = {
- name: 'sum',
- data: [],
- visible: true,
- threshold: null,
- };
- let errorMsg = "";
- res.forEach((response, innerPos) => {
- if (response.status === 'success') {
- errorMsg = "";
- if (response.data.result) {
- // 循环处理每个elements下获取的数据列
- if(chartItem.type==='singleStat'){
- if (this.isModel) {
- singleStatRlt = 999;
- } else {
- if(response.data.result.length===1){
+ let step = bus.getStep(startTime, endTime);
+ this.$nextTick(() => {
+ const axiosArr = chartItem.elements.map((ele) => {
+ const filterItem = ele;
+ let query = encodeURIComponent(filterItem.expression);
+ return this.$get('/prom/api/v1/query_range?query=' + query + "&start=" + this.$stringTimeParseToUnix(startTime) + "&end=" + this.$stringTimeParseToUnix(endTime) + '&step=' + step);
+ });
+ // 一个图表的所有element单独获取数据
+ axios.all(axiosArr).then((res) => {
+ if (res.length > 0) {
+ const series = [];
+ let singleStatRlt = '';
+ const legend = [];
+ const tableData = [];
+ const sumData = {
+ name: 'sum',
+ data: [],
+ visible: true,
+ threshold: null,
+ };
+ let errorMsg = "";
+ res.forEach((response, innerPos) => {
+ if (response.status === 'success') {
+ errorMsg = "";
+ if (response.data.result) {
+ // 循环处理每个elements下获取的数据列
+ if (chartItem.type === 'singleStat') {
+ if (response.data.result.length === 1) {
let statistics = chartItem.param.statistics;
- if(response.data.result[0].values){
- singleStatRlt = bus.getSingleStatRlt(statistics,response.data.result[0].values);
+ if (response.data.result[0].values) {
+ singleStatRlt = bus.getSingleStatRlt(statistics, response.data.result[0].values);
}
- }else if(response.data.result.length > 1){
+ } else if (response.data.result.length > 1) {
singleStatRlt = this.$t("dashboard.panel.singleStatErrorTip");
}
- }
- }else {
- response.data.result.forEach((queryItem,resIndex) => {
- const seriesItem = {
- theData: {
- name: '',
- symbol:'emptyCircle', //去掉点
- symbolSize:[2,2],
- smooth:0.2, //曲线变平滑
- showSymbol:false,
- data: [],
- type:chartInfo.type,
- },
- //visible: true,
- //threshold: null,
- metric_name: '',
- };
+ } else {
+ response.data.result.forEach((queryItem, resIndex) => {
+ const seriesItem = {
+ theData: {
+ name: '',
+ symbol: 'emptyCircle', //去掉点
+ symbolSize: [2, 2],
+ smooth: 0.2, //曲线变平滑
+ showSymbol: false,
+ data: [],
+ type: chartInfo.type,
+ },
+ //visible: true,
+ //threshold: null,
+ metric_name: '',
+ };
- if(chartInfo.type === 'stackArea'){
- seriesItem.theData.type='line';
- seriesItem.theData.stack=chartInfo.title;
- seriesItem.theData.areaStyle={"opacity": 0.3};
- }
- // 图表中每条线的名字,后半部分
- let host = '';//up,
- if(queryItem.metric.__name__){
- host = `${queryItem.metric.__name__}{`;//up,
- }
- const tagsArr = Object.keys(queryItem.metric);//["__name__","asset","idc","instance","job","module","project"]
- // 设置时间-数据格式对
- let tempArr = [];
- let dpsArr = [];
- if (this.isModel) {
- let timeStamp = Math.floor(new Date().getTime()/1000);
- for (let i = 0; i < 20; i++) {
- tempArr.push([timeStamp - (20-i)*15, Math.floor(Math.random()*10) + ""]);
- dpsArr.push([i+"", tempArr[i]]);
+ if (chartInfo.type === 'stackArea') {
+ seriesItem.theData.type = 'line';
+ seriesItem.theData.stack = chartInfo.title;
+ seriesItem.theData.areaStyle = {"opacity": 0.3};
}
- } else {
+ // 图表中每条线的名字,后半部分
+ let host = '';//up,
+ if (queryItem.metric.__name__) {
+ host = `${queryItem.metric.__name__}{`;//up,
+ }
+ const tagsArr = Object.keys(queryItem.metric);//["__name__","asset","idc","instance","job","module","project"]
+ // 设置时间-数据格式对
+ let tempArr = [];
+ let dpsArr = [];
tempArr = queryItem.values;
dpsArr = Object.entries(queryItem.values);//[ ["0",[1577959830.781,"0"]], ["1",[1577959845.781,"0"]] ]
dpsArr = dpsArr.map(item => {
return [item[0], [item[1][0], Number(item[1][1])]]
})
- }
- // 判断是否有数据, && tagsArr.length > 0
- if (dpsArr.length > 0 && this.$refs['editChart'+chartItem.id] && this.$refs['editChart'+chartItem.id].length>0) {
- tagsArr.forEach((tag, i) => {
- if (tag !== '__name__') {
- host += `${tag}="${queryItem.metric[tag]}",`;
- }
- });
- if(host.endsWith(',')){host = host.substr(0,host.length-1);}
- if(queryItem.metric.__name__){
- host +="}";
- }
- if(!host || host===''){
- host = chartItem.elements[innerPos].expression;
- }
- //处理legend别名
- let alias=this.$refs['editChart'+chartItem.id][0].dealLegendAlias(host,chartItem.elements[innerPos].legend);
- if(!alias || alias===''){
- alias = host;
- }
- legend.push({name:host+resIndex,alias:alias});
- // 图表中每条线的名字,去掉最后的逗号与空格:metric名称, 标签1=a,标签2=c
- seriesItem.theData.name = host+resIndex;
- //alert(seriesItem.theData.name);
- seriesItem.metric_name = seriesItem.theData.name;
- // 将秒改为毫秒
- //alert('table=='+JSON.stringify(queryItem))
- seriesItem.theData.data = tempArr.map((dpsItem, dpsIndex) => {
- /*曲线汇总暂不需要
- if (sumData.data[dpsIndex]) {
- const sumNum = sumData.data[dpsIndex][1] || 0;
- sumData.data[dpsIndex][1] = sumNum + dpsItem[1];
- } else {
- sumData.data[dpsIndex] = [dpsItem[0] * 1000, dpsItem[1]];
- }
- */
- let t_date = new Date(dpsItem[0] * 1000);
- let timeTmp = bus.timeFormate(t_date, 'yyyy-MM-dd hh:mm:ss');
- tableData.push({//表格数据
- // label: host.slice(host.indexOf('{') + 1,host.indexOf('}')),//label
- // metric: queryItem.metric.__name__?queryItem.metric.__name__:'',//metric列
- element:{element:host,alias:alias},
- time: timeTmp,//采集时间
- value: dpsItem[1],//数值
+ // 判断是否有数据, && tagsArr.length > 0
+ if (dpsArr.length > 0 && this.$refs['editChart' + chartItem.id] && this.$refs['editChart' + chartItem.id].length > 0) {
+ tagsArr.forEach((tag, i) => {
+ if (tag !== '__name__') {
+ host += `${tag}="${queryItem.metric[tag]}",`;
+ }
});
- return [dpsItem[0] * 1000, dpsItem[1]];
- });
- series.push(seriesItem.theData);
+ if (host.endsWith(',')) {
+ host = host.substr(0, host.length - 1);
+ }
+ if (queryItem.metric.__name__) {
+ host += "}";
+ }
+ if (!host || host === '') {
+ host = chartItem.elements[innerPos].expression;
+ }
+ //处理legend别名
+ let alias = this.$refs['editChart' + chartItem.id][0].dealLegendAlias(host, chartItem.elements[innerPos].legend);
+ if (!alias || alias === '') {
+ alias = host;
+ }
+ legend.push({name: host + resIndex, alias: alias});
+ // 图表中每条线的名字,去掉最后的逗号与空格:metric名称, 标签1=a,标签2=c
+ seriesItem.theData.name = host + resIndex;
+ //alert(seriesItem.theData.name);
+ seriesItem.metric_name = seriesItem.theData.name;
+ // 将秒改为毫秒
+ //alert('table=='+JSON.stringify(queryItem))
+ seriesItem.theData.data = tempArr.map((dpsItem, dpsIndex) => {
+ /*曲线汇总暂不需要
+ if (sumData.data[dpsIndex]) {
+ const sumNum = sumData.data[dpsIndex][1] || 0;
+ sumData.data[dpsIndex][1] = sumNum + dpsItem[1];
+ } else {
+ sumData.data[dpsIndex] = [dpsItem[0] * 1000, dpsItem[1]];
+ }
+ */
+ let t_date = new Date(dpsItem[0] * 1000);
+ let timeTmp = bus.timeFormate(t_date, 'yyyy-MM-dd hh:mm:ss');
+ tableData.push({//表格数据
+ // label: host.slice(host.indexOf('{') + 1,host.indexOf('}')),//label
+ // metric: queryItem.metric.__name__?queryItem.metric.__name__:'',//metric列
+ element: {element: host, alias: alias},
+ time: timeTmp,//采集时间
+ value: dpsItem[1],//数值
+ });
+ return [dpsItem[0] * 1000, dpsItem[1]];
+ });
+ series.push(seriesItem.theData);
- } else if (chartItem.elements && chartItem.elements[innerPos]) {
- // 无数据提示
- /*
- const currentInfo = chartItem.elements[innerPos];
- const errorMsg = `图表 ${chartItem.title} 中 ${currentInfo.metric},${currentInfo.tags} 无数据`;
- this.$message.warning({
- duration: 15,
- content: errorMsg,
- closable: true,
- });
- */
- }
- });
+ } else if (chartItem.elements && chartItem.elements[innerPos]) {
+ // 无数据提示
+ /*
+ const currentInfo = chartItem.elements[innerPos];
+ const errorMsg = `图表 ${chartItem.title} 中 ${currentInfo.metric},${currentInfo.tags} 无数据`;
+ this.$message.warning({
+ duration: 15,
+ content: errorMsg,
+ closable: true,
+ });
+ */
+ }
+ });
+ }
+ }
+ } else {
+ if (response.msg) {
+ //this.$message.error(response.msg);
+ errorMsg = response.msg;
+ } else if (response.error) {
+ //this.$message.error(response.error);
+ errorMsg = response.error;
+ } else {
+ //this.$message.error(response);
+ errorMsg = response;
}
}
- }else{
- if(response.msg){
- //this.$message.error(response.msg);
- errorMsg = response.msg;
- }else if(response.error){
- //this.$message.error(response.error);
- errorMsg = response.error;
- }else {
- //this.$message.error(response);
- errorMsg = response;
- }
- }
- });
+ });
- if(this.$refs['editChart'+chartItem.id] && this.$refs['editChart'+chartItem.id].length>0) {
- let chartData = {
- chartItem:chartItem,
- series:series,
- singleStatRlt:singleStatRlt,
- legend:legend,
- tableData:tableData,
- panelId:this.filter.panelId,
- filter:this.filter,
- filterType:filterType,
- errorMsg:errorMsg,
+ if (this.$refs['editChart' + chartItem.id] && this.$refs['editChart' + chartItem.id].length > 0) {
+ let chartData = {
+ chartItem: chartItem,
+ series: series,
+ singleStatRlt: singleStatRlt,
+ legend: legend,
+ tableData: tableData,
+ panelId: this.filter.panelId,
+ filter: this.filter,
+ filterType: filterType,
+ errorMsg: errorMsg,
+ }
+ this.chartDataCacheGroup.set(chartInfo.id, chartData);
+ if (chartItem.type === 'table') {//表格
+ if (filterType === 'showFullScreen') {//全屏查询
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, tableData,
+ this.filter.panelId, this.filter, filterType, errorMsg);
+ } else {
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, tableData,
+ this.filter.panelId, this.filter, '', errorMsg);
+ }
+ } else if (chartItem.type === 'line' || chartItem.type === 'bar' || chartItem.type === 'stackArea' || chartItem.type === 4) {
+ if (series.length && chartItem.type === 4) {//曲线汇总
+ //series.push(sumData);//后续需要
+ }
+ if (filterType === 'showFullScreen') {//全屏查询
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, series,
+ this.filter.panelId, this.filter, legend, filterType, errorMsg);
+ } else {
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, series,
+ this.filter.panelId, this.filter, legend, '', errorMsg);
+ }
+ } else if (chartItem.type === 'singleStat') {
+ if (filterType === 'showFullScreen') {//全屏查询
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, singleStatRlt,
+ this.filter.panelId, this.filter, filterType, errorMsg);
+ } else {
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, singleStatRlt,
+ this.filter.panelId, this.filter, '', errorMsg);
+ }
+ }
}
- this.chartDataCacheGroup.set(chartInfo.id,chartData);
- if (chartItem.type === 'table') {//表格
- if (filterType === 'showFullScreen') {//全屏查询
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, tableData,
- this.filter.panelId, this.filter, filterType,errorMsg);
- } else {
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, tableData,
- this.filter.panelId, this.filter,'',errorMsg);
- }
- } else if (chartItem.type === 'line' || chartItem.type === 'bar' || chartItem.type === 'stackArea' || chartItem.type === 4) {
- if (series.length && chartItem.type === 4) {//曲线汇总
- //series.push(sumData);//后续需要
- }
- if (filterType === 'showFullScreen') {//全屏查询
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, series,
- this.filter.panelId, this.filter, legend, filterType,errorMsg);
- } else {
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, series,
- this.filter.panelId, this.filter, legend,'',errorMsg);
- }
- } else if(chartItem.type ==='singleStat'){
- if (filterType === 'showFullScreen') {//全屏查询
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, singleStatRlt,
- this.filter.panelId, this.filter, filterType,errorMsg);
- } else {
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, singleStatRlt,
- this.filter.panelId, this.filter,'',errorMsg);
+ } else {
+ const type = chartItem.type;
+ if (this.$refs['editChart' + chartItem.id] && this.$refs['editChart' + chartItem.id].length > 0) {
+ if (type === 'table') {
+ if (filterType === 'showFullScreen') {//table的全屏查询
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, [], this.filter.panelId,
+ this.filter, filterType);
+ } else {
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, [], this.filter.panelId,
+ this.filter);
+ }
+ } else if (type === 'line' || type === 'bar' || type === 'stackArea' || chartItem.type === 4) {
+ if (filterType === 'showFullScreen') {//table的全屏查询
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, [], this.filter.panelId,
+ this.filter, filterType);
+ } else {
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, [], this.filter.panelId,
+ this.filter);
+ }
+ } else if (chartItem.type === 'singleStat') {
+ if (filterType === 'showFullScreen') {//全屏查询
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, '',
+ this.filter.panelId, this.filter, filterType);
+ } else {
+ this.$refs['editChart' + chartItem.id][0].setData(chartItem, '',
+ this.filter.panelId, this.filter);
+ }
}
}
}
- } else {
- const type = chartItem.type;
- if(this.$refs['editChart'+chartItem.id] && this.$refs['editChart'+chartItem.id].length>0) {
- if (type === 'table') {
- if (filterType === 'showFullScreen') {//table的全屏查询
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, [], this.filter.panelId,
- this.filter, filterType);
- } else {
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, [], this.filter.panelId,
- this.filter);
- }
- } else if (type === 'line' || type === 'bar' || type === 'stackArea' || chartItem.type === 4) {
- if (filterType === 'showFullScreen') {//table的全屏查询
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, [], this.filter.panelId,
- this.filter, filterType);
- } else {
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, [], this.filter.panelId,
- this.filter);
- }
- }else if(chartItem.type ==='singleStat'){
- if (filterType === 'showFullScreen') {//全屏查询
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, '',
- this.filter.panelId, this.filter, filterType);
- } else {
- this.$refs['editChart'+chartItem.id][0].setData(chartItem, '',
- this.filter.panelId, this.filter);
- }
- }
+ }).catch((error) => {
+ if (error) {
+ this.$message.error(error.toString());
+ console.error(error)
}
- }
- }).catch((error) => {
- if (error) {
- this.$message.error(error.toString());
- console.error(error)
- }
+ });
});
+ }
+ }
+ },
+ modelStaticData(chartInfo, filterType) {
+ let series = [];
+ let seriesItem = {
+ theData: {
+ name: '',
+ symbol:'emptyCircle', //去掉点
+ symbolSize:[2,2],
+ smooth:0.2, //曲线变平滑
+ showSymbol:false,
+ data: [],
+ type:chartInfo.type,
+ },
+ //visible: true,
+ //threshold: null,
+ metric_name: '',
+ };
+ let legend = [];
+ let tableData = [];
+ if(chartInfo.type === 'stackArea'){
+ seriesItem.theData.type='line';
+ seriesItem.theData.stack=chartInfo.title;
+ seriesItem.theData.areaStyle={"opacity": 0.3};
+ }
+ // 图表中每条线的名字,后半部分
+ let host = 'host';//up,
+ let queryItem = {metric: {item1: "item1", item2: "item2", item3: "item3"}, values: []};
+ const tagsArr = Object.keys(queryItem.metric);//["__name__","asset","idc","instance","job","module","project"]
+ // 设置时间-数据格式对
+ let tempArr = [];
+ let dpsArr = [];
+ let timeStamp = Math.floor(new Date().getTime()/1000);
+ for (let i = 0; i < 20; i++) {
+ tempArr.push([timeStamp - (20-i)*15, Math.floor(Math.random()*10) + ""]);
+ queryItem.values.push(tempArr[i])
+ dpsArr.push([i+"", tempArr[i]]);
+ }
+ // 判断是否有数据, && tagsArr.length > 0
+ if (dpsArr.length > 0 && this.$refs['editChart'+chartInfo.id] && this.$refs['editChart'+chartInfo.id].length>0) {
+ tagsArr.forEach((tag, i) => {
+ if (tag !== '__name__') {
+ host += `${tag}="${queryItem.metric[tag]}",`;
+ }
});
+ if(queryItem.metric.__name__){
+ host +="}";
+ }
+ //处理legend别名
+ let alias=this.$refs['editChart'+chartInfo.id][0].dealLegendAlias(host,chartInfo.elements[0].legend);
+ if(!alias || alias===''){
+ alias = host;
+ }
+ legend.push({name:host, alias:alias});
+ // 图表中每条线的名字,去掉最后的逗号与空格:metric名称, 标签1=a,标签2=c
+ seriesItem.theData.name = host;
+ //alert(seriesItem.theData.name);
+ seriesItem.metric_name = seriesItem.theData.name;
+ // 将秒改为毫秒
+ //alert('table=='+JSON.stringify(queryItem))
+ seriesItem.theData.data = tempArr.map((dpsItem, dpsIndex) => {
+ /*曲线汇总暂不需要
+ if (sumData.data[dpsIndex]) {
+ const sumNum = sumData.data[dpsIndex][1] || 0;
+ sumData.data[dpsIndex][1] = sumNum + dpsItem[1];
+ } else {
+ sumData.data[dpsIndex] = [dpsItem[0] * 1000, dpsItem[1]];
+ }
+ */
+ let t_date = new Date(dpsItem[0] * 1000);
+ let timeTmp = bus.timeFormate(t_date, 'yyyy-MM-dd hh:mm:ss');
+ tableData.push({//表格数据
+ // label: host.slice(host.indexOf('{') + 1,host.indexOf('}')),//label
+ // metric: queryItem.metric.__name__?queryItem.metric.__name__:'',//metric列
+ element:{element:host,alias:alias},
+ time: timeTmp,//采集时间
+ value: dpsItem[1],//数值
+ });
+ return [dpsItem[0] * 1000, dpsItem[1]];
+ });
+ series.push(seriesItem.theData);
+
+ } else if (chartInfo.elements && chartInfo.elements[0]) {
+ // 无数据提示
+ /*
+ const currentInfo = chartItem.elements[innerPos];
+ const errorMsg = `图表 ${chartItem.title} 中 ${currentInfo.metric},${currentInfo.tags} 无数据`;
+ this.$message.warning({
+ duration: 15,
+ content: errorMsg,
+ closable: true,
+ });
+ */
+ }
+ let singleStatRlt = 999;
+ if (this.$refs['editChart' + chartInfo.id] && this.$refs['editChart' + chartInfo.id].length > 0) {
+ let errorMsg = '';
+ let chartData = {
+ chartItem: chartInfo,
+ series: series,
+ singleStatRlt: singleStatRlt,
+ legend: legend,
+ tableData: tableData,
+ panelId: this.filter.panelId,
+ filter: this.filter,
+ filterType: filterType,
+ errorMsg: errorMsg
+ }
+ this.chartDataCacheGroup.set(chartInfo.id, chartData);
+ if (chartInfo.type === 'table') {//表格
+ if (filterType === 'showFullScreen') {//全屏查询
+ this.$refs['editChart' + chartInfo.id][0].setData(chartInfo, tableData,
+ this.filter.panelId, this.filter, filterType, '');
+ } else {
+ this.$refs['editChart' + chartItem.id][0].setData(chartInfo, tableData,
+ this.filter.panelId, this.filter, '', '');
+ }
+ } else if (chartInfo.type === 'line' || chartInfo.type === 'bar' || chartInfo.type === 'stackArea' || chartInfo.type === 4) {
+ if (series.length && chartInfo.type === 4) {//曲线汇总
+ //series.push(sumData);//后续需要
+ }
+ if (filterType === 'showFullScreen') {//全屏查询
+ this.$refs['editChart' + chartInfo.id][0].setData(chartInfo, series,
+ this.filter.panelId, this.filter, legend, filterType, errorMsg);
+ } else {
+ this.$refs['editChart' + chartInfo.id][0].setData(chartInfo, series,
+ this.filter.panelId, this.filter, legend, '', errorMsg);
+ }
+ } else if (chartInfo.type === 'singleStat') {
+ if (filterType === 'showFullScreen') {//全屏查询
+ this.$refs['editChart' + chartInfo.id][0].setData(chartInfo, singleStatRlt,
+ this.filter.panelId, this.filter, filterType, errorMsg);
+ } else {
+ this.$refs['editChart' + chartInfo.id][0].setData(chartInfo, singleStatRlt,
+ this.filter.panelId, this.filter, '', errorMsg);
+ }
+ }
}
},
getAssetInfoChartData(chartInfo){
@@ -1135,11 +1266,30 @@ export default {
let data=response.data;
this.$refs['editChart'+chartInfo.id][0].setData(chartInfo, data, this.filter.panelId, this.filter);
}else{
- this.$refs['editChart'+chartInfo.id][0].setData(chartInfo, {}, this.filter.panelId, this.filter,reponse.msg);
+ this.$refs['editChart'+chartInfo.id][0].setData(chartInfo, {}, this.filter.panelId, this.filter, response.msg);
}
})
- }else{
- this.$refs['editChart'+chartInfo.id][0].endLoading();
+ }else {
+ let data = {Basic: {
+ alert:0,
+ assetType: "xxx",
+ cabinet: "xxx",
+ dataCenter: "xxx",
+ endpoint: 1,
+ host: "xxx.xxx.xxx.xxx",
+ id: -1,
+ model: "xxx",
+ pingLastReply: new Date(),
+ pingRtt: 0,
+ pingStatus: 1,
+ principal: "admin",
+ purchaseDate: null,
+ sn: "xxx",
+ state: 1,
+ tel: "xxxxxxxxxxx",
+ vendor: "xxx"
+ }};
+ this.$refs['editChart'+chartInfo.id][0].setData(chartInfo, data, this.filter.panelId, this.filter);
}
},
// 设置图表的宽度