From bf96ab737b8c28ef3e1ed807071579a18fc61816 Mon Sep 17 00:00:00 2001 From: zhangyu Date: Thu, 4 Nov 2021 17:00:58 +0800 Subject: [PATCH] =?UTF-8?q?NEZ-1171=20fix=EF=BC=9Aalert=20message=20?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=A0=B7=E5=BC=8F=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/assets/css/common/rightBoxCommon.scss | 23 +++++ .../common/popBox/topToolMoreOptions.vue | 27 +----- .../components/page/alert/alertMessage.vue | 95 ++++++++++++++++--- 3 files changed, 111 insertions(+), 34 deletions(-) diff --git a/nezha-fronted/src/assets/css/common/rightBoxCommon.scss b/nezha-fronted/src/assets/css/common/rightBoxCommon.scss index bab643ff1..909e275f0 100644 --- a/nezha-fronted/src/assets/css/common/rightBoxCommon.scss +++ b/nezha-fronted/src/assets/css/common/rightBoxCommon.scss @@ -323,3 +323,26 @@ .popper__arrow { opacity: 0; } +.export-box{ + display: flex; + margin-top: 30px; + align-items: center; + .export-title { + display: inline-block; + width: 100px; + text-align: left; + font-size: 14px; + color: #666666; + letter-spacing: 0; + font-weight: 600; + } + /deep/ .el-radio-group{ + flex: 1; + .el-radio-button--small { + width: 142px; + .el-radio-button__inner{ + width: 100%; + } + } + } +} diff --git a/nezha-fronted/src/components/common/popBox/topToolMoreOptions.vue b/nezha-fronted/src/components/common/popBox/topToolMoreOptions.vue index 527b316a2..15be1ec41 100644 --- a/nezha-fronted/src/components/common/popBox/topToolMoreOptions.vue +++ b/nezha-fronted/src/components/common/popBox/topToolMoreOptions.vue @@ -338,6 +338,7 @@ export default { } params.language = localStorage.getItem('nz-language') || 'en' params.format = this.importBox.format + delete params.statistics this.exportExcel(this.exportUrl, params, this.exportFileName + '-' + this.getTimeString() + '.xlsx') this.closeDialog() }, @@ -371,6 +372,7 @@ export default { // } params.language = localStorage.getItem('nz-language') || 'en' params.format = this.importBox.format + delete params.statistics this.exportExcel(this.exportUrl, params, this.exportFileName + '-' + this.getTimeString() + '.xlsx') this.closeDialog() }, @@ -405,6 +407,7 @@ export default { params.language = localStorage.getItem('nz-language') || 'en' params.format = this.importBox.format params.ids = this.deleteObjs.map(item => item.id).join(',') + delete params.statistics this.exportExcel(this.exportUrl, params, this.exportFileName + '-' + this.getTimeString() + '.xlsx') this.closeDialog() }, @@ -506,27 +509,5 @@ export default { diff --git a/nezha-fronted/src/components/page/alert/alertMessage.vue b/nezha-fronted/src/components/page/alert/alertMessage.vue index a09d46e75..8b7c2ec56 100644 --- a/nezha-fronted/src/components/page/alert/alertMessage.vue +++ b/nezha-fronted/src/components/page/alert/alertMessage.vue @@ -57,14 +57,30 @@
- -
- - + +
+
+ Records + + {{item.name}} + +
+
+ File format + + {{item.name}} + +
+
+
@@ -163,7 +179,7 @@ export default { dialogText: '', url: 'alert/message', // 导出相关 - importBox: { show: false, title: this.$t('overall.exportExcel') }, + importBox: { show: false, title: this.$t('overall.importExcel'), type: 1, record: 'all', format: 1 }, deleteBox: { show: false, ids: '', remark: '', state: 2 }, // 详情相关 graphShow: false, @@ -324,7 +340,17 @@ export default { width: 0, index: -1 } - } + }, + recordArr: [ + { name: this.$t('overall.allData'), value: 'all' }, + { name: this.$t('overall.selectRecords'), value: 'records' }, + { name: this.$t('overall.current'), value: 'current' } + ], + formatArr: [ + { name: 'XLSX', value: 1 }, + { name: 'CSV', value: 2 }, + { name: 'JSON', value: 3 } + ] } }, computed: { @@ -886,12 +912,21 @@ export default { closeDialog () { this.importBox.show = false this.deleteBox.show = false + this.$nextTick(() => { + this.importResult = null + this.importFileList = [] + this.importFile = null + this.importBox.value = 1 + this.importBox.record = 'all' + }) }, dialogClose () { this.graphShow = false }, exportCur () { const searchLabel = Object.assign({}, this.searchLabel) + searchLabel.format = this.importBox.format + delete searchLabel.statistics this.$set(searchLabel, 'language', localStorage.getItem('nz-language') ? localStorage.getItem('nz-language') : 'en') this.exportExcel({ ...searchLabel, state: this.state }) this.closeDialog() @@ -899,6 +934,8 @@ export default { exportAll () { const temp = JSON.parse(JSON.stringify(this.searchLabel)) temp.pageSize = -1 + delete temp.statistics + temp.format = this.importBox.format this.$set(temp, 'language', localStorage.getItem('nz-language') ? localStorage.getItem('nz-language') : 'en') this.exportExcel({ ...temp, state: this.state }) this.closeDialog() @@ -1005,7 +1042,43 @@ export default { } } }, - deleteMessage () {} + deleteMessage () {}, + exportData () { + if (this.importBox.record === 'all') { + this.exportAll() + } else if (this.importBox.record === 'current') { + this.exportCur() + } else if (this.importBox.record === 'records') { + this.exportRecords() + } + }, + exportRecords () { + const params = JSON.parse(JSON.stringify(this.searchLabel)) + params.format = this.importBox.format + delete params.statistics + if (this.params2) { + Object.keys(this.params2).forEach(key => { + if (params[key]) { + if (params[key].prototype.toString.call(val) === '[object Object]') { + Object.assign(params[key], this.params2[key]) + } else if (params[key].prototype.toString.call(val) === '[object Array]') { + params[key].concat(this.params2[key]) + } + } else { + params[key] = this.params2[key] + } + }) + } + params.pageSize = -1 + // if (this.importUrl.indexOf('endpoint') > -1){ + // delete params.moduleId + // } + params.language = localStorage.getItem('nz-language') || 'en' + params.format = this.importBox.format + params.ids = this.batchDeleteObjs.map(item => item.id).join(',') + this.exportExcel(this.exportUrl, params, this.exportFileName + '-' + this.getTimeString() + '.xlsx') + this.closeDialog() + }, }, destroyed () { localStorage.removeItem('alertMessageProjectId')