Element中的表格组件Table和分页组件Pagination

news2024/11/25 9:31:17

简述:在 Element UI 中,Table组件是一个功能强大的数据展示工具,用于呈现结构化的数据列表。它提供了丰富的特性,使得数据展示不仅美观而且高效。而Pagination组件是一个用于实现数据分页显示的强大工具。它允许用户在大量数据中导航,通过控制每页显示的数据数量和跳转到不同的页面,从而提高数据展示的效率和用户体验。简单记录


一. HTML

//表格
  <el-table
          @selection-change="handleSelectionChange"
          ref="singleTable"
          :data="tableData"
          :cell-style="{ 'text-align': 'center' }"
          highlight-current-row
          style="width: 100%"
          :header-cell-style="tableHeader"
          :cell-style="tableContent"
          :header-row-style="{ background: '#091e50', color: 'white' }"
          :row-style="{ background: '#091e50', color: 'white' }"
        >

          // 表格内容
          // 全选显示  
          <el-table-column type="selection" width="55"> </el-table-column>
          <el-table-column
            header-align="center"
            min-width="20%"
            label="开始时间"
            property="startTime"
          >
          </el-table-column>

  </el-table>      


//已选项数量提示和分页
  <div class="btm_choseBox">

        <div class="selected_items">
          <div class="tb_checks">
            <el-checkbox
              :indeterminate="isIndeterminate"
              v-model="checkAll"
              @change="handleCheckAllChange"
            >
              已选 {{ multipleSelection.length }} 项
            </el-checkbox>
          </div>
          <el-button @click="deletemultipleSelection"> 删除选中项 </el-button>
        </div>

        <el-pagination
          @size-change="handleSizeChange"
          @current-change="handleCurrentChange"
          :page-sizes="[10, 20, 30, 40, 50]"
          layout="total, sizes, prev, pager, next, jumper"
          :current-page="currentPage"
          :page-size="params.pageSize"
          :total="total"
        >
        </el-pagination>

  </div>




<!-- 表格组件 -->
  @selection-change="handleSelectionChange"  // 选中项变化时的处理方法
  ref="singleTable"                          // 表格的引用名称
  :data="tableData"                          // 表格数据
  :cell-style="{ 'text-align': 'center' }"   // 单元格样式,文本居中
  highlight-current-row                      // 高亮当前行
  style="width: 100%"                        // 表格宽度
  :header-cell-style="tableHeader"           // 表头单元格样式
  :cell-style="tableContent"                 // 表格内容样式
  // 表头行样式,背景色和文字颜色
  :header-row-style="{ background: '#091e50', color: 'white' }"  
  // 表格行样式,背景色和文字颜色  
  :row-style="{ background: '#091e50', color: 'white' }"  


<!-- 全选显示列 -->
    type="selection"


<!-- 表格内容列 -->
    header-align="center"      // 表头文本居中
    min-width="20%"            // 最小列宽度
    label="开始时间"            // 表头标签
    property="startTime"       // 对应数据属性


<!-- 已选项数量提示和分页 -->
    :indeterminate="isIndeterminate"  // 部分选中状态
    v-model="checkAll"                // 双向绑定全选状态
    @change="handleCheckAllChange"    // 全选状态变化时的处理方法


<!-- 分页组件 -->
    @size-change="handleSizeChange"                     // 页面大小变化时的处理方法
    @current-change="handleCurrentChange"               // 当前页变化时的处理方法
    :page-sizes="[10, 20, 30, 40, 50]"                  // 可选择的每页显示数量
    layout="total, sizes, prev, pager, next, jumper"    // 分页组件布局
    :current-page="currentPage"  // 当前页
    :page-size="params.pageSize"                        // 每页显示数量
    :total="total"                                      // 总数据量

二. 参数属性

// 表格参数
      tableData: [],
      tableLoading: false,


// 已选参数
      multipleSelection: [],
      checkAll: false, // 全选框状态
      isIndeterminate: false, // 全选框的中间状态

     
// 分页参数
      params: { pageNum: 1, pageSize: 10 },
      currentPage: 1,
      total: 0,

三. 函数事件

// 表头样式
tableHeader({ row, column, rowIndex, columnIndex }) {
      if (rowIndex === 0) {
        //第一行
        return `font-weight: bolder;
                background-color:#091e50;
                color:white;
                font-size:20px;`;
      }
},
// 表格内容样式
tableContent({ row, column, rowIndex, columnIndex }) {
      // if (columnIndex === 1) {
      //   return "color:blue;text-align:center;background-color:#72a4dd;";
      // }
      return `
              color: gray;
              text-align: center; 
              font-size:14px;
              font-weight:600;
              font-family:"宋体";
              `;
},


// 表格的全选事件
handleSelectionChange(val) {
      this.multipleSelection = val;
      this.checkAll = val.length === this.tableData.length;
      this.isIndeterminate =
        val.length > 0 && val.length < this.tableData.length;
},
// 删除选中项的方法
deletemultipleSelection() {
  // 获取选中的项的ID数组
  const ArrUuid = this.multipleSelection.map((cur) => {
    return cur.id; // 返回每个选中项的ID
  });
  
  // 显示确认对话框,确认是否永久删除选中项
  this.$confirm("此操作将永久删除该文件, 是否继续?", "提示", {
    confirmButtonText: "确定", // 确认按钮的文本
    cancelButtonText: "取消", // 取消按钮的文本
    type: "warning", // 提示类型,警告
  })
  .then(() => {
    // 用户确认删除后的操作

    // 开启加载状态
    this.tableLoading = true;
    
    // 调用删除操作的接口方法,传入选中项的ID数组
    delbypassControl(ArrUuid)
      .then((res) => {
        // 接口请求成功后的处理
        console.log(res);
        if (res.code === 200) {
          // 删除成功后显示提示信息
          this.$message({
            message: "删除成功", // 提示信息内容
            type: "success", // 提示类型,成功
            center: true, // 提示信息文字居中
            offset: 400, // 提示信息的垂直位置偏移量
          });
          // 调用刷新数据的方法
          this.callbypassControl();
        }
      })
      .catch(() => {
        // 接口请求失败后的处理
        this.tableLoading = false; // 关闭加载状态
      })
      .finally(() => {
        // 接口请求完成后的处理
        this.tableLoading = false; // 关闭加载状态
      });

  })
  .catch(() => {
    // 用户取消删除操作后的处理

    // 显示取消删除的提示信息
    this.$message({
      type: "info", // 提示类型,信息
      message: "已取消删除", // 提示信息内容
      offset: 400, // 提示信息的垂直位置偏移量
    });

  });
}


// 分页函数
handleSizeChange(val) {
      console.log(`每页 ${val} 条`);
      this.params.pageSize = val;
      // this.callbypassControl();
},
handleCurrentChange(val) {
      console.log(`当前页: ${val}`);
      this.params.pageNum = val;
      // this.callbypassControl();
},

 四. 元素样式

// 父级
position: relative;
padding-bottom: 50px;

// 元素
.btm_choseBox {
  width: 100%;
  height: 50px;
  position: absolute;
  left: 20px;
  bottom: 15px;
  display: flex;
  justify-content: space-between;
  align-items: center;
  box-sizing: border-box;
}
::v-deep .selected_items {
  display: flex;
  justify-content: flex-start;
  align-items: center;
  .el-checkbox__label {
    margin: 0px 20px 0px 10px;
  }
  label {
    color: white;
  }
  button {
    background-color: rgba(192, 192, 192, 0.479);
    border: none;
    color: white;
  }
}
.el-pagination {
  height: 100%;
  box-sizing: border-box;
  padding-right: 20px;
  text-align: right;
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

五. Pagination分页补充,分页样式

// 输入框中的文字颜色
::v-deep input {
  color: white !important;
}
// loading背景色
::v-deep .el-loading-mask {
  background-color: rgba(0, 0, 0, 0.479);
}


// el-pagination分页的背景和文字颜色
::v-deep .el-pagination {
  // 两边文字
  .el-pagination__total {
    color: white !important;
  }
  .el-pagination__jump {
    color: white !important;
  }
  // 两个输入框
  .el-input__inner {
    background-color: #092546;
    border: 1px solid rgba(192, 192, 192, 0.479);
    color: white !important;
  }
  // 左右按键和里面的图标
  button {
    background-color: #092546;
    .el-icon::before {
      color: white;
    }
  }
  // 分页数字
  ul {
    color: white;
    .el-icon::before {
      color: white !important;
    }
  }
  // 分页数字的背景色
  ul > li {
    background-color: #092546;
  }
}
::v-deep .el-loading-mask {
  background-color: rgba(0, 0, 0, 0.479);
}

 六. Table和Pagination,更多操作

Element官网icon-default.png?t=N7T8https://element.eleme.cn/#/zh-CN/component/table

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

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

相关文章

悲情短视频:成都柏煜文化传媒有限公司

悲情短视频&#xff1a;在光影交错中触动人心的温柔力量 在这个五彩斑斓的视频时代&#xff0c;悲情短视频如同一抹深秋的寒露&#xff0c;悄然落在人们的心田&#xff0c;带来一丝不易察觉却又难以抗拒的凉意。它们不以华丽的特效或激昂的音乐取胜&#xff0c;而是凭借真挚的…

“拆分盘投资:机遇与风险并存

一、引言 随着互联网技术的日新月异&#xff0c;金融投资领域迎来了前所未有的变革&#xff0c;其中拆分盘作为一种新兴的投资模式&#xff0c;正逐渐进入公众的视野。其独特的价值增长逻辑和创新的投资机制&#xff0c;为投资者开辟了新的财富增值渠道。本文旨在深入探讨拆分…

Spring Cloud 概述

目录 ​编辑一、认识微服务 1、单体架构 2、集群和分布式架构 3、微服务架构 二、Spring Cloud 1、什么是 Spring Cloud 2、Spring Cloud 版本 3、Spring Cloud 的实现方案 Spring Cloud Netflix ​编辑Spring Cloud Alibaba 一、认识微服务 1、单体架构 很多创业公…

14-Django项目--文件上传-Excel

目录 前端 路由 视图函数 前端 <div class"modal-body"><form method"post" enctype"multipart/form-data" action"/pretty/asset/">{% csrf_token %}<input type"file" name"excel"><bu…

什么是失调电压/补偿电压?

目录 一、概念理解 二、仿真理解 一、概念理解 输入失调电压&#xff08;input offset voltage&#xff09;&#xff1a;当运放连接模式为跟随器时&#xff0c;同相接GND&#xff0c;输出端并不会输出GND&#xff0c;根据不同运放参数会有微弱电压输出&#xff0c;这个参数就…

一文了解“大数据招商思维”,读懂什么是大数据招商!

近年来&#xff0c;随着大数据及人工智能等新一代信息技术的快速发展&#xff0c;数据作为重要的资源和资产&#xff0c;成为推动经济发展的核心驱动力&#xff0c;广泛应用于各个领域&#xff0c;深刻的改变着我们的生产和生活方式。那么对于“招商引资”来说&#xff0c;大数…

深入探讨JavaScript中的队列,结合leetcode全面解读

前言 队列作为一种基本的数据结构&#xff0c;为解决许多实际问题提供了有效的组织和处理方式&#xff0c;对于提高系统的稳定性、可靠性和效率具有重要作用&#xff0c;所以理解队列是很重要的。 本文深入探讨JavaScript中的队列这种数据结构,结合leetcode题目讲解 题目直达…

前端笔记-day12

文章目录 01-视口02-宽度适配方案03-rem体验04-rem基本使用05-媒体查询06-rem适配07-rem布局08-less-体验09-less-注释10-less-运算11-less-嵌套12-less-变量13-less-导入14-less-导出15-less-禁止导出16-急速问诊&#xff08;不准确写法&#xff09;index.htmlindex.css 17-急…

新章节:全设备通用调度算法-通讯重构

新章节&#xff1a;全设备通用调度算法-通讯重构 文章目录 新章节&#xff1a;全设备通用调度算法-通讯重构前言一、重构了TCP和UDP通讯二、优化了OPC和OPCUA三、升级了监控客户端四、升级了通讯的图形化其他升级 前言 现在真的很懒也很少写代码了&#xff0c;写代码和更新进度…

Laravel5+mycat 报错 “Packets out of order”

背景 近期对负责项目&#xff0c;配置了一套 主从复制的 MySQL 集群 使用了中间件 mycat 但测试发现&#xff0c;替换了原来的数据连接后&#xff0c;会出现 Packets out of order 的报错 同时注意到&#xff0c;有的框架代码中竟然也会失效&#xff0c;比如 controller 类中&…

智慧园区可视化:构建全方位智能管理体系

通过图扑的 2D、 3D 和 GIS 可视化技术结合倾斜摄影、数字孪生和视频融合等技术&#xff0c;将园区各类数据集成展示&#xff0c;实时监控和分析环境与设施状况&#xff0c;提升管理效能和安全水平&#xff0c;实现智慧园区的全方位智能化运营。

vscode python调试,找不到控制调试工具栏,被隐藏了

问题&#xff1a; 如图所示&#xff0c;最开始蓝框中的调试台被莫名其妙的隐藏了&#xff0c;没法进行调试。 解决办法&#xff1a; 打开设置输入调试点击调试&#xff08;31&#xff09;找到红框选的那个选项&#xff0c;选择floating

多步预测模型大更新

往期精彩内容&#xff1a; 时序预测&#xff1a;LSTM、ARIMA、Holt-Winters、SARIMA模型的分析与比较-CSDN博客 VMD CEEMDAN 二次分解&#xff0c;Transformer-BiGRU预测模型-CSDN博客 独家原创 | 基于TCN-SENet BiGRU-GlobalAttention并行预测模型-CSDN博客 独家原创 | B…

正交的拉丁方阵(MOLS)

在组合数学中&#xff0c;如果两个同阶的拉丁方阵叠加后&#xff0c;每个位置上的有序对条目都是唯一的&#xff0c;则这两个拉丁方阵被称为正交的。 如果一组同阶的拉丁方阵中&#xff0c;任意两个方阵都是正交的&#xff0c;则这组方阵被称为一组相互正交的拉丁方阵&#xf…

SSM高校学生综合测评系统-计算机毕业设计源码16154

摘要 随着互联网时代的到来,同时计算机网络技术高速发展,网络管理运用也变得越来越广泛。因此,建立一个BS 结构的高校学生综合测评系统,会使高校学生综合测评系统工作系统化、规范化,也会提高高校学生综合测评系统平台形象,提高管理效率。 本学生综合测评系统是针对目前高校学生…

.Net C#执行JavaScript脚本

文章目录 前言一、安装二、执行 JavaScript 脚本三、与脚本交互四、JS 调用 C# 方法五、多线程使用总结 前言 ClearScript 是一个 .NET 平台下的开源库&#xff0c;用于在 C# 和其他 .NET 语言中执行脚本代码。它提供了一种方便和安全的方法来将脚本与应用程序集成&#xff0c;…

CVE-2024-6387 分析

文章目录 1. 漏洞成因2. 漏洞利用前置知识2.1 相关 SSH 协议报文格式2.2 Glibc 内存分配相关规则 3. POC3.1 堆内存布局3.2 服务端解析数据时间测量3.3 条件竞争3.4 FSOP 4. 相关挑战 原文链接&#xff1a;个人博客 近几天&#xff0c;OpenSSH爆出了一个非常严重的安全漏洞&am…

软件开发中常用的11款bug记录、跟踪、管理系统对比【2024更新】

软件开发项目的复杂性不断增加&#xff0c;有效的bug管理变得尤为关键。对开发团队而言&#xff0c;没有什么比选择一款合适的Bug跟踪工具更重要的了。工具的功能、界面友好度、整合能力及成本都是决策的关键因素。 1、PingCode 推荐指数&#xff1a;五星 简介&#xff1a;P…

常微分方程算法之编程示例十一-两点狄利克雷边值问题(紧差分法)

目录 一、研究问题 二、C++代码 三、计算结果 一、研究问题 本节我们采用紧差分法对示例八中的两点狄利克雷边值问题进行外推求解,相应的原理及推导思路请参考: 常微分方程算法之高精度算法(Richardson法+紧差分法)_richardson外推法-CSDN博客https://blog.csdn.net/L_…

python gdal 压缩栅格数据

1 压缩方法LZW 使用 LZW&#xff08;Lempel-Ziv-Welch&#xff09;&#xff0c;主要对图像数据压缩&#xff0c;可逆 2 代码 函数gdal_translate()&#xff1a;转换栅格的不同格式 我们使用的数据是GTiff格式的数据 GTiff – GeoTIFF File Format — GDAL documentation 参…