<el-table
:data="dataList" //数据源
@select-all="selectAll" //点击全选按钮的钩子函数
:row-key="getRowKey" //多选需要加的一个属性
ref="Table"
v-el-table-infinite-scroll="scroll" //可选项,滚动加载
infinite-scroll-delay="500" //可选项,滚动加载的防抖
>
<el-table-column
type="selection"
:reserve-selection="true" //跨页后前页勾选仍有效
width="50"
align="center"
/>
</el-table>
<script setup>
const data = reactive({
isSelectAll: false,
dataList:[],
})
//全选时
const selectAll= () => {
data.isSelectAll = !data.isSelectAll;
}
const table = ref();
//(滚动)加载数据时
cosnt scroll = () => {
let box = [];
let son = [];
getdata(params).then((response) => { //请求数据
let arr = response.data.list;
// 把获取的数据每15条放入一个数组
arr.forEach((item) => {
if(son.length === 15) {
son = []
}
if(son.length === 0) {
box.push(son)
}
son.push(item)
});
if (data.disabled) return;
if (data.page <= data.total) {
// 把分组好的数据,每滚动一次放入一组
if (box[data.page] != null) {
data.tableDatas = data.tableDatas.concat(box[data.page]);
}
}
if (data.isSelectAll) {
arr.forEach((row) => {
table.value.toggleRowSelection(row, true);
});
}
data.page++;
if (data.page === data.total) {
data.disabled = true;
}
if(data.isSelectAll) { //如果是全选状态,则将新请求的数据全部勾选上
arr.forEach((row) => {
table.value.toggleRowSelection(row, true);
});
}
data.dataList = data.dataList.concat(arr); //可选项,滚动时将新数组拼接
}
}
03-14
681
![](https://csdnimg.cn/release/blogv2/dist/pc/img/readCountWhite.png)
02-15
“相关推荐”对你有帮助么?
-
非常没帮助
-
没帮助
-
一般
-
有帮助
-
非常有帮助
提交