vue3实现表格的分页以及确认消息弹窗

 表格的分页实例展示

效果1:表格按照每行10条数据分页,且编号也会随之分页自增

实现按照页码分页效果

第二页 展示编号根据分页自动增长

固定表格高度

这边设置了滚动条,同时表格高度实现自适应滚动条高度

template部分

表格代码

编号是按照页码条数进行循环并根据索引自增   

{{ (currentPage - 1) * pageSize + scope.$index + 1 }} 

  • pageSize 是每页的条数  scope.$index + 1   是自增的索引从1开始需要加1

这边有个小细节 设置了 el-scrollbar height="400px"的高度之后

 style="width: 100%" height="auto" max-height="100%" 

自身适应滚轮的高度 ,需要将表格高度设置为自动 最高高度设置为父级高度的100%

这样如果数据未达到滚轮最高的高度滚轮是不会显示的,达到最高高度下滑会显示滚轮

这边本想固定表头的,可是这个命令基本没用,后续看怎么搞吧

:header-cell-style="{ 'position': 'sticky', 'top': '0' }"

<el-scrollbar height="400px"><el-table :data="getCurrentPageData" style="width: 100%" height="auto" max-height="100%" :header-cell-style="{ 'position': 'sticky', 'top': '0' }"><el-table-column type="index" label="编号" width="60px" align="center"><template #default="scope">{{ (currentPage - 1) * pageSize + scope.$index + 1 }}</template></el-table-column><el-table-column prop="nickname" label="昵称" align="center"></el-table-column><el-table-column prop="communityContent" label="社区动态" align="center"></el-table-column><el-table-column prop="attractionName" label="景点" align="center"></el-table-column><el-table-column prop="communityContentTime" label="发布时间" align="center"></el-table-column><el-table-column prop="communityImgUrl" label="封面" align="center"><template #default="scope"><el-avatar shape="square" :size="50" :src="scope.row.communityImgUrl" /></template></el-table-column><el-table-column prop="status" label="状态" align="center"><template #default="scope"><el-switch active-value="1" inactive-value="0" v-model="scope.row.status"></el-switch></template></el-table-column><el-table-column label="操作" align="center"><template #default="scope"><el-button link type="primary" size="small" @click="detailCommunity(scope.row.id)">动态详情</el-button><el-button link type="primary" size="small" @click="editCommunity(scope.row.id)">动态编辑</el-button><el-button link type="primary" size="small" @click="delCommunity(scope.row.id)">动态删除</el-button></template></el-table-column></el-table></el-scrollbar>
 分页代码

这边布局采用了弹性布局 第一层让其居中 第二层让两个元素固定在中间左右

 <el-pagination> 中

 @size-change="handleSizeChange" 切换页码时候调整每页的条数 即点击分页按钮页码时候会跳转到当前页码并显示对应的条数  

layout="prev, pager, next" 是获取当前 布局

当我按pre 即左箭头 跳到之前一页   

按next 即右箭头 跳到之后一页

: total  是绑定总数 这边是绑定一个数组长度 动态根据条适应变化

@current-change="handleCurrentChange" 显示当前的页面

<div style="display: flex; justify-content: center; margin-top: 20px;"><div style=" text-align: center; display: flex ; justify-content: center;"><div style="margin: 10px; color: #999; font-size: 12px; line-height: 32px">每页 {{ pageSize }} 条记录</div><el-paginationbackground:current-page="currentPage":page-size="pageSize":total="commentArr.length"@current-change="handleCurrentChange"layout="prev, pager, next"style="flex-grow: 1"@size-change="handleSizeChange"></el-pagination></div></div>

 js部分

初始化

定义响应式变量 来初始化 pagesize页面和当前页码

// 分页相关
const currentPage = ref(1);
const pageSize = ref(10);
定义方法

动态获取 当前页面和页码尺寸

const handleCurrentChange = (val) => {currentPage.value = val;
};const handleSizeChange = (val) => {pageSize.value = val;currentPage.value = 1; // 切换每页行数时,返回第一页
};

动态获取响应式数据 利用数组的slice方法 根据索引的开头和结尾截取数组元素

// 获取当前页应显示的数据
const getCurrentPageData = computed(() => {const startIndex = (currentPage.value - 1) * pageSize.value;const endIndex = currentPage.value * pageSize.value;return commentArr.value.slice(startIndex, endIndex);
});

确定弹窗的的实例展示

效果: 当点击取消按钮的时候或者窗口出的❌,弹出确认弹窗

 template代码

弹窗dialog部分

:before-close是绑定调用方法handleBeforeClose

取消按钮@click绑定方法handleCancel()

<el-dialog :title="dialogTitle" style="width:1000px;padding:40px;"v-model="dialogVisible" :before-close="handleBeforeClose">
<template #footer><el-button @click="handleCancel()" style="background-color: #5CC4C3">取消</el-button></el-button></template>
</el-dialog>

js部分

组件样式使用的是 ElMessageBox  要导包

import {ElMessageBox} from "element-plus";

 我这边 调用确认弹窗主要是让弹窗消失,当然可以包括清除弹窗中的数据(常用)

const handleBeforeClose = (done) => {// 仅处理右上角关闭按钮的逻辑ElMessageBox.confirm('是否关闭本窗口?', '提示', {type: 'warning'}).then(() => {done();}).catch(() => {});
};
const handleCancel = () => {// 点击取消按钮时弹出确认框ElMessageBox.confirm('确定要取消操作吗?', '提示', {type: 'warning'}).then(() => {dialogVisible.value = false; // 用户确认后关闭弹窗}).catch(() => {});
};

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/854009.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

力扣191. 位1的个数

Problem: 191. 位1的个数 文章目录 题目描述思路复杂度Code 题目描述 思路 题目规定数值的范围不会超过32位整形数 1.定义统计个数的变量oneCount&#xff1b;由于每次与给定数字求与的变量mask初始化为1 2.for循环从0~32&#xff0c;每一次拿mask与给定数字求与运算&#xff…

【Linux应用】Linux系统的设备管理——Udev

1.udev概述 udev是 Linux2.6内核里的一个功能&#xff0c;它替代了原来的 devfs&#xff0c;成为当前 Linux 默认的设备管理工具&#xff0c;能够根据系统中的硬件设备的状态动态更新设备文件&#xff0c;包括设备文件的创建&#xff0c;删除等。 udev以守护进程的形式运行&am…

YOLOv10的使用总结

目录 YOLOv10介绍 部署和使用示例 微调训练 YOLO模型因其在计算成本和检测性能之间的平衡而在实时目标检测中很受欢迎。前几天YOLOv10也刚刚发布了。我们这篇文章就来看看YOLOv10有哪些改进&#xff0c;如何部署&#xff0c;以及微调。 概述 实时物体检测旨在以较低的延迟准…

JC/T 2653-2022 不发火砂浆检测

不发火砂浆是指当材料与金属等坚硬物发生摩擦、冲击或冲擦等机械作用时&#xff0c;不产生火花或火星的砂浆。 JC/T 2653-2022 不发火砂浆检测项目&#xff1a; 测试项目 测试方法 外观 JC/T 2653 抗压强度 GB/T 17671 抗折强度 GB/T 17671 保水率 JGJ/T 70 凝结时间…

23.1 时间-获取时间、休眠、超时

1. 获取时间 时间是个重要的编程元素&#xff0c;可用于计算间隔、同步服务器以及控制超时。 计算机中的时间分为以下两种形式&#xff1a; 墙钟时间&#xff1a;以12或24小时为周期不断重复&#xff0c;不同的地区和季节会因时区或夏令时而异。单调时间&#xff1a;从一个时…

CSS 实现电影信息卡片

CSS 实现电影信息卡片 效果展示 CSS 知识点 CSS 综合知识运用 页面整体布局 <div class"card"><div class"poster"><img src"./poster.jpg" /></div><div class"details"><img src"./avtar…

这 10 种架构师,不合格!

大家好&#xff0c;我是君哥。 架构师这个岗位是好多程序员努力的方向&#xff0c;尤其是刚毕业的时候&#xff0c;对架构师有一种崇拜感。毕竟从初级到架构要经历好几次级别飞跃。 工作时间久了&#xff0c;发现架构师这个岗位&#xff0c;其实定义非常广泛&#xff0c;根据工…

工具清单 - 项目管理

# 工具清单 Bonobo Git Server在新窗口打开 - Set up your own self hosted git server on IIS for Windows. Manage users and have full control over your repositories with a nice user friendly graphical interface. (Source Code在新窗口打开) MIT C#Fossil在新窗口打…

windows用脚本编译qt的项目

mingw的 cd build ::设置jom环境 set PATHC:\Qt\Qt5.15.2\Tools\mingw810_32\bin;%PATH% set PATHC:\Qt\Qt5.15.2\5.15.2\mingw81_32\bin;%PATH% ::设置Qt环境 amd64_x86 或者 amd64 ::CALL "D:\Program Files (x86)\Microsoft Visual Studio\2017\Enterprise\VC\Auxilia…

Element-ui中Table表格无法显示

Element-ui中Table表格无法显示 在使用过程中发现样式正常显示但是table就是不显示&#xff0c;研究了一段时间后&#xff0c;发现问题是项目结构的问题 当你创建vue和安装el的时候&#xff0c;一定要注意进入到正确的项目文件夹&#xff0c;如果在外面也出现一个package.jso…

【iOS】UI学习——cell的复用及自定义cell

目录 前言cell的复用手动&#xff08;非注册&#xff09;自动&#xff08;注册&#xff09; 自定义cell总结 前言 Cell复用和自定义Cell是在开发iOS应用时常见的一种优化技巧和定制需求。   Cell复用是UITableView或UICollectionView的一个重要优化机制。当用户滚动这些视图时…

图解 Twitter 架构图

写在前面 两年前&#xff0c;马老板收购了twitter&#xff0c;并且做了一系列的大动作。那么今天我们来看一下这个全球最火的软件之一的架构。 Twitter解析 开始之前&#xff0c;我先提前说明一下&#xff0c;我之前不是做搜推广的&#xff0c;所以对这些了解不是很深&…

实战项目: 负载均衡

0. 前言 这个项目使用了前后端,实现一个丐版的LeetCode刷题网站,并根据每台主机的实际情况,选择对应的主机,负载均衡的调度 0.1 所用技术与开发环境 所用技术: C STL 标准库 Boost 准标准库 ( 字符串切割 ) cpp- httplib 第三方开源网络库 ctemplate 第三方开源前端网…

【Java】已解决:java.lang.OutOfMemoryError: Java heap space

文章目录 一、问题分析背景二、可能出错的原因三、错误代码示例四、正确代码示例五、注意事项 已解决Java&#xff1a;java.lang.OutOfMemoryError: Java heap space 一、问题分析背景 在Java开发过程中&#xff0c;有时我们会遇到java.lang.OutOfMemoryError: Java heap spa…

python操作迅雷下载,支持文件重命名

python操作迅雷下载&#xff0c;支持文件重命名 最近从网上扒拉了许多的学习资料&#xff0c;发现一个一个手动重命名下载真的太伤身体了&#xff0c;然后就想想是否可以用python来操作迅雷一键下载我想要的学习资料&#xff0c;网上找了一圈&#xff0c;发现是真的可以下载&a…

容器镜像外网同步方案

目录 一、目的 二、安装nexus 1、购买香港云主机​编辑 2、安装nexus 3、启动nexus 服务 4、放行安全组 三、配置nexus 1、登录nexus管理页面 2、修改nexus密码 3、创建 Blob 存储空间(可选) 4、创建 镜像代理仓库 5、Realms配置 四、拉取镜像 1、配置docker 2、…

Floyd-Warshall

应用场景 要求出每两点之间的最短路。或判断两点之间的连通性&#xff08;两点之间是否有路径&#xff09;。 板子 代码&#xff08;必背!!!&#xff09; for(int k 1; k < n; k)for(int i 1; i < n; i)for(int j 1; j < n; j)d[i][j] min(d[i][j], d[i][k] …

C数据结构:排序

目录 冒泡排序 选择排序 堆排序 插入排序 希尔排序 快速排序 hoare版本 挖坑法 前后指针法 快速排序优化 三数取中法 小区间优化 快速排序非递归 栈版本 队列版本 归并排序 归并排序非递归 ​编辑 计数排序 各排序时间、空间、稳定汇总 冒泡排序 void Bub…

内存-VSS、RSS、PSS、USS

一、 VSS 虚拟耗用内存大小&#xff0c;是进程可以访问的所有虚拟内存的总量&#xff0c;包括进程独自占用的物理内存、和其他进程共享的内存、分配但未使用的内存。 RSS 驻留内存大小&#xff0c;是进程当前实际占用的物理内存大小&#xff0c;包括进程独自占用的物理内存、…

python安装及环境配置相关问题记录

1、python的安装 安装完成之后一切正常&#xff0c;利用命令提示符测试了一下全都正常&#xff0c;也不用把python的路径添加到系统变量里去。 pip的安装 pip组件是一个现代通用的Python包管理工具&#xff0c;其提供了对Python包的查找、下载、安装及卸载等功能。 大部分的…