feat: 仪表板 添加 min max

This commit is contained in:
zhangyu
2021-12-24 15:32:16 +08:00
parent cd7e043eff
commit af51ff5b48
4 changed files with 66 additions and 3 deletions

View File

@@ -93,8 +93,8 @@ export default {
}
}
gauge.value = getMetricTypeValue(data.values, chartInfo.param.statistics || 'last')
gauge.max = getMetricTypeValue(data.values, 'max')
gauge.min = getMetricTypeValue(data.values, 'min')
gauge.max = chartInfo.param.max || 100
gauge.min = chartInfo.param.min || 0
if (gauge.min === gauge.max) {
gauge.min = gauge.max / 2
}

View File

@@ -328,6 +328,26 @@
</el-select>
</el-form-item>
</div>
<div class="form-items--half-width-group" v-if="isGauge(chartConfig.type)">
<!--min-->
<el-form-item :label="$t('dashboard.panel.chartForm.min')" class="form-item--half-width">
<el-input-number
size="small"
style="margin-top: 2px"
:controls="false"
@change="change"
show-word-limit v-model="chartConfig.param.min"/>
</el-form-item>
<!--max-->
<el-form-item :label="$t('dashboard.panel.chartForm.max')" class="form-item--half-width">
<el-input-number
size="small"
style="margin-top: 2px"
:controls="false"
@change="change"
show-word-limit v-model="chartConfig.param.max"/>
</el-form-item>
</div>
<div v-if="isShowLegend(chartConfig.type)">
<!--legendConfig-->
@@ -657,6 +677,7 @@ import chartTypeShow from '@/components/common/rightBox/chart/chartTypeShow'
import VueTagsInput from '@johmun/vue-tags-input'
import draggable from 'vuedraggable'
import { randomcolor, ColorReverse } from '@/components/common/js/radomcolor/randomcolor'
import { isGauge } from '@/components/chart/chart/tools'
export default {
name: 'chartConfig',
@@ -735,6 +756,7 @@ export default {
}
},
methods: {
isGauge,
beforeInit () {
this.promqlType = this.type
this.chartTypeList = this[this.type + 'ChartTypeList']
@@ -772,7 +794,7 @@ export default {
legend: true,
valueMapping: false,
thresholds: false
},
}
}
this.$nextTick(() => {
this.chartConfig.param.thresholds.push({ value: undefined, color: randomcolor() })
@@ -791,6 +813,8 @@ export default {
statistics: 'last',
text: 'value',
valueMapping: [],
min: 0,
max: 100,
enable: {
legend: true,
valueMapping: false,

View File

@@ -201,6 +201,10 @@ export default {
if (!params.groupId) {
params.groupId = 0
}
if (params.type !== 'guage') {
delete params.param.min
delete params.param.max
}
if (!params.x && !params.y) {
params.x = this.chartLastPosition.x + params.span > 12 ? 0 : this.chartLastPosition.x
params.y = this.chartLastPosition.y + 12
@@ -284,6 +288,8 @@ export default {
height: 4,
unit: 2,
type: 'line',
min: 0,
max: 100,
elements: [{ expression: '', legend: '', type: 'expert', id: '', name: 'A' }],
param: {
stack: 0,
@@ -328,6 +334,8 @@ export default {
nullType: 'null',
statistics: 'last',
text: 'value',
min: 0,
max: 100,
enable: {
thresholds: false,
legend: true,
@@ -413,6 +421,12 @@ export default {
if (this.editChart.groupId === -1) {
this.editChart.groupId = ''
}
if (!this.editChart.param.min) {
this.editChart.param.min = 0
}
if (!this.editChart.param.max) {
this.editChart.param.max = 100
}
}
},
'editChart.type': {

View File

@@ -233,6 +233,26 @@
</el-select>
</el-form-item>
</div>
<div class="form-items--half-width-group" v-if="isGauge(chartConfig.type)">
<!--min-->
<el-form-item :label="$t('dashboard.panel.chartForm.min')" class="form-item--half-width">
<el-input-number
size="small"
style="margin-top: 2px"
:controls="false"
@change="change"
show-word-limit v-model="chartConfig.param.min"/>
</el-form-item>
<!--max-->
<el-form-item :label="$t('dashboard.panel.chartForm.max')" class="form-item--half-width">
<el-input-number
size="small"
style="margin-top: 2px"
:controls="false"
@change="change"
show-word-limit v-model="chartConfig.param.max"/>
</el-form-item>
</div>
<div class="form-items--half-width-group">
<!-- text -->
<el-form-item
@@ -477,6 +497,8 @@ import publicConfig from '@/components/common/rightBox/chart/publicConfig'
import chartTypeShow from '@/components/common/rightBox/chart/chartTypeShow'
import nezhaColor from '@/components/common/nezhaColor'
import VueTagsInput from '@johmun/vue-tags-input'
import { isGauge } from '@/components/chart/chart/tools'
export default {
name: 'systemChartConfig',
mixins: [publicConfig, chartTypeShow],
@@ -536,6 +558,7 @@ export default {
}
},
methods: {
isGauge,
init () {
this.chartConfig = JSON.parse(JSON.stringify(this.params))
this.oldType = this.chartConfig.type
@@ -580,6 +603,8 @@ export default {
statistics: 'last',
valueMapping: [],
text: 'value',
min: 0,
max: 100,
enable: {
legend: true,
valueMapping: false,