vue3+ts+element 前端实现分页

复制代码
	<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;

};
相关推荐
JavaGuide20 分钟前
DeepSeek Harness 官方桌面端终于有了!
前端·后端
wshzd23 分钟前
LLM之Agent(104)|DeepSeek-Harness(十三)ReactLoopAgent 总览:kick → turn → step
开发语言·前端·javascript
茉莉玫瑰花茶31 分钟前
OpenGL [ 基础概念 ]
java·前端·数据库
随性而行36038 分钟前
企业微信二次开发如何接入大模型工具?API接口实现智能任务调用的技术思路
java·前端·人工智能·python·微信·机器人·企业微信
IMPYLH1 小时前
HTML 的 <td> 元素
前端·html
gnip1 小时前
Flutter GetX 三件套开发规范(Skill)
前端·flutter
张小姐的猫1 小时前
【AI大模型接入SDK】 —— 前端页面 & 项目总结与拓展
前端·数据结构·数据库·c++·人工智能·chatgpt
web打印社区1 小时前
远程打印:WebSocket 与 HTTP 轮询怎么选
前端·vue.js·websocket·网络协议·http·electron·pdf
吴声子夜歌1 小时前
HTML——庞杂的表单控件元素(一)
前端·html
天天喝旺仔2 小时前
浏览器渲染原理:从解析 HTML/CSS、构建渲染树到重排重绘与首屏优化
前端·javascript·css·性能优化·html