forked from github/dataease
fix: 日志导出增加条件
This commit is contained in:
parent
04fe29a96c
commit
bab9634d2e
@ -17,7 +17,6 @@ import io.swagger.annotations.ApiOperation;
|
|||||||
import org.springframework.web.bind.annotation.*;
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@RestController
|
@RestController
|
||||||
@ -51,7 +50,8 @@ public class SysLogController {
|
|||||||
|
|
||||||
@ApiOperation("导出操作日志")
|
@ApiOperation("导出操作日志")
|
||||||
@PostMapping("/export")
|
@PostMapping("/export")
|
||||||
public void export(HttpServletResponse response) throws Exception{
|
@ApiImplicitParam(name = "request", value = "查询条件", required = true)
|
||||||
logService.exportExcel(response);
|
public void export(@RequestBody BaseGridRequest request) throws Exception{
|
||||||
|
logService.exportExcel(request);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -11,6 +11,7 @@ import io.dataease.commons.constants.SysLogConstants;
|
|||||||
import io.dataease.commons.utils.AuthUtils;
|
import io.dataease.commons.utils.AuthUtils;
|
||||||
import io.dataease.commons.utils.BeanUtils;
|
import io.dataease.commons.utils.BeanUtils;
|
||||||
import io.dataease.commons.utils.CustomCellWriteUtil;
|
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.BaseGridRequest;
|
||||||
import io.dataease.controller.sys.base.ConditionEntity;
|
import io.dataease.controller.sys.base.ConditionEntity;
|
||||||
import io.dataease.dto.SysLogDTO;
|
import io.dataease.dto.SysLogDTO;
|
||||||
@ -76,6 +77,15 @@ public class LogService {
|
|||||||
|
|
||||||
|
|
||||||
public List<SysLogGridDTO> query(BaseGridRequest request) {
|
public List<SysLogGridDTO> query(BaseGridRequest request) {
|
||||||
|
request = detailRequest(request);
|
||||||
|
|
||||||
|
GridExample gridExample = request.convertExample();
|
||||||
|
List<SysLogWithBLOBs> voLogs = extSysLogMapper.query(gridExample);
|
||||||
|
List<SysLogGridDTO> dtos = voLogs.stream().map(this::convertDTO).collect(Collectors.toList());
|
||||||
|
return dtos;
|
||||||
|
}
|
||||||
|
|
||||||
|
private BaseGridRequest detailRequest(BaseGridRequest request) {
|
||||||
List<ConditionEntity> conditions = request.getConditions();
|
List<ConditionEntity> conditions = request.getConditions();
|
||||||
if (CollectionUtils.isNotEmpty(conditions)) {
|
if (CollectionUtils.isNotEmpty(conditions)) {
|
||||||
ConditionEntity optypeCondition = null;
|
ConditionEntity optypeCondition = null;
|
||||||
@ -107,11 +117,7 @@ public class LogService {
|
|||||||
if (ObjectUtils.isNotEmpty(sourceCondition))conditions.add(sourceCondition);
|
if (ObjectUtils.isNotEmpty(sourceCondition))conditions.add(sourceCondition);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
return request;
|
||||||
GridExample gridExample = request.convertExample();
|
|
||||||
List<SysLogWithBLOBs> voLogs = extSysLogMapper.query(gridExample);
|
|
||||||
List<SysLogGridDTO> dtos = voLogs.stream().map(this::convertDTO).collect(Collectors.toList());
|
|
||||||
return dtos;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -206,8 +212,10 @@ public class LogService {
|
|||||||
sysLogMapper.insert(sysLogWithBLOBs);
|
sysLogMapper.insert(sysLogWithBLOBs);
|
||||||
}
|
}
|
||||||
|
|
||||||
public void exportExcel(HttpServletResponse response) throws Exception{
|
public void exportExcel(BaseGridRequest request) throws Exception{
|
||||||
BaseGridRequest request = new BaseGridRequest();
|
request = detailRequest(request);
|
||||||
|
HttpServletResponse response = ServletUtils.response();
|
||||||
|
|
||||||
GridExample gridExample = request.convertExample();
|
GridExample gridExample = request.convertExample();
|
||||||
List<SysLogWithBLOBs> lists = extSysLogMapper.query(gridExample);
|
List<SysLogWithBLOBs> lists = extSysLogMapper.query(gridExample);
|
||||||
List<LogExcel> excels = lists.stream().map(item -> {
|
List<LogExcel> excels = lists.stream().map(item -> {
|
||||||
|
@ -17,11 +17,12 @@ export function opTypes() {
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function exportExcel() {
|
export function exportExcel(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/log/export',
|
url: '/api/log/export',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
loading: true,
|
loading: true,
|
||||||
responseType: 'blob'
|
responseType: 'blob',
|
||||||
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
@ -2054,6 +2054,7 @@ export default {
|
|||||||
user: 'User',
|
user: 'User',
|
||||||
time: 'Time',
|
time: 'Time',
|
||||||
export: 'Export',
|
export: 'Export',
|
||||||
|
confirm: 'Sure Export ?',
|
||||||
search_by_key: 'Search by key'
|
search_by_key: 'Search by key'
|
||||||
},
|
},
|
||||||
plugin_style: {
|
plugin_style: {
|
||||||
|
@ -2065,6 +2065,7 @@ export default {
|
|||||||
user: '操作用戶',
|
user: '操作用戶',
|
||||||
time: '操作時間',
|
time: '操作時間',
|
||||||
export: '導出',
|
export: '導出',
|
||||||
|
confirm: '確定導出嗎?',
|
||||||
search_by_key: '搜索詳情'
|
search_by_key: '搜索詳情'
|
||||||
},
|
},
|
||||||
plugin_style: {
|
plugin_style: {
|
||||||
|
@ -1340,7 +1340,7 @@ export default {
|
|||||||
show_info: '驱动信息',
|
show_info: '驱动信息',
|
||||||
file_name: '文件名',
|
file_name: '文件名',
|
||||||
version: '版本',
|
version: '版本',
|
||||||
please_set_driverClass: '请指定驱动类',
|
please_set_driverClass: '请指定驱动类'
|
||||||
},
|
},
|
||||||
datasource: {
|
datasource: {
|
||||||
auth_method: '认证方式',
|
auth_method: '认证方式',
|
||||||
@ -2072,6 +2072,7 @@ export default {
|
|||||||
user: '操作用户',
|
user: '操作用户',
|
||||||
time: '操作时间',
|
time: '操作时间',
|
||||||
export: '导出',
|
export: '导出',
|
||||||
|
confirm: '确定导出吗?',
|
||||||
search_by_key: '搜索详情'
|
search_by_key: '搜索详情'
|
||||||
},
|
},
|
||||||
plugin_style: {
|
plugin_style: {
|
||||||
|
@ -11,7 +11,7 @@
|
|||||||
@sort-change="sortChange"
|
@sort-change="sortChange"
|
||||||
>
|
>
|
||||||
<template #toolbar>
|
<template #toolbar>
|
||||||
<el-button v-permission="['log:export']" icon="el-icon-download" size="mini" @click="exportData">{{ $t('log.export') }}</el-button>
|
<el-button v-permission="['log:export']" icon="el-icon-download" size="mini" @click="exportConfirm">{{ $t('log.export') }}</el-button>
|
||||||
</template>
|
</template>
|
||||||
|
|
||||||
<el-table-column :show-overflow-tooltip="true" prop="opType" :label="$t('log.optype')" width="140">
|
<el-table-column :show-overflow-tooltip="true" prop="opType" :label="$t('log.optype')" width="140">
|
||||||
@ -92,9 +92,26 @@ export default {
|
|||||||
},
|
},
|
||||||
|
|
||||||
methods: {
|
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() {
|
exportData() {
|
||||||
console.log('exportting...')
|
let condition = this.last_condition
|
||||||
exportExcel().then(res => {
|
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 blob = new Blob([res], { type: 'application/vnd.ms-excel' })
|
||||||
const link = document.createElement('a')
|
const link = document.createElement('a')
|
||||||
link.style.display = 'none'
|
link.style.display = 'none'
|
||||||
|
Loading…
Reference in New Issue
Block a user