1、首选解决预览问题
由于使用的是vue3,页面与数据都是交互响应式的,所以可以通过组件或者原生的文件上传,获取到excel的sheet,从而来计算条数,页码,页数,手动实现分页逻辑,也就是把调接口换成从excel中获取数据,除了多计算下分页逻辑,其他逻辑不变
2、解决导入量大的问题引发超时问题
可以根据导入量,后端判断是启用eventbus订阅事件后直接返回结果,还是量小等待导入结果后再返回
a.如果导入量大则:
2.1、先执行订阅事件,后台执行批量导入
2.2、同时插入导入日志表,状态导入中(订阅事件导入完成后更新状态),日志里文件名也记录下
2.3、直接返回提示用户由于数据量大正在后台执行,请稍后查看,可继续执行其他操作
2.4、页面上显示各个状态数量(导入中4个,导入完成3个)