feat:新功能
1 panel列表中图表错误信息参考grafana实现(只实现了列表部分,全屏和预览未实现)
This commit is contained in:
@@ -584,6 +584,7 @@ export default {
|
|||||||
visible: true,
|
visible: true,
|
||||||
threshold: null,
|
threshold: null,
|
||||||
};
|
};
|
||||||
|
let errorMsg = "";
|
||||||
res.forEach((response, innerPos) => {
|
res.forEach((response, innerPos) => {
|
||||||
if (response.status === 'success') {
|
if (response.status === 'success') {
|
||||||
if (response.data.result) {
|
if (response.data.result) {
|
||||||
@@ -683,33 +684,36 @@ export default {
|
|||||||
}
|
}
|
||||||
}else{
|
}else{
|
||||||
if(response.msg){
|
if(response.msg){
|
||||||
this.$message.error(response.msg);
|
//this.$message.error(response.msg);
|
||||||
|
errorMsg = response.msg;
|
||||||
}else if(response.error){
|
}else if(response.error){
|
||||||
this.$message.error(response.error);
|
//this.$message.error(response.error);
|
||||||
|
errorMsg = response.error;
|
||||||
}else {
|
}else {
|
||||||
this.$message.error(response);
|
//this.$message.error(response);
|
||||||
|
errorMsg = response;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
});
|
});
|
||||||
if(this.$refs.editChart&&this.$refs.editChart[index]) {
|
if(this.$refs.editChart&&this.$refs.editChart[index]) {
|
||||||
if (chartItem.type === 'table') {//表格
|
if (chartItem.type === 'table') {//表格
|
||||||
if (filterType === 'showFullScreen') {//table的全屏查询
|
if (filterType === 'showFullScreen') {//全屏查询
|
||||||
this.$refs.editChart[index].setData(chartItem, tableData,
|
this.$refs.editChart[index].setData(chartItem, tableData,
|
||||||
this.filter.panelId, this.filter, filterType);
|
this.filter.panelId, this.filter, filterType,errorMsg);
|
||||||
} else {
|
} else {
|
||||||
this.$refs.editChart[index].setData(chartItem, tableData,
|
this.$refs.editChart[index].setData(chartItem, tableData,
|
||||||
this.filter.panelId, this.filter);
|
this.filter.panelId, this.filter,'',errorMsg);
|
||||||
}
|
}
|
||||||
} else if (chartItem.type === 'line' || chartItem.type === 'bar' || chartItem.type === 'stackArea' || chartItem.type === 4) {
|
} else if (chartItem.type === 'line' || chartItem.type === 'bar' || chartItem.type === 'stackArea' || chartItem.type === 4) {
|
||||||
if (series.length && chartItem.type === 4) {//曲线汇总
|
if (series.length && chartItem.type === 4) {//曲线汇总
|
||||||
//series.push(sumData);//后续需要
|
//series.push(sumData);//后续需要
|
||||||
}
|
}
|
||||||
if (filterType === 'showFullScreen') {//table的全屏查询
|
if (filterType === 'showFullScreen') {//全屏查询
|
||||||
this.$refs.editChart[index].setData(chartItem, series,
|
this.$refs.editChart[index].setData(chartItem, series,
|
||||||
this.filter.panelId, this.filter, legend, filterType);
|
this.filter.panelId, this.filter, legend, filterType,errorMsg);
|
||||||
} else {
|
} else {
|
||||||
this.$refs.editChart[index].setData(chartItem, series,
|
this.$refs.editChart[index].setData(chartItem, series,
|
||||||
this.filter.panelId, this.filter, legend);
|
this.filter.panelId, this.filter, legend,'',errorMsg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -78,6 +78,46 @@
|
|||||||
text-align: center;
|
text-align: center;
|
||||||
width: 100%;
|
width: 100%;
|
||||||
line-height: 28px;
|
line-height: 28px;
|
||||||
|
.panel-info-corner {
|
||||||
|
color: #767980;
|
||||||
|
cursor: pointer;
|
||||||
|
position: absolute;
|
||||||
|
display: none;
|
||||||
|
left: 0;
|
||||||
|
width: 28px;
|
||||||
|
height: 28px;
|
||||||
|
z-index: 2;
|
||||||
|
top: 0;
|
||||||
|
}
|
||||||
|
.panel-info-corner--error {
|
||||||
|
display: block;
|
||||||
|
color: #fff;
|
||||||
|
}
|
||||||
|
.panel-info-corner .fa {
|
||||||
|
position: relative;
|
||||||
|
top: -6px;
|
||||||
|
left: -6px;
|
||||||
|
font-size: 75%;
|
||||||
|
z-index: 3;
|
||||||
|
}
|
||||||
|
.fa {
|
||||||
|
display: inline-block;
|
||||||
|
text-rendering: auto;
|
||||||
|
-webkit-font-smoothing: antialiased;
|
||||||
|
}
|
||||||
|
|
||||||
|
.panel-info-corner--error .panel-info-corner-inner {
|
||||||
|
border-left: 28px solid #e02f44;
|
||||||
|
border-right: none;
|
||||||
|
border-bottom: 28px solid rgba(0,0,0,0);
|
||||||
|
}
|
||||||
|
.panel-info-corner-inner {
|
||||||
|
width: 0;
|
||||||
|
height: 0;
|
||||||
|
position: absolute;
|
||||||
|
left: 0;
|
||||||
|
bottom: 0;
|
||||||
|
}
|
||||||
.nz-chart-top{
|
.nz-chart-top{
|
||||||
width:100%;
|
width:100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -18,7 +18,18 @@
|
|||||||
</div>
|
</div>
|
||||||
-->
|
-->
|
||||||
<div class="clearfix chartTitle" :class="{'dragTitle':dragTitleShow}" :id="'chartTitle'+chartIndex">
|
<div class="clearfix chartTitle" :class="{'dragTitle':dragTitleShow}" :id="'chartTitle'+chartIndex">
|
||||||
|
<el-popover
|
||||||
|
v-if="isError"
|
||||||
|
close-delay="10"
|
||||||
|
placement="top-start"
|
||||||
|
trigger="hover"
|
||||||
|
popper-class="chart-error-popper">
|
||||||
|
<div >{{errorContent}}</div>
|
||||||
|
<span slot="reference" style="" class="panel-info-corner panel-info-corner--error">
|
||||||
|
<i class="nz-icon nz-icon-warning fa"></i>
|
||||||
|
<span class="panel-info-corner-inner"></span>
|
||||||
|
</span>
|
||||||
|
</el-popover>
|
||||||
<el-dropdown trigger="click" v-show="firstShow" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos">
|
<el-dropdown trigger="click" v-show="firstShow" class="nz-chart-top" :key="'chartDropdown'+chartIndex" v-clickoutside="clickos">
|
||||||
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
<el-dropdown-menu style="display: none"></el-dropdown-menu>
|
||||||
<span class="el-dropdown-link chart-title" @click="dropdownMenuShow=!dropdownMenuShow">
|
<span class="el-dropdown-link chart-title" @click="dropdownMenuShow=!dropdownMenuShow">
|
||||||
@@ -126,6 +137,8 @@ export default {
|
|||||||
return {
|
return {
|
||||||
data: {}, // 该图表信息,chartItem
|
data: {}, // 该图表信息,chartItem
|
||||||
unit:{},
|
unit:{},
|
||||||
|
isError:false,
|
||||||
|
errorContent:'',
|
||||||
pageSizes:[50,100,200],
|
pageSizes:[50,100,200],
|
||||||
pageObj: {
|
pageObj: {
|
||||||
pageNo: 1,
|
pageNo: 1,
|
||||||
@@ -563,7 +576,14 @@ export default {
|
|||||||
//this.endLoading('screen');
|
//this.endLoading('screen');
|
||||||
},
|
},
|
||||||
// 设置数据, filter区分
|
// 设置数据, filter区分
|
||||||
setData(chartItem, seriesItem, panelId, filter,area) {
|
setData(chartItem, seriesItem, panelId, filter,area,errorMsg) {
|
||||||
|
if(errorMsg && errorMsg!==''){
|
||||||
|
this.isError = true;
|
||||||
|
this.errorContent = errorMsg;
|
||||||
|
}else {
|
||||||
|
this.isError = false;
|
||||||
|
this.errorContent = '';
|
||||||
|
}
|
||||||
if(area==='showFullScreen'){//全屏按时间查询
|
if(area==='showFullScreen'){//全屏按时间查询
|
||||||
this.data = chartItem;
|
this.data = chartItem;
|
||||||
this.unit = chartDataFormat.getUnit(this.data.unit);
|
this.unit = chartDataFormat.getUnit(this.data.unit);
|
||||||
|
|||||||
@@ -74,6 +74,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
.chart-error-popper[x-placement^=top] .popper__arrow::after {
|
||||||
|
border-top-color: #e02f44;
|
||||||
|
}
|
||||||
|
.chart-error-popper{
|
||||||
|
background-color:#e02f44;
|
||||||
|
color:#FFF;
|
||||||
|
word-wrap:break-word;
|
||||||
|
word-break:break-word;
|
||||||
|
max-width:280px;
|
||||||
|
border: 1px solid #e02f44;
|
||||||
|
}
|
||||||
.line-chart-block {
|
.line-chart-block {
|
||||||
height: 100%;
|
height: 100%;
|
||||||
//min-height: 0px;
|
//min-height: 0px;
|
||||||
@@ -152,9 +163,7 @@
|
|||||||
left: 0;
|
left: 0;
|
||||||
bottom: 0;
|
bottom: 0;
|
||||||
}
|
}
|
||||||
.chart-error-popper{
|
|
||||||
background-color:#e02f44;
|
|
||||||
}
|
|
||||||
.nz-chart-top{
|
.nz-chart-top{
|
||||||
width:100%;
|
width:100%;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -27,10 +27,10 @@
|
|||||||
<el-popover
|
<el-popover
|
||||||
v-if="isError"
|
v-if="isError"
|
||||||
placement="top-start"
|
placement="top-start"
|
||||||
width="200"
|
close-delay="10"
|
||||||
popper-class="chart-error-popper"
|
|
||||||
trigger="hover"
|
trigger="hover"
|
||||||
content="。。">
|
popper-class="chart-error-popper">
|
||||||
|
<div >{{errorContent}}</div>
|
||||||
<span slot="reference" style="" class="panel-info-corner panel-info-corner--error">
|
<span slot="reference" style="" class="panel-info-corner panel-info-corner--error">
|
||||||
<i class="nz-icon nz-icon-warning fa"></i>
|
<i class="nz-icon nz-icon-warning fa"></i>
|
||||||
<span class="panel-info-corner-inner"></span>
|
<span class="panel-info-corner-inner"></span>
|
||||||
@@ -170,6 +170,7 @@
|
|||||||
seriesItemScreen:[],
|
seriesItemScreen:[],
|
||||||
images: '',
|
images: '',
|
||||||
isError:false,
|
isError:false,
|
||||||
|
errorContent:'',
|
||||||
toolbox: false,
|
toolbox: false,
|
||||||
items: {
|
items: {
|
||||||
metric_name: [], // 每条数据列名称
|
metric_name: [], // 每条数据列名称
|
||||||
@@ -1165,8 +1166,15 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
// 设置数据, filter区分
|
// 设置数据, filter区分
|
||||||
setData(chartItem, seriesItem, panelId, filter,legend,area) {
|
setData(chartItem, seriesItem, panelId, filter,legend,area,errorMsg) {
|
||||||
this.setColor(legend.length);
|
this.setColor(legend.length);
|
||||||
|
if(errorMsg && errorMsg!==''){
|
||||||
|
this.isError = true;
|
||||||
|
this.errorContent = errorMsg;
|
||||||
|
}else {
|
||||||
|
this.isError = false;
|
||||||
|
this.errorContent = '';
|
||||||
|
}
|
||||||
if(area==='showFullScreen'){//全屏按时间查询
|
if(area==='showFullScreen'){//全屏按时间查询
|
||||||
/*
|
/*
|
||||||
this.legend = legend;
|
this.legend = legend;
|
||||||
|
|||||||
Reference in New Issue
Block a user