From bab9634d2eed62b61c2fdd52cba3646f8ee79742 Mon Sep 17 00:00:00 2001 From: fit2cloud-chenyw Date: Thu, 26 May 2022 22:41:46 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20=E6=97=A5=E5=BF=97=E5=AF=BC=E5=87=BA?= =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E6=9D=A1=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/sys/SysLogController.java | 6 ++--- .../dataease/service/sys/log/LogService.java | 22 ++++++++++++------ frontend/src/api/system/log.js | 5 ++-- frontend/src/lang/en.js | 1 + frontend/src/lang/tw.js | 1 + frontend/src/lang/zh.js | 3 ++- frontend/src/views/system/log/index.vue | 23 ++++++++++++++++--- 7 files changed, 45 insertions(+), 16 deletions(-) diff --git a/backend/src/main/java/io/dataease/controller/sys/SysLogController.java b/backend/src/main/java/io/dataease/controller/sys/SysLogController.java index 1b85e090db..784a7c0ae1 100644 --- a/backend/src/main/java/io/dataease/controller/sys/SysLogController.java +++ b/backend/src/main/java/io/dataease/controller/sys/SysLogController.java @@ -17,7 +17,6 @@ import io.swagger.annotations.ApiOperation; import org.springframework.web.bind.annotation.*; import javax.annotation.Resource; -import javax.servlet.http.HttpServletResponse; import java.util.List; @RestController @@ -51,7 +50,8 @@ public class SysLogController { @ApiOperation("导出操作日志") @PostMapping("/export") - public void export(HttpServletResponse response) throws Exception{ - logService.exportExcel(response); + @ApiImplicitParam(name = "request", value = "查询条件", required = true) + public void export(@RequestBody BaseGridRequest request) throws Exception{ + logService.exportExcel(request); } } diff --git a/backend/src/main/java/io/dataease/service/sys/log/LogService.java b/backend/src/main/java/io/dataease/service/sys/log/LogService.java index e9af983586..d296f0df47 100644 --- a/backend/src/main/java/io/dataease/service/sys/log/LogService.java +++ b/backend/src/main/java/io/dataease/service/sys/log/LogService.java @@ -11,6 +11,7 @@ import io.dataease.commons.constants.SysLogConstants; import io.dataease.commons.utils.AuthUtils; import io.dataease.commons.utils.BeanUtils; import io.dataease.commons.utils.CustomCellWriteUtil; +import io.dataease.commons.utils.ServletUtils; import io.dataease.controller.sys.base.BaseGridRequest; import io.dataease.controller.sys.base.ConditionEntity; import io.dataease.dto.SysLogDTO; @@ -76,6 +77,15 @@ public class LogService { public List query(BaseGridRequest request) { + request = detailRequest(request); + + GridExample gridExample = request.convertExample(); + List voLogs = extSysLogMapper.query(gridExample); + List dtos = voLogs.stream().map(this::convertDTO).collect(Collectors.toList()); + return dtos; + } + + private BaseGridRequest detailRequest(BaseGridRequest request) { List conditions = request.getConditions(); if (CollectionUtils.isNotEmpty(conditions)) { ConditionEntity optypeCondition = null; @@ -107,11 +117,7 @@ public class LogService { if (ObjectUtils.isNotEmpty(sourceCondition))conditions.add(sourceCondition); } } - - GridExample gridExample = request.convertExample(); - List voLogs = extSysLogMapper.query(gridExample); - List dtos = voLogs.stream().map(this::convertDTO).collect(Collectors.toList()); - return dtos; + return request; } @@ -206,8 +212,10 @@ public class LogService { sysLogMapper.insert(sysLogWithBLOBs); } - public void exportExcel(HttpServletResponse response) throws Exception{ - BaseGridRequest request = new BaseGridRequest(); + public void exportExcel(BaseGridRequest request) throws Exception{ + request = detailRequest(request); + HttpServletResponse response = ServletUtils.response(); + GridExample gridExample = request.convertExample(); List lists = extSysLogMapper.query(gridExample); List excels = lists.stream().map(item -> { diff --git a/frontend/src/api/system/log.js b/frontend/src/api/system/log.js index 1857b14b74..a549d823f8 100644 --- a/frontend/src/api/system/log.js +++ b/frontend/src/api/system/log.js @@ -17,11 +17,12 @@ export function opTypes() { }) } -export function exportExcel() { +export function exportExcel(data) { return request({ url: '/api/log/export', method: 'post', loading: true, - responseType: 'blob' + responseType: 'blob', + data }) } diff --git a/frontend/src/lang/en.js b/frontend/src/lang/en.js index a9aca6d1b2..0847bfb01d 100644 --- a/frontend/src/lang/en.js +++ b/frontend/src/lang/en.js @@ -2054,6 +2054,7 @@ export default { user: 'User', time: 'Time', export: 'Export', + confirm: 'Sure Export ?', search_by_key: 'Search by key' }, plugin_style: { diff --git a/frontend/src/lang/tw.js b/frontend/src/lang/tw.js index 6dbad884fd..f5ed387650 100644 --- a/frontend/src/lang/tw.js +++ b/frontend/src/lang/tw.js @@ -2065,6 +2065,7 @@ export default { user: '操作用戶', time: '操作時間', export: '導出', + confirm: '確定導出嗎?', search_by_key: '搜索詳情' }, plugin_style: { diff --git a/frontend/src/lang/zh.js b/frontend/src/lang/zh.js index b32f19ad16..261b63bb54 100644 --- a/frontend/src/lang/zh.js +++ b/frontend/src/lang/zh.js @@ -1340,7 +1340,7 @@ export default { show_info: '驱动信息', file_name: '文件名', version: '版本', - please_set_driverClass: '请指定驱动类', + please_set_driverClass: '请指定驱动类' }, datasource: { auth_method: '认证方式', @@ -2072,6 +2072,7 @@ export default { user: '操作用户', time: '操作时间', export: '导出', + confirm: '确定导出吗?', search_by_key: '搜索详情' }, plugin_style: { diff --git a/frontend/src/views/system/log/index.vue b/frontend/src/views/system/log/index.vue index fe3e93b194..fb374e5e07 100644 --- a/frontend/src/views/system/log/index.vue +++ b/frontend/src/views/system/log/index.vue @@ -11,7 +11,7 @@ @sort-change="sortChange" > @@ -92,9 +92,26 @@ export default { }, methods: { + + exportConfirm() { + this.$confirm(this.$t('log.confirm'), '', { + confirmButtonText: this.$t('commons.confirm'), + cancelButtonText: this.$t('commons.cancel'), + type: 'warning' + }).then(() => { + this.exportData() + }).catch(() => { + // this.$info(this.$t('commons.delete_cancel')) + }) + }, exportData() { - console.log('exportting...') - exportExcel().then(res => { + let condition = this.last_condition + condition = formatQuickCondition(condition, 'key') + const temp = formatCondition(condition) + const param = temp || {} + param['orders'] = formatOrders(this.orderConditions) + + exportExcel(param).then(res => { const blob = new Blob([res], { type: 'application/vnd.ms-excel' }) const link = document.createElement('a') link.style.display = 'none'