fix:修改alert rule methods receiver 的显示

This commit is contained in:
zhangyu
2021-05-11 19:43:59 +08:00
parent e44a7bcc5d
commit d1fa2284a9
3 changed files with 45 additions and 13 deletions

View File

@@ -64,7 +64,14 @@
<el-form-item :label='$t("alert.silence.matchers")' prop="matchers" class="matchers"> <el-form-item :label='$t("alert.silence.matchers")' prop="matchers" class="matchers">
<div v-for="(item, index) in editAlertSilence.matchers" :key="index" class="param-box-row"> <div v-for="(item, index) in editAlertSilence.matchers" :key="index" class="param-box-row">
<el-form-item class="param-box-row-key" :rules="[{ required: true, message: $t('validate.required'), trigger: 'change' },]" :prop="'matchers.' + index + '.name'"> <el-form-item class="param-box-row-key" :rules="[{ required: true, message: $t('validate.required'), trigger: 'change' },]" :prop="'matchers.' + index + '.name'">
<el-input placeholder="key" size="mini" v-model="item.name"></el-input> <el-autocomplete
class="inline-input silence-matchers-key"
placeholder="key"
size="mini"
v-model="item.name"
:fetch-suggestions="querySearch"
@select="handleSelect"
></el-autocomplete>
</el-form-item> </el-form-item>
<span class="param-box-row-eq">=</span> <span class="param-box-row-eq">=</span>
<el-form-item class="param-box-row-value" :prop="'matchers.' + index + '.value'" :rules="[{ required: true, message: $t('validate.required'), trigger: 'change' },]" > <el-form-item class="param-box-row-value" :prop="'matchers.' + index + '.value'" :rules="[{ required: true, message: $t('validate.required'), trigger: 'change' },]" >
@@ -111,7 +118,8 @@
</template> </template>
<script> <script>
import bus from '../../../libs/bus' import bus from '@/libs/bus'
import { sameLabels } from '@/components/common/js/constants'
// import selectAlertSilence from '../alert/selectAlertSilence' // import selectAlertSilence from '../alert/selectAlertSilence'
export default { export default {
name: 'alertSilenceBox', name: 'alertSilenceBox',
@@ -174,8 +182,8 @@ export default {
{ validator: validate, trigger: 'change' } { validator: validate, trigger: 'change' }
], ],
name: [ name: [
{ required: true, message: this.$t('validate.required'), trigger: 'change' }, { required: true, message: this.$t('validate.required'), trigger: 'change' }
], ]
}, },
rangeTime: '', rangeTime: '',
ruleList: [], ruleList: [],
@@ -319,6 +327,25 @@ export default {
this.editAlertSilence.matchers = [{ name: '', value: '', regex: 0 }] this.editAlertSilence.matchers = [{ name: '', value: '', regex: 0 }]
} }
this.editAlertSilence.matchers.splice(index, 1) this.editAlertSilence.matchers.splice(index, 1)
},
querySearch (queryString, cb) {
const labels = sameLabels.map(item=>{
return {
name :item,
value: item
}
})
const results = queryString ? labels.filter(this.createFilter(queryString)) : labels
// 调用 callback 返回建议列表的数据
cb(results)
},
createFilter (queryString) {
return (label) => {
return (label.value.toLowerCase().indexOf(queryString.toLowerCase()) === 0)
}
},
handleSelect (item) {
console.log(item)
} }
} }
} }
@@ -366,7 +393,7 @@ export default {
} }
/deep/ .el-form-item__error{ /deep/ .el-form-item__error{
left: 126px; left: 126px;
padding-top: 10px; padding-top: 5px;
} }
.matchers-type{ .matchers-type{
display: flex; display: flex;
@@ -400,6 +427,9 @@ export default {
/deep/ .silence-matchers-value{ /deep/ .silence-matchers-value{
width: calc(100% - 100px); width: calc(100% - 100px);
} }
/deep/ .silence-matchers-key{
width: 100%;
}
.silence-matchers-regex{ .silence-matchers-regex{
margin-left: 10px; margin-left: 10px;
} }

View File

@@ -94,10 +94,6 @@ export default {
sortable: 'custom' sortable: 'custom'
}, },
{ {
label: this.$t('alert.method'),
prop: 'method',
show: true,
}, {
label: this.$t('alert.config.expr'), label: this.$t('alert.config.expr'),
prop: 'expr', prop: 'expr',
show: true show: true
@@ -135,7 +131,12 @@ export default {
}, { }, {
label: this.$t('alert.config.receiver'), label: this.$t('alert.config.receiver'),
prop: 'receivers', prop: 'receivers',
show: true show: false
},
{
label: this.$t('alert.notify'),
prop: 'method',
show: false
} }
] ]
} }

View File

@@ -108,6 +108,7 @@
import table from '@/components/common/mixin/table' import table from '@/components/common/mixin/table'
import { calcDurationByStringTimeB } from '@/components/common/js/tools' import { calcDurationByStringTimeB } from '@/components/common/js/tools'
import nzAlertTag from '../../../page/alert/nzAlertTag' import nzAlertTag from '../../../page/alert/nzAlertTag'
import { sameLabels } from '@/components/common/js/constants'
export default { export default {
name: 'alertSilenceTable', name: 'alertSilenceTable',
components: { components: {
@@ -154,7 +155,7 @@ export default {
}, { }, {
label: this.$t('alert.silence.upTime'), label: this.$t('alert.silence.upTime'),
prop: 'utime', prop: 'utime',
show: true, show: false,
width: 120 width: 120
}, { }, {
label: this.$t('alert.silence.state'), label: this.$t('alert.silence.state'),
@@ -176,7 +177,7 @@ export default {
}, },
tagType () { tagType () {
return (key) => { return (key) => {
if (key == 'asset' || key == 'module' || key == 'project' || key == 'datacenter' || key == 'endpoint') { if (sameLabels.find(item => item === key)) {
return 'normal' return 'normal'
} else { } else {
return 'info' return 'info'
@@ -187,7 +188,7 @@ export default {
methods: { methods: {
labelsSort (obj) { labelsSort (obj) {
obj = obj || [] obj = obj || []
const buildIn = ['asset', 'endpoint', 'module', 'project', 'datacenter'] const buildIn = sameLabels
if (typeof obj === 'string') obj = JSON.parse(obj) if (typeof obj === 'string') obj = JSON.parse(obj)
const labels = JSON.parse(JSON.stringify(obj)) const labels = JSON.parse(JSON.stringify(obj))
const result = [] const result = []