fix:修改 alertRule 复制无法修改type的问题

This commit is contained in:
zhangyu
2022-08-24 11:48:25 +08:00
parent 1d19b24feb
commit 0cb0b7131c
4 changed files with 25 additions and 23 deletions

View File

@@ -380,20 +380,6 @@ export default {
const self = this
return function (val, index) {
const value = formatScientificNotation(val, 6)
// let chartUnit = self.chartInfo.unit
// chartUnit = chartUnit || 2
// const unit = chartDataFormat.getUnit(chartUnit)
// // dot是判断最大值是否 小于1 大于1 默认是2 小于1 需要判断最大值是小数点后面几位
// if (chartDataFormat.Interval(maxValue, copies, unit.type, 'min') < 1 && dot < 2) { // 当其小于1 且 dot < 2 默认給2 如 0.9 dot为1
// dot = 2
// }
// if (!dot) { // 默认是2
// dot = 2
// }
// dot = bus.countDecimals(value)
// if (dot < self.chartDot) { // 根据具体值计算
// dot = self.chartDot
// }
return unit.compute(value, index, -1, dot)
}
},

View File

@@ -345,6 +345,8 @@ function asciiCompute (num, ascii, units, dot = 2) {
return ''
}
num = Number(num)
const SIGN = num > 0 ? 1 : -1
num = Math.abs(num)
let carry = 0
if (num > 1) {
const log = Math.log(num) / Math.log(ascii)
@@ -352,9 +354,9 @@ function asciiCompute (num, ascii, units, dot = 2) {
num = num / Math.pow(ascii, carry)
}
if (Number.isInteger(num)) {
return num + ' ' + units[carry]
return num * SIGN + ' ' + units[carry]
} else {
return num.toFixed(dot) + ' ' + units[carry]
return num.toFixed(dot) * SIGN + ' ' + units[carry]
}
}
// eslint-disable-next-line no-unused-vars

View File

@@ -50,9 +50,10 @@
<template v-if="showMetrics">
<el-row style="line-height: 32px;">
<promql-input
v-if="showMetrics"
:from-father-data="true"
:metricOptionsParent="metricOptions"
id="alert-box-input-promql"
id="alert-box-input-promql-metrics"
ref="promql"
:expression-list.sync="expressions"
:index="0"
@@ -67,7 +68,8 @@
<template v-else>
<el-row style="line-height: 32px;">
<promql-input
id="alert-box-input-promql"
v-if="!showMetrics"
id="alert-box-input-promql-logs"
ref="promql"
:expression-list.sync="expressions"
:index="0"
@@ -79,7 +81,7 @@
></promql-input>
</el-row>
</template>
</el-form-item>
</el-form-item>
<el-form-item label="OID" prop="expr" v-if="!showSnmpTrap">
<el-input id="alert-box-input-oid" v-model="editAlertRule.expr" size="small" type="text"></el-input>
</el-form-item>
@@ -612,12 +614,21 @@ export default {
this.editAlertRule.operator = '>'
}
if (val === 1) {
this.showSnmpTrap = true // showSnmpTrap 为 true 时显示 expr,threshold,unit
this.showSnmpTrap = false // showSnmpTrap 为 true 时显示 expr,threshold,unit
this.showMetrics = true
this.expressions = ['']
this.$refs.alertRuleForm.clearValidate('expr') // 移除from表单的 expr 验证
this.$nextTick(()=>{
this.showSnmpTrap = true
})
} else if (val === 2) {
this.showMetrics = false // showMetrics 为 false 时,展示 Logs label
this.showSnmpTrap = true // showSnmpTrap 为 true 时显示 expr,threshold,unit
this.showMetrics = false
this.expressions = ['']
// showMetrics 为 false 时,展示 Logs label
this.showSnmpTrap = false // showSnmpTrap 为 true 时显示 expr,threshold,unit
this.$nextTick(()=>{
this.showSnmpTrap = true
})
this.$refs.alertRuleForm.clearValidate('expr') // 移除from表单的 expr 验证
} else if (val === 3) {
this.showSnmpTrap = false // showSnmpTrap 为 false 时,展示 OID
@@ -650,7 +661,7 @@ export default {
this.editAlertRule = JSON.parse(JSON.stringify(n))
if (this.editAlertRule.id || this.editAlertRule.name) {
this.expressions = [this.editAlertRule.expr]
this.showTypeSelect = true // 当 edit 时禁用 type下拉框
this.showTypeSelect = !!this.editAlertRule.id // 当 edit 时禁用 type下拉框
if (n.type === 1) {
this.editAlertRule.type = 1
} else if (n.type === 2) {

View File

@@ -1183,6 +1183,9 @@ export default {
}
}
}
},
beforeDestroy () {
this.newView = null
}
}
</script>