diff --git a/nezha-fronted/src/assets/css/font/iconfont.ttf b/nezha-fronted/src/assets/css/font/iconfont.ttf index 512b6f4ab..b3e086773 100644 Binary files a/nezha-fronted/src/assets/css/font/iconfont.ttf and b/nezha-fronted/src/assets/css/font/iconfont.ttf differ diff --git a/nezha-fronted/src/assets/css/font/iconfont.woff b/nezha-fronted/src/assets/css/font/iconfont.woff index 5aad3df85..3c82f8696 100644 Binary files a/nezha-fronted/src/assets/css/font/iconfont.woff and b/nezha-fronted/src/assets/css/font/iconfont.woff differ diff --git a/nezha-fronted/src/assets/css/font/iconfont.woff2 b/nezha-fronted/src/assets/css/font/iconfont.woff2 index 9c7f87b06..64b881526 100644 Binary files a/nezha-fronted/src/assets/css/font/iconfont.woff2 and b/nezha-fronted/src/assets/css/font/iconfont.woff2 differ diff --git a/nezha-fronted/src/assets/css/nzIcon.css b/nezha-fronted/src/assets/css/nzIcon.css index 77274a711..ea4677fb6 100644 --- a/nezha-fronted/src/assets/css/nzIcon.css +++ b/nezha-fronted/src/assets/css/nzIcon.css @@ -1,8 +1,8 @@ @font-face { font-family: "nz-icon"; /* Project id 2030432 */ - src: url('./font/iconfont.woff2?t=1622444713388') format('woff2'), - url('./font/iconfont.woff?t=1622444713388') format('woff'), - url('./font/iconfont.ttf?t=1622444713388') format('truetype'); + src: url('./font/iconfont.woff2?t=1622511827153') format('woff2'), + url('./font/iconfont.woff?t=1622511827153') format('woff'), + url('./font/iconfont.ttf?t=1622511827153') format('truetype'); } .nz-icon { @@ -13,6 +13,14 @@ -moz-osx-font-smoothing: grayscale; } +.nz-icon-fast-silence:before { + content: "\e64e"; +} + +.nz-icon-mute:before { + content: "\e63e"; +} + .nz-icon-guide:before { content: "\e669"; } diff --git a/nezha-fronted/src/assets/stylus/main.scss b/nezha-fronted/src/assets/stylus/main.scss index 30b63fe9b..db22622f9 100644 --- a/nezha-fronted/src/assets/stylus/main.scss +++ b/nezha-fronted/src/assets/stylus/main.scss @@ -2182,3 +2182,6 @@ li{ border-color: $global-text-color-active; background-color: $global-text-color-active; } +.nz-dialog.silence-box .el-dialog__body{ + padding-bottom: 0; +} diff --git a/nezha-fronted/src/components/charts/chart-list-group.vue b/nezha-fronted/src/components/charts/chart-list-group.vue index 0d5279e32..023dc4dc2 100644 --- a/nezha-fronted/src/components/charts/chart-list-group.vue +++ b/nezha-fronted/src/components/charts/chart-list-group.vue @@ -341,7 +341,6 @@ export default { if (canvas && canvasclone) { const image = new Image() image.src = canvas.toDataURL() - // console.log('clone-image',image); const ctxClone = canvasclone.getContext('2d') // ctxClone.drawImage(image,0,0); image.onload = function () { diff --git a/nezha-fronted/src/components/common/dialog/alertSilenceBox.vue b/nezha-fronted/src/components/common/dialog/alertSilenceBox.vue new file mode 100644 index 000000000..de9e6e4f8 --- /dev/null +++ b/nezha-fronted/src/components/common/dialog/alertSilenceBox.vue @@ -0,0 +1,444 @@ + + + + + diff --git a/nezha-fronted/src/components/common/language/cn.js b/nezha-fronted/src/components/common/language/cn.js index 510830d0b..925be8ede 100644 --- a/nezha-fronted/src/components/common/language/cn.js +++ b/nezha-fronted/src/components/common/language/cn.js @@ -131,7 +131,9 @@ const cn = { editType: '类型', searchCondition: '搜索条件', batchDel: '批量删除', - tempPrev: '模板预览' + tempPrev: '模板预览', + silenceAlert: '告警静默', + quickSilent: '快速静默' }, setup: { step0: '欢迎', diff --git a/nezha-fronted/src/components/common/language/en.js b/nezha-fronted/src/components/common/language/en.js index 4bed4ced1..3103d9d0d 100644 --- a/nezha-fronted/src/components/common/language/en.js +++ b/nezha-fronted/src/components/common/language/en.js @@ -136,7 +136,9 @@ const en = { editType: 'Type', searchCondition: 'Search condition', batchDel: 'Batches delete', - tempPrev: 'Template preview' + tempPrev: 'Template preview', + silenceAlert: 'silence alert', + quickSilent: 'Quick silent' }, pageSize: '/page', setup: { diff --git a/nezha-fronted/src/components/common/mixin/dataList.js b/nezha-fronted/src/components/common/mixin/dataList.js index c27406028..1a62e87bc 100644 --- a/nezha-fronted/src/components/common/mixin/dataList.js +++ b/nezha-fronted/src/components/common/mixin/dataList.js @@ -1,6 +1,7 @@ import bus from '@/libs/bus' import { tableSet } from '@/components/common/js/tools' import { fromRoute } from '@/components/common/js/constants' +import {object} from "cytoscape/src/is"; export default { data () { return { @@ -130,6 +131,13 @@ export default { this.getTableData() } }, + closeSilenceBox (refresh) { + this.silenceBoxShow = false + if (refresh) { + this.delFlag = true + this.getTableData() + } + }, edit (u) { this.$get(`${this.url}/${u.id}`).then(response => { if (response.code === 200) { @@ -204,6 +212,34 @@ export default { } else { this.dataListLayout.push('clickSearch') } + }, + addSilence (row, type) { + this.blankSilenceObject.startAt = bus.timeFormate(bus.getOffsetTimezoneData(), 'yyyy-MM-dd hh:mm:ss') + this.blankSilenceObject.endAt = bus.timeFormate(bus.getOffsetTimezoneData(1), 'yyyy-MM-dd hh:mm:ss') + this.objectSilence = JSON.parse(JSON.stringify(this.blankSilenceObject)) + if (type !== 'alertMessage' && type !== 'alertRule') { + this.objectSilence.matchers = [ + { name: type, value: row.name, regex: 0 }, + { name: type + '_id', value: row.id, regex: 0 } + ] + } else if (type === 'alertMessage') { + if (typeof row.labels === 'string') row.labels = JSON.parse(row.labels) + const labels = JSON.parse(JSON.stringify(row.labels)) + this.objectSilence.matchers = [] + Object.keys(labels).forEach((key, i) => { + this.objectSilence.matchers.push( + { name: key, value: labels[key], regex: 0 } + ) + }) + } else if (type === 'alertRule') { + this.objectSilence.matchers = [ + { name: 'alertName', value: row.name, regex: 0 }, + ] + } + this.silenceBoxShow = true + }, + closeDialog () { + this.silenceBoxShow = false } }, watch: { @@ -240,7 +276,7 @@ export default { return item }) if (localStorageTableTitle && (localStorageTableTitle.length > this.$refs.dataTable.tableTitle.length)) { - const arr = localStorageTableTitle.splice(this.$refs.dataTable.tableTitle.length,localStorageTableTitle.length) + const arr = localStorageTableTitle.splice(this.$refs.dataTable.tableTitle.length, localStorageTableTitle.length) this.tools.customTableTitle = this.tools.customTableTitle.concat(arr) } if (!this.fromBottom) { diff --git a/nezha-fronted/src/components/common/mixin/table.js b/nezha-fronted/src/components/common/mixin/table.js index 968b45da3..ec8078517 100644 --- a/nezha-fronted/src/components/common/mixin/table.js +++ b/nezha-fronted/src/components/common/mixin/table.js @@ -42,6 +42,11 @@ export default { this.$emit('sync', row) break } + case 'fastSilence': { + // this.$emit('copy', row) + this.$emit('addSilence', row, param) + break + } default: this.$emit(command, row) break diff --git a/nezha-fronted/src/components/common/pagination.vue b/nezha-fronted/src/components/common/pagination.vue index 8bfa5db02..752f78f3f 100644 --- a/nezha-fronted/src/components/common/pagination.vue +++ b/nezha-fronted/src/components/common/pagination.vue @@ -143,14 +143,12 @@ export default { popClass: { immediate: true, handler (n, o) { - // console.log(n) } }, pageObj: { immediate: true, deep: true, handler (n, o) { - // console.log(n,n) } } } diff --git a/nezha-fronted/src/components/common/project/L5/CanvasProps.vue b/nezha-fronted/src/components/common/project/L5/CanvasProps.vue index a5546c0f8..abf27d5e2 100644 --- a/nezha-fronted/src/components/common/project/L5/CanvasProps.vue +++ b/nezha-fronted/src/components/common/project/L5/CanvasProps.vue @@ -1345,7 +1345,6 @@ export default { this.onChange() }, bkTypeChange (val) { - // console.log(val); this.selection.pen.data.gradientType = val this.$forceUpdate() if (val === 0) { diff --git a/nezha-fronted/src/components/common/table/alert/alertMessageTable.vue b/nezha-fronted/src/components/common/table/alert/alertMessageTable.vue index 2216b3361..b7fc34ff2 100644 --- a/nezha-fronted/src/components/common/table/alert/alertMessageTable.vue +++ b/nezha-fronted/src/components/common/table/alert/alertMessageTable.vue @@ -116,6 +116,7 @@ {{$t('overall.delete')}} + {{$t('overall.silenceAlert')}} diff --git a/nezha-fronted/src/components/common/table/alert/alertRuleTable.vue b/nezha-fronted/src/components/common/table/alert/alertRuleTable.vue index 0fea36901..750c67540 100644 --- a/nezha-fronted/src/components/common/table/alert/alertRuleTable.vue +++ b/nezha-fronted/src/components/common/table/alert/alertRuleTable.vue @@ -72,6 +72,7 @@ {{$t('overall.edit')}} {{$t('overall.delete')}} + {{$t('overall.silenceAlert')}} diff --git a/nezha-fronted/src/components/common/table/asset/assetTable.vue b/nezha-fronted/src/components/common/table/asset/assetTable.vue index f65209f4a..8f2e1fb0a 100644 --- a/nezha-fronted/src/components/common/table/asset/assetTable.vue +++ b/nezha-fronted/src/components/common/table/asset/assetTable.vue @@ -80,6 +80,7 @@ {{$t('dashboard.connect')}} {{$t('dashboard.duplicate')}} {{$t('overall.delete')}} + {{$t('overall.silenceAlert')}} diff --git a/nezha-fronted/src/components/common/table/settings/endpointTable.vue b/nezha-fronted/src/components/common/table/settings/endpointTable.vue index bed7accf0..b513ad983 100644 --- a/nezha-fronted/src/components/common/table/settings/endpointTable.vue +++ b/nezha-fronted/src/components/common/table/settings/endpointTable.vue @@ -105,6 +105,7 @@ {{$t('overall.query')}} {{$t('overall.edit')}} {{$t('overall.delete')}} + {{$t('overall.silenceAlert')}} diff --git a/nezha-fronted/src/components/common/table/settings/moduleTable.vue b/nezha-fronted/src/components/common/table/settings/moduleTable.vue index 91ab43c9b..f4e51f497 100644 --- a/nezha-fronted/src/components/common/table/settings/moduleTable.vue +++ b/nezha-fronted/src/components/common/table/settings/moduleTable.vue @@ -74,6 +74,7 @@ {{$t('overall.edit')}} {{$t('overall.delete')}} {{$t('overall.syncChart')}} + {{$t('overall.silenceAlert')}} diff --git a/nezha-fronted/src/components/common/table/settings/projectTable.vue b/nezha-fronted/src/components/common/table/settings/projectTable.vue index ba4ba1f5d..f62489e57 100644 --- a/nezha-fronted/src/components/common/table/settings/projectTable.vue +++ b/nezha-fronted/src/components/common/table/settings/projectTable.vue @@ -76,6 +76,7 @@ {{$t('overall.edit')}} {{$t('overall.delete')}} + {{$t('overall.silenceAlert')}} diff --git a/nezha-fronted/src/components/page/alert/alertMessage.vue b/nezha-fronted/src/components/page/alert/alertMessage.vue index 0c22ec58d..480f847a6 100644 --- a/nezha-fronted/src/components/page/alert/alertMessage.vue +++ b/nezha-fronted/src/components/page/alert/alertMessage.vue @@ -37,6 +37,7 @@ @orderBy="tableDataSort" @queryMessage='queryMessage' @reload="getTableData" + @addSilence="addSilence" @selectionChange="selectionChange" @showBottomBox="(targetTab, object) => { $refs.dataList.showBottomBox(targetTab, object) }" @messageDetail="messageDetail"> @@ -94,6 +95,9 @@ + + +