当前位置: 首页 > news >正文

Element Plus实现分页查询

1、页面

<script setup="">
import { ref, onMounted, watch } from "vue";
import { queryAllApi, queryPageApi } from "@/api/emp";// 搜索表单对象
const searchEmp = ref({name: "",gender: "",date: [],begin: "",end: "",
});// 侦听serchEmp的data属性
watch(() => searchEmp.value.date,(newVal, oldVal) => {if (newVal.length == 2) {searchEmp.value.begin = newVal[0];searchEmp.value.end = newVal[1];} else {searchEmp.value.begin = "";searchEmp.value.end = "";}}
);// 员工列表数据
let empList = ref([]);// 查询员工列表
let search = async () => {let result = await queryPageApi(searchEmp.value.name,searchEmp.value.gender,searchEmp.value.begin,searchEmp.value.end,currentPage.value,pageSize.value);if (result.code) {empList.value = result.data.rows;total.value = result.data.total;}console.log(result.data.rows);
};//清空
const clear = () => {searchEmp.value = { name: "", gender: "", date: [], begin: "", end: "" };search();
};// 分页
const currentPage = ref(1); // 页码
const pageSize = ref(5); // 每页显示的记录数
const background = ref(true); // 是否背景颜色
const total = ref(0); // 总记录数
// 每页展示记录数发生变化
const handleSizeChange = (val) => {search();console.log(`每页展示${val} 条记录`);
};
// 页码变化时触发
const handleCurrentChange = (val) => {search();console.log(`当前页码 :${val}`);
};onMounted(() => {search();
});
</script><template><h1>员工管理</h1>{{ searchEmp }}<!--  搜索框--><div class="container"><el-form :inline="true" :model="searchEmp" class="demo-form-inline"><el-form-item label="姓名"><el-input v-model="searchEmp.name" placeholder="请输入员工姓名" /></el-form-item><el-form-item label="性别"><el-select v-model="searchEmp.gender" placeholder="请选择"><el-option label="男" value="1" /><el-option label="女" value="2" /></el-select></el-form-item><el-form-item label="入职日期"><el-date-pickerv-model="searchEmp.date"type="daterange"range-separator="到"start-placeholder="开始日期"end-placeholder="结束日期"value-format="YYYY-MM-DD"/></el-form-item><el-form-item><el-button type="primary" @click="search">查询</el-button><el-button type="info" @click="clear">清空</el-button></el-form-item></el-form></div><!--  按钮--><div class="container"><el-button type="primary" @click="search">+新增员工</el-button><el-button type="danger" @click="clear">-批量删除</el-button></div><!--  表格--><div class="container"><el-table :data="empList" border style="width: 100%"><el-table-column type="selection" width="55" align="center" /><el-table-column prop="name" label="姓名" width="180" align="center" /><el-table-column prop="gender" label="性别" width="180" align="center"><template #default="scope"><span v-if="scope.row.gender == 1">男</span><span v-else>女</span></template></el-table-column><el-table-column prop="image" label="头像" align="center"><template #default="scope"><img :src="scope.row.image" height="40px" /></template></el-table-column><el-table-column prop="deptName" label="所属部门" align="center" /><el-table-column prop="job" label="职位" align="center"><template #default="scope"><span v-if="scope.row.job == 1">班主任</span><span v-else-if="scope.row.job == 2">讲师</span><span v-else-if="scope.row.job == 3">学工主管</span><span v-else-if="scope.row.job == 4">教研主管</span><span v-else-if="scope.row.job == 5">咨询师</span><span v-else>其他</span></template></el-table-column><el-table-column prop="entryDate" label="入职日期" align="center" /><el-table-column prop="updateTime" label="最后操作时间" align="center" /><el-table-column label="操作" align="center"><template #default="scope"><el-button type="primary" size="small" @click="edit(scope.row.id)"><el-icon><EditPen /></el-icon>编辑</el-button><el-button type="danger" size="small" @click="delById(scope.row.id)"><el-icon><Delete /></el-icon>删除</el-button></template></el-table-column></el-table></div><!--  分页--><div class="container"><el-paginationv-model:current-page="currentPage"v-model:page-size="pageSize":page-sizes="[5, 10, 20, 30, 50, 75, 100]":background="background"layout="total, sizes, prev, pager, next, jumper":total="total"@size-change="handleSizeChange"@current-change="handleCurrentChange"/></div>
</template><style scoped>
.container {margin: 10px;
}
</style>

2、请求API

import request from "../utils/request";//查询员工列表数据
export const queryAllApi = () => {return request.get("/emps");
};
1;export const queryPageApi = (name, gender, begin, end, page, pageSize) =>request.get(`/emps?name=${name}&gender=${gender}&begin=${begin}&end=${end}&page=${page}&pageSize=${pageSize}`);

http://www.dtcms.com/a/318953.html

相关文章:

  • 码头岸电系统如何保障供电安全?安科瑞绝缘监测及故障定位方案解析
  • Rust爬虫与代理池技术解析
  • NAS技术在县级融媒体中心的架构设计与安全运维浅析
  • VSCode ssh一直在Setting up SSH Host xxx: Copying VS Code Server to host with scp等待
  • 支付宝小程序商城怎么搭?ZKmall开源商城教你借力蚂蚁生态做增长
  • 【Agent】ReAct:最经典的Agent设计框架
  • 【pytorch(06)】全连接神经网络:基本组件认知,线性层、激活函数、损失函数、优化器
  • Django 表单:深度解析与最佳实践
  • 高性能分布式通信框架:eCAL 介绍与应用
  • 解锁高效开发:AWS 前端 Web 与移动应用解决方案详解
  • 区块链技术原理(2) -数据结构
  • 云平台运维工具 ——AWS 原生工具
  • 告别Cursor!最强AI编程辅助Claude Code安装到使用全流程讲解
  • MySQL面试题及详细答案 155道(061-080)
  • 【图文教程】三步用Cpolar+JuiceSSH实现手机远程连接内网Linux虚拟机
  • 平台服务器被入侵,使用WAF能防范吗?
  • 机器学习——04 逻辑回归
  • LoRaWAN的网络拓扑
  • graalvm初探
  • 急危重症专科智能体”构建新一代急诊、手术与重症中心的AI医疗方向探析
  • DBeaver 25.1.0 转储数据库失败解决方案(适配最新版界面)
  • Android Auto开发指南
  • concurrentqueue:一个高并发高性能的C++无锁队列
  • Oracle exp imp expdp impdp 命令详解
  • 无人机光伏巡检效率提升68%!陌讯动态融合算法实战解析
  • 模拟-38.外观数列-力扣(LeetCode)
  • 成就非凡:如何识别并服务那些注定成功的软件客户-优雅草卓伊凡
  • 正向矩阵(DCT)变换后还是一个矩阵,怎么减少存储空间
  • 软件加密工具-DSProtector使用说明
  • Adobe最新+MAC系统+系统+教程 软件+课程