iview导出部分数据_vue中的iviewUI导出1W条列表数据每次只导出2000条的逻辑
时间: 2023-12-10 21:38:37 浏览: 58
可以参考以下思路:
1. 定义一个变量 `page` 表示当前页数,初始值为 1。
2. 点击导出按钮时,先请求接口获取数据总数 `total`。
3. 计算需要导出的页数 `totalPage`,即 `total` 除以每页最大条数,如果有余数则加 1。
4. 进行循环,循环次数为 `totalPage`。
5. 在循环中,每次请求接口获取当前页的数据,即从 `(page-1)*2000 + 1` 条数据开始取 2000 条数据。
6. 将当前页的数据存入数组 `list` 中。
7. 如果当前页数小于总页数,则将 `page` 加 1,继续下一轮循环。
8. 如果当前页数等于总页数,则将数组 `list` 导出。
以下是示例代码:
```javascript
exportData() {
// 先获取总数
this.$http.get('/api/getTotal').then(res => {
const total = res.data.total;
const totalPage = Math.ceil(total / 2000); // 计算总页数
let list = [];
let page = 1;
// 循环获取数据
while (page <= totalPage) {
this.$http.get(`/api/getList?page=${page}&limit=2000`).then(res => {
list = list.concat(res.data.list);
if (page === totalPage) {
// 最后一页,导出数据
this.export(list);
} else {
// 继续下一页
page++;
}
});
}
});
},
```
阅读全文