<el-table border :data="tableData[pageable.pageNum - 1]" style="width: 100%" height="250" ref="tableRef">
<el-table-column type="selection" width="55" />
<el-table-column type="index" label="序号" width="60" />
<el-table-column prop="id" label="id" />
<el-table-column prop="b" label="b" width="150" />
<el-table-column prop="c" label="c" />
<el-table-column label="操作" prop="operation" width="80">
<template #default="scope">
<el-button link type="primary" @click="deleteUser(scope.$index)">删除</el-button>
</template>
</el-table-column>
</el-table>
<el-pagination
v-model:current-page="currentPage"
v-model:page-size="pageSize"
:page-sizes="[10, 20, 50, 100]"
layout="total, sizes, prev, pager, next, jumper"
:total="total"
@size-change="handleSizeChange"
@current-change="handleCurrentChange"
/>
const pageable = ref({
pageNum: 1,
pageSize: 25,
total: 0
});
const userList = ref<any>([]);
for (let i = 0; i < 1005; i++) {
if (i % 10 == 0) {
userList.value.push({ id: i + 1, b: "sb", c: "" });
} else {
userList.value.push({ id: i + 1, b: "sb", c: "13321618542" });
}
}
//总记录数等于数组的长度
total.value = userList.value.length;
const spliceArr = (list: any, length: any) => {
let arr = Object.assign([], list);
let index = 0;
let newArray = [];
while (index < arr.length) {
newArray.push(arr.splice(index, length));
}
return newArray;
};
//根据pageSize切割数组成n等分
let tableData = ref(spliceArr(userList.value, pageable.value.pageSize));
const handleSizeChange = (val: number) => {
pageable.value.pageSize = val;
tableData.value = spliceArr(userList.value, pageable.value.pageSize);
};
//切换当前页
const handleCurrentChange = (val: number) => {
pageable.value.pageNum = val;
};
vue3+ts+element 前端实现分页
小菜鸟码住2023-10-23 10:41
相关推荐
用户629605932470514 分钟前
从“浏览器根本区分不了”到真正实现:刷新不退出,关闭标签页自动退出,前端判断浏览器关闭和刷新qetfw16 分钟前
MWU:Vue 3 + FastAPI 的 MaaFramework 跨平台 WebUI 源码mfxcyh17 分钟前
Vue3+Ant Design Vue 实现手动异步文件上传(含大小校验、弹窗上传)wordbaby19 分钟前
Web端热敏标签打印完整解决方案(QZ Tray + 译维A42)swipe23 分钟前
03|Axios 请求进了后端之后:Controller、Request、Response 是怎么接住它的?meilindehuzi_a28 分钟前
Vue3进阶基础:指令修饰符、v-model表单绑定、动态样式、计算属性与侦听器实战csdn2015_34 分钟前
vue 前端运行命令swipe34 分钟前
02|从 `pnpm dev` 到 Spring Boot 启动:后端服务到底怎么跑起来?swipe1 小时前
01|前端人第一次打开 Spring Boot 项目,应该先看哪里?Cobyte1 小时前
根据浏览器解析 HTML 的规范实现 HTML 解析器