js增强如何限制全表导出或过大数量的导出
版本号:
<modelVersion>4.0.0</modelVersion>
<groupId>org.jeecgframework.boot</groupId>
<artifactId>jeecg-boot-parent</artifactId>
分支:
问题描述:
我现在遇到一个主子表导出时系统崩溃的问题, 想限制用户做全表导出或过大数量的导出
首先想用Java增强, 尝试了CgformEnhanceJavaListInter接口, 在抛出异常时, 发现前端提示没有, 只是将导出的excel文件实际内容改成了json文本, 这个还会导致用户直接双击打开时excel/wps会报错文件损坏, 得用记事本之类的才能查看
后来只能转用js增强, 但是文档里面
似乎没有导出前的事件
错误截图:
友情提示:
- 未按格式要求发帖、描述过于简单的,会被直接删掉;
- 描述问题请图文并茂,方便我们理解并快速定位问题;
- 如果使用的不是master,请说明你使用的分支;
你直接抛出异常呢
https://github.com/jeecgboot/JeecgBoot/issues/9091
cr
问题描述中"导出的excel文件实际内容改成了json"就是抛出异常后的现象, 这就是我放弃使用java增强的原因
你的java增强是怎么写的呢?我这没有复现您的问题,更新到最新版试下:
正常提示错误
增强代码:
增强配置
package org.jeecg.modules.demo.hk.cgformtest;
import com.alibaba.fastjson.JSONObject;
import lombok.extern.slf4j.Slf4j;
import org.jeecg.common.exception.JeecgBootException;
import org.jeecg.modules.online.cgform.enhance.CgformEnhanceJavaInter;
import org.jeecg.modules.online.cgform.enhance.CgformEnhanceJavaListInter;
import org.jeecg.modules.online.config.exception.BusinessException;
import java.util.Arrays;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Slf4j
public class CgformEnhanceExportTest implements CgformEnhanceJavaInter, CgformEnhanceJavaListInter {
@Override
public int execute(String s, Map<String, Object> map) throws BusinessException {
log.info("Map: CgformEnhanceExportTest execute");
return 0;
}
@Override
public int execute(String s, JSONObject jsonObject) throws BusinessException {
log.info("JSON: CgformEnhanceExportTest execute");
return 0;
}
@Override
public void execute(String s, List<Map<String, Object>> list) throws BusinessException {
log.info("List: CgformEnhanceExportTest execute");
if (list != null && list.size() > 10) {
throw new JeecgBootException("列表长度不能超过10");
}
}
}
导出文件时前端不是出现错误提示, 还是提示有文件下载 且用文本查看软件查看导出的文件如下
jeecg 版本是3.0, 如果只能通过升级jeecg版本修复就算了...
你版本太老了,这个后来的版本进行了处理。
你可以看下目前版本在这个文件 src/hooks/system/useMethods.ts
你版本太老了,这个后来的版本进行了处理。
你可以看下目前版本在这个文件 src/hooks/system/useMethods.ts
感谢回复, 请问是只改前端就可以了吗? 后端不用修改吗
