diff --git a/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue b/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue index 3cd6adff1..6153d6b29 100644 --- a/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue +++ b/nezha-fronted/src/components/common/bottomBox/tabs/cabinetTab.vue @@ -34,7 +34,8 @@ - - -
-
- - +
+
+ Records + + {{item.name}} + +
+
+ File format + + {{item.name}} + +
@@ -138,17 +152,29 @@ export default { paramsType: { type: String, default: '' - } + }, + deleteObjs: Array }, data () { return { - importBox: { show: false, title: this.$t('overall.importExcel'), type: 1 }, + importBox: { show: false, title: this.$t('overall.importExcel'), type: 1, record: 'all', format: 1 }, importFile: null, importFileList: [], importResult: null, exportShow: false, panelLock: true, - language: localStorage.getItem('nz-language') + language: localStorage.getItem('nz-language'), + 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 } + ] + } }, mounted () { @@ -244,6 +270,8 @@ export default { this.importResult = null this.importFileList = [] this.importFile = null + this.importBox.value = 1 + this.importBox.record = 'all' }) }, downloadTemplate () { @@ -309,6 +337,7 @@ export default { delete params.searchName } params.language = localStorage.getItem('nz-language') || 'en' + params.format = this.importBox.format this.exportExcel(this.exportUrl, params, this.exportFileName + '-' + this.getTimeString() + '.xlsx') this.closeDialog() }, @@ -341,10 +370,53 @@ export default { // delete params.moduleId // } params.language = localStorage.getItem('nz-language') || 'en' - + params.format = this.importBox.format this.exportExcel(this.exportUrl, params, this.exportFileName + '-' + this.getTimeString() + '.xlsx') this.closeDialog() }, + exportRecords() { + const params = JSON.parse(JSON.stringify(this.params)) + 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.exportUrl.indexOf('panel') > -1) { + delete params.start_time + delete params.end_time + delete params.id + delete params.searchName + } + if (this.importUrl.indexOf('panel') > -1) { + delete params.panelId + } + // if (this.importUrl.indexOf('endpoint') > -1){ + // delete params.moduleId + // } + params.language = localStorage.getItem('nz-language') || 'en' + params.format = this.importBox.format + params.ids = this.deleteObjs.map(item => item.id).join(',') + this.exportExcel(this.exportUrl, params, this.exportFileName + '-' + this.getTimeString() + '.xlsx') + this.closeDialog() + }, + exportData () { + if (this.importBox.record === 'all') { + this.exportAll() + } else if (this.importBox.record === 'current') { + this.exportCur() + } else if (this.importBox.record === 'records') { + this.exportRecords() + } + }, exportExcel (url, params, fileName) { if (this.paramsType) { params.type = this.paramsType @@ -395,7 +467,7 @@ export default { this.importBox.width = '600px' } else if (type == 2) { // export this.importBox.title = this.$t('overall.exportExcel') - this.importBox.width = '300px' + this.importBox.width = '580px' } }, getTimeString () { @@ -434,5 +506,27 @@ export default { diff --git a/nezha-fronted/src/components/page/alert/alertRule.vue b/nezha-fronted/src/components/page/alert/alertRule.vue index d0fcb7e03..6d374bbba 100644 --- a/nezha-fronted/src/components/page/alert/alertRule.vue +++ b/nezha-fronted/src/components/page/alert/alertRule.vue @@ -21,7 +21,8 @@ - - - - - - - - - - - - - -