diff --git a/nezha-fronted/config/index.js b/nezha-fronted/config/index.js index b270f7a71..92b754a70 100644 --- a/nezha-fronted/config/index.js +++ b/nezha-fronted/config/index.js @@ -71,5 +71,5 @@ module.exports = { // `npm run build --report` // Set to `true` or `false` to always turn it on or off bundleAnalyzerReport: process.env.npm_config_report - } + }, } diff --git a/nezha-fronted/src/assets/css/font/iconfont.css b/nezha-fronted/src/assets/css/font/iconfont.css index 3ff076db0..402f8f99e 100644 --- a/nezha-fronted/src/assets/css/font/iconfont.css +++ b/nezha-fronted/src/assets/css/font/iconfont.css @@ -1,8 +1,8 @@ @font-face { font-family: "nz-icon"; /* Project id 2030432 */ - src: url('iconfont.woff2?t=1649732646689') format('woff2'), - url('iconfont.woff?t=1649732646689') format('woff'), - url('iconfont.ttf?t=1649732646689') format('truetype'); + src: url('iconfont.woff2?t=1651733602600') format('woff2'), + url('iconfont.woff?t=1651733602600') format('woff'), + url('iconfont.ttf?t=1651733602600') format('truetype'); } .nz-icon { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.nz-icon-queren:before { + content: "\e771"; +} + .nz-icon-tool:before { content: "\e76f"; } diff --git a/nezha-fronted/src/assets/css/font/iconfont.js b/nezha-fronted/src/assets/css/font/iconfont.js index accb8a1dd..f90cf3be6 100644 --- a/nezha-fronted/src/assets/css/font/iconfont.js +++ b/nezha-fronted/src/assets/css/font/iconfont.js @@ -1 +1 @@ -!(function (a) { let h; let c; let l; let z; let o; let i = ''; var v = (v = document.getElementsByTagName('script'))[v.length - 1].getAttribute('data-injectcss'); const t = function (a, h) { h.parentNode.insertBefore(a, h) }; if (v && !a.__iconfont__svg__cssinject__) { a.__iconfont__svg__cssinject__ = !0; try { document.write('') } catch (a) { console && console.log(a) } } function m () { o || (o = !0, l()) } function p () { try { z.documentElement.doScroll('left') } catch (a) { return void setTimeout(p, 50) }m() }h = function () { let a; let h = document.createElement('div'); h.innerHTML = i, i = null, (h = h.getElementsByTagName('svg')[0]) && (h.setAttribute('aria-hidden', 'true'), h.style.position = 'absolute', h.style.width = 0, h.style.height = 0, h.style.overflow = 'hidden', h = h, (a = document.body).firstChild ? t(h, a.firstChild) : a.appendChild(h)) }, document.addEventListener ? ~['complete', 'loaded', 'interactive'].indexOf(document.readyState) ? setTimeout(h, 0) : (c = function () { document.removeEventListener('DOMContentLoaded', c, !1), h() }, document.addEventListener('DOMContentLoaded', c, !1)) : document.attachEvent && (l = h, z = a.document, o = !1, p(), z.onreadystatechange = function () { z.readyState == 'complete' && (z.onreadystatechange = null, m()) }) }(window)) +!function(a){var h,c,l,z,o,i='',v=(v=document.getElementsByTagName("script"))[v.length-1].getAttribute("data-injectcss"),t=function(a,h){h.parentNode.insertBefore(a,h)};if(v&&!a.__iconfont__svg__cssinject__){a.__iconfont__svg__cssinject__=!0;try{document.write("")}catch(a){console&&console.log(a)}}function m(){o||(o=!0,l())}function p(){try{z.documentElement.doScroll("left")}catch(a){return void setTimeout(p,50)}m()}h=function(){var a,h=document.createElement("div");h.innerHTML=i,i=null,(h=h.getElementsByTagName("svg")[0])&&(h.setAttribute("aria-hidden","true"),h.style.position="absolute",h.style.width=0,h.style.height=0,h.style.overflow="hidden",h=h,(a=document.body).firstChild?t(h,a.firstChild):a.appendChild(h))},document.addEventListener?~["complete","loaded","interactive"].indexOf(document.readyState)?setTimeout(h,0):(c=function(){document.removeEventListener("DOMContentLoaded",c,!1),h()},document.addEventListener("DOMContentLoaded",c,!1)):document.attachEvent&&(l=h,z=a.document,o=!1,p(),z.onreadystatechange=function(){"complete"==z.readyState&&(z.onreadystatechange=null,m())})}(window); \ No newline at end of file diff --git a/nezha-fronted/src/assets/css/font/iconfont.json b/nezha-fronted/src/assets/css/font/iconfont.json index 8636252c1..f085cd5bc 100644 --- a/nezha-fronted/src/assets/css/font/iconfont.json +++ b/nezha-fronted/src/assets/css/font/iconfont.json @@ -5,6 +5,13 @@ "css_prefix_text": "nz-icon-", "description": "", "glyphs": [ + { + "icon_id": "29460715", + "name": "确认", + "font_class": "queren", + "unicode": "e771", + "unicode_decimal": 59249 + }, { "icon_id": "28893756", "name": "Tool", diff --git a/nezha-fronted/src/assets/css/font/iconfont.ttf b/nezha-fronted/src/assets/css/font/iconfont.ttf index d480853bb..aef1a6714 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 d616e3a27..b55ca83be 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 62c37e43b..e9493f692 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 1b7c609d1..03a114daa 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=1649732646689') format('woff2'), - url('./font/iconfont.woff?t=1649732646689') format('woff'), - url('./font/iconfont.ttf?t=1649732646689') format('truetype'); + src: url('./font/iconfont.woff2?t=1651733602600') format('woff2'), + url('./font/iconfont.woff?t=1651733602600') format('woff'), + url('./font/iconfont.ttf?t=1651733602600') format('truetype'); } .nz-icon { @@ -13,6 +13,10 @@ -moz-osx-font-smoothing: grayscale; } +.nz-icon-queren:before { + content: "\e771"; +} + .nz-icon-tool:before { content: "\e76f"; } diff --git a/nezha-fronted/src/components/common/searchInput.vue b/nezha-fronted/src/components/common/searchInput.vue index 125b902a0..e3df0ecb1 100644 --- a/nezha-fronted/src/components/common/searchInput.vue +++ b/nezha-fronted/src/components/common/searchInput.vue @@ -921,6 +921,8 @@ export default { objectInfo.operation = val.val } else if (val.label === 'state') { objectInfo.state = val.val + } else if (val.label === 'acknowledge') { + objectInfo.acknowledge = val.val } } else { objectInfo[val.label] = val.val diff --git a/nezha-fronted/src/components/common/searchSelectInfo.vue b/nezha-fronted/src/components/common/searchSelectInfo.vue index b726e5084..b0a809367 100644 --- a/nezha-fronted/src/components/common/searchSelectInfo.vue +++ b/nezha-fronted/src/components/common/searchSelectInfo.vue @@ -173,6 +173,16 @@ const searchSelectInfo = { // value: 传给后台的值;label:显示给用 label: i18n.t('overall.disabled') } ], + acknowledge: [ + { + value: 'success', + label: i18n.t('config.system.reset.yes') + }, + { + value: 'fail', + label: i18n.t('config.system.reset.no') + } + ], varType: [ { value: '1', label: i18n.t('asset.asset') }, { value: '2', label: i18n.t('asset.endpoint') } diff --git a/nezha-fronted/src/components/common/table/alert/alertMessageTable.vue b/nezha-fronted/src/components/common/table/alert/alertMessageTable.vue index fdd171d2e..116c39c99 100644 --- a/nezha-fronted/src/components/common/table/alert/alertMessageTable.vue +++ b/nezha-fronted/src/components/common/table/alert/alertMessageTable.vue @@ -110,6 +110,7 @@ {{$t('overall.delete')}} {{$t('overall.silenceAlert')}} + {{$t('overall.acknowledge')}} diff --git a/nezha-fronted/src/components/page/alert/alertMessage.vue b/nezha-fronted/src/components/page/alert/alertMessage.vue index 222fb4d9b..df73b3740 100644 --- a/nezha-fronted/src/components/page/alert/alertMessage.vue +++ b/nezha-fronted/src/components/page/alert/alertMessage.vue @@ -23,7 +23,28 @@ type="button" @click="showExportDialog"> - + + + + + + + + {{$t('overall.batchAck')}} + + + + + @@ -161,6 +182,7 @@ import alertMessageInfo from '@/components/common/alert/alertMessageInfo' import lineData from '@/components/chart/defaultLineData' import logData from '@/components/chart/defaultLogData' import lodash from 'lodash' +import topToolMoreOptions from '@/components/common/popBox/topToolMoreOptions' export default { name: 'alertMessage', @@ -172,7 +194,8 @@ export default { deleteButton, alertSilenceBox, clickSearch, - alertMessageInfo + alertMessageInfo, + topToolMoreOptions }, mixins: [dataListMixin, routerPathParams], data () { @@ -250,6 +273,12 @@ export default { type: 'input', label: 'labels', disabled: false + }, { + name: this.$t('overall.acknowledge'), + type: 'selectString', + label: 'acknowledge', + readonly: true, + disabled: false } ] }, @@ -500,6 +529,26 @@ export default { // this.getTitleSearch() }, methods: { + batchAck () { + const params = [] + const obj = {} + this.batchDeleteObjs.forEach(item => { + obj.id = item.id + obj.ack = item.ack + params.push(obj) + }) + if (params.length === 0) { + this.$message({ type: 'error', message: this.$t('tip.SelectAlertMessages') }) + } else { + this.$put('alert/message/ack', params).then(response => { + if (response.code == 200) { + this.$message({ duration: 1000, type: 'success', message: this.$t('tip.ackSuccess') }) + } else { + this.$message.error(response.msg) + } + }) + } + }, labelsSort (obj) { const buildIn = ['asset', 'endpoint', 'module', 'cpu', 'project', 'datacenter', 'parent_asset', 'user'] const labels = JSON.parse(JSON.stringify(obj)) diff --git a/nezha-fronted/static/config.json b/nezha-fronted/static/config.json index ce3154f7a..0914bfffd 100644 --- a/nezha-fronted/static/config.json +++ b/nezha-fronted/static/config.json @@ -1,2 +1,2 @@ -{"baseUrl":"/", "version": "21.04"} - \ No newline at end of file +{"baseUrl":"http://192.168.40.42:8080/", "version": "21.04"} +