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-pagination
            background
            :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.mfbz.cn/a/714990.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

N32G031 ADC初始化

目录 1. ADC初始化概述 2. ADC初始化详细步骤 2.1 ADC配置 2.2 ADC初始化函数调用 2.3 DMA配置&#xff08;可选&#xff09; 3. 初始化结果验证 4. 注意事项 ADC采样注意事项 1. ADC初始化概述 在N32G031单片机中&#xff0c;ADC的初始化是确保ADC模块能够正常工作的…

Python基础用法 之 数据类型

Python常见数据类型分类 数字型非数字型整型&#xff1a; 整数--int--16 字符串&#xff1a;使用引号引起来的的就是字符串--Tom 浮点型&#xff1a;小数--float--16.66列表&#xff1a;list [1,2,3] 布尔型&#xff1a;bool&#xff08;真True&#xff0c;假False&#xff…

c++模板模式

文章目录 模板模式什么是模板模式为什么使用模板模式模板模式实现步骤 示例模板模式优缺点 模板模式 什么是模板模式 模板模式&#xff08;Template Method Pattern&#xff09;是一种行为设计模式&#xff0c;它定义了一个操作中的算法骨架&#xff0c;将某些步骤的具体实现延…

Python(三)---字符串

文章目录 前言1.创建字符串2.字符串的编码3.空字符串和len()函数4.转义字符5.从控制台读取字符串6.字符串的相关操作6.1.通过[]访问元素6.2.字符串切片slice操作6.3.字符串拼接和字符串复制6.4.split()分割和join()合并6.5.常用查找方法6.6.replace() 实现字符串替换6.7.去除首…

Matlab自学笔记三十一:结构数组的创建、索引和预分配内存

1.概念 结构&#xff08;structure array&#xff09;是一种具有容器特性的数据类型&#xff0c;它使用称为字段的数据容器对相关数据进行分组&#xff0c;每个字段可以包含任何类型或大小的数据&#xff0c;所有元素都具有相同数量的字段和相同的字段名称。&#xff08;与元胞…

哈喽GPT-4o——对GPT-4o 提示词的思考与看法

目录 一、提示词二、常用的提示词案例1、写作助理2、改写为小红书风格3、英语翻译和改写4、论文式回答5、主题解构6、提问助手7、Nature风格润色8、结构总结9、编程助手10、充当终端/解释器 大家好&#xff0c;我是哪吒。 最近&#xff0c;ChatGPT在网络上广受欢迎&#xff0c…

gbase8s数据库的逻辑日志、物理日志和两种特殊情形的学习

(一) 日志的介绍 1. 日志的类别 数据库日志主要是分为记录日志、逻辑日志和物理日志。 记录日志&#xff1a;记录日志包括了数据库的报错日志、连接日志、sql执行等信息&#xff0c;这些日志不存储在dbspace上&#xff0c;而是保存在操作系统的文件内逻辑日志和物理日志&…

Java高频面试题整理(几万字)

&#x1f469;&#x1f3fb; 作者&#xff1a;一只IT攻城狮 &#xff0c;关注我不迷路 ❤️《java面试核心知识》突击系列&#xff0c;持续更新… &#x1f490; 面试必知必会学习路线&#xff1a;Java技术栈面试系列SpringCloud项目实战学习路线 &#x1f4dd;再小的收获x365天…

【Windows】已解决:修改本地host文件异常的正确解决方法

文章目录 一、问题背景二、可能出错的原因三、错误代码示例&#xff08;注意&#xff1a;这里不涉及具体的代码&#xff0c;但会描述常见的错误操作&#xff09;四、正确解决方法五、注意事项 已解决&#xff1a;修改本地host文件异常的正确解决方法 一、问题背景 在开发或测…

数据库原理(关系型数据库基本理论)——(

一、关系的概念 1.关系的定义 &#xff08;1&#xff09;域 域是一组具有相同数据类型的值的集合&#xff0c;可以理解为int[]&#xff08;int类型的数组&#xff09;是一个域。 &#xff08;2&#xff09;笛卡儿积 简单来说&#xff0c;若干个域的笛卡儿积就是将这几个域的…

DenseNet完成Cifer10任务的效果验证

本文章是针对论文《2017-CVPR-DenseNet-Densely-Connected Convolutional Networks》中实验的复现&#xff0c;使用了几乎相同的超参数 目录 一、论文中的实验 1.准确率 2.参数效率 3.不同网络结构之间的比较 二、超参数: 三、复现的实验结果&#xff1a; 1.DenseNet20…

satck和queue以及priority_queue

1、stack的介绍和使用 stack具有后进先出的特性&#xff0c;&#xff0c;stack是被作为容器适配器实现的&#xff0c;容器适配器是利用现有的容器类型作为基础&#xff0c;来创建新的容器类型&#xff0c;容器适配器通常与普通容器提供相同的接口&#xff0c;但可能添加了一些特…

非连续分配管理方式(重点)

目录 一. 基本分页存储管理1.1 什么是分页存储1.2 页表 二. 基本地址变换机构三. 具有快表的地址变换机构3.1 什么是快表3.2 引入快表后, 地址的变换过程3.3 局部性原理 四. 两级页表4.1 单级页表存在什么问题?如何解决?4.2 两级页表的原理、逻辑地址结构4.3 如何实现地址变换…

Arthas线上环境问题排查定位工具

一、Arthas简介 Arthas是alibaba推出的一款JVM性能诊断调优的工具&#xff0c;也可以称之为是线上监控诊断产品&#xff0c;通过全局的视角可以实时的查看应用load、内存、GC、线程的状态信息&#xff0c;并且还可以在不修改应用代码的前提下&#xff0c;对业务问题进行诊断&a…

JavaFX文本

另一个基本的JavaFX节点是Text节点&#xff0c;它允许我们在场景图上显示文本。要创建Text节点&#xff0c;请使用javafx.scene.text.Text类。 所有JavaFX场景节点都从javafx.scene.Node中扩展&#xff0c;并且它们继承了许多功能&#xff0c;例如缩放&#xff0c;翻译或旋转的…

【算法专题--链表】删除排序链表中的重复元素 -- 高频面试题(图文详解,小白一看就懂!!)

目录 一、前言 二、题目描述 三、解题方法 ⭐双指针 四、总结与提炼 五、共勉 一、前言 删除排序链表中的重复元素这道题&#xff0c;可以说是--链表专题--&#xff0c;最经典的一道题&#xff0c;也是在面试中频率最高的一道题目&#xff0c;通常在面试中&#xff0…

2000-2023年各省年末常住人口数据(无缺失)

2000-2023年各省年末常住人口数据&#xff08;无缺失&#xff09; 1、时间&#xff1a;2000-2023年 2、来源&#xff1a;国家统计局、各省年鉴 3、指标&#xff1a;年末常住人口 4、范围&#xff1a;31省 5、指标解释&#xff1a; 年末人口数指每年12月31日24时的人口数。…

Verilog综合出来的图

Verilog写代码时需要清楚自己综合出来的是组合逻辑、锁存器还是寄存器。 甚至&#xff0c;有时写的代码有误&#xff0c;vivado不能识别出来&#xff0c;这时打开综合后的schematic简单查看一下是否综合出想要的结果。 比如&#xff1a;误将一个always模块重复一遍&#xff0c;…

【深度学习】解析Vision Transformer (ViT): 从基础到实现与训练

之前介绍&#xff1a; https://qq742971636.blog.csdn.net/article/details/132061304 文章目录 背景实现代码示例解释 训练数据准备模型定义训练和评估总结 Vision Transformer&#xff08;ViT&#xff09;是一种基于transformer架构的视觉模型&#xff0c;它最初是由谷歌研究…

29.添加录入注入信息界面

上一个内容&#xff1a;28.启动与暂停程序 以 28.启动与暂停程序 它的代码为基础进行修改 效果图&#xff1a; 新建Dialog 给新建的dialog添加空间&#xff0c;如下图 给每个输入框创建一个变量 代码&#xff1a; void CWndAddGame::OnBnClickedButton1() {static TCHAR BASE…