Vue 中 element-ui table 结合后端请求实现排序

这篇具有很好参考价值的文章主要介绍了Vue 中 element-ui table 结合后端请求实现排序。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一.需求
需要对指定列,结合后端请求进行排序

二.效果
Vue 中 element-ui table 结合后端请求实现排序,elementui,前端,vue.js,javascript

三.知识点

3.1 如果需要结合后端请求排序,将需要排序的列上设置sortable为custom

3.2 同时在el-table标签上监听sort-change事件,在事件回调中可以获取当前排序列的字段名和排序顺序,从而将这些作为发起接口请求的入参

3.3 sort-change方法自带三个参数,分别为:

column:当前列
prop:当前列需要排序的字段名
order:排序的规则(升序、降序和默认,默认就是没排序)

四.代码和注释如下文章来源地址https://www.toymoban.com/news/detail-606986.html

 <el-table
     ref="multipleTable" 
     :data="tableData"
     tooltip-effect="dark"
     style="width: 100%"
     @selection-change="handleSelectionChange"
     @sort-change='sortTableFun' //监听sort-change事件,绑定sortTableFun函数
     border
 >
     <el-table-column
      prop="name"  //要设置prop,要不然函数获取不到对应的列的字段名
      label="指标名称"
      sortable='custom' //将需要排序的列上设置sortable为custom
      min-width="10%"
      show-overflow-tooltip
     >
    </el-table-column>
 </el-table>
 sortTableFun(column){//用户点击这一列的上下排序按钮时,触发的函数
          this.column = column.prop; //该方法获取到当前列绑定的prop字段名赋值给一个变量,之后这个变量做为入参传给后端
            if (column.prop) { //该列有绑定prop字段走这个分支
              if (column.order == 'ascending') {//当用户点击的是升序按钮,即ascending时
                  this.order = 'asc'; //将order这个变量赋值为后端接口文档定义的升序的字段名,之后作为入参传给后端
              } else if (column.order == 'descending') {
              //当用户点击的是升序按钮,即descending时
                  this.order = 'desc';//将order这个变量赋值为后端接口文档定义的降序的字段名,之后作为入参传给后端
              }
                  this.indexQueryListFun()//且发起后端请求的接口
            }
 },
 
indexQueryListFun(){ //发起后端请求的接口
        const param = `${this.column},${this.order}` //将入参按照后端要求的格式和类型提前准备好
        indexQueryList(param).then((res) => { //发起请求
          if (res.data.code == 200){ //如果返回200
          //将后端返回的内容做数据处理
             const sjclarr = res.data.result.records.map((i)=>{
              if(i.customerRealName==null){
                 i.customerRealName=''
              }else{
                 i.customerRealName=i.customerRealName.split('(')[0]
              }
              return i
            })
            this.tableData=sjclarr //将处理完的数据赋值到模板的表格数据上
            this.total=res.data.result.total 
          }else if(res.data.code == 401){ //若返回401
            alert("登录已失效") //弹窗登录已失效
            window.location.href="http:" //且跳转到对应地址
          }else{ //如果返回其他状态码,直接弹出后端返回的提示信息
            alert(res.data.message)
          }
        })
 }

到了这里,关于Vue 中 element-ui table 结合后端请求实现排序的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vue中数据滚动显示 实现Element-UI中el-table内数据的懒加载

    工作中我们经常会用到element-ui组件库中的le-table组件来展示数据,但当table的数据源数量过大的时候统一展示可能会出现页面卡顿,且会影响用户体验,为此我们可以尝试对el-table中的数据做懒加载的效果展示: 1. 挂在阶段监听el-table的scroll滚动事件 2. 当table表格滚动条的位置

    2023年04月08日
    浏览(55)
  • Vue Element-ui Table表格排序

    一.表格中有时候会有排序的需求,如果只针对当前页进行排序,那么前端就可以实现排序,在对应需要排序的字段中,使用sortable字段即可。 二.存在分页的情况时,前端仅仅使用sortable当前页排序已经不能满足我们的需求,无法对所有数据进行排序。这时候我们就要使用后端

    2024年02月11日
    浏览(48)
  • vue监听element-ui的table表格滚动事件

    这篇文章主要是讲述“如何监听element-ui table滚动事件”,按我自己尝试的方法去实现。 需求分析: 前两天做项目遇到一个问题,数据量大,然后表格渲染的很慢,而且很卡怎么办?有什么优化的方式? 那无非就是两种方法。 先加载一屏表格的数据,之后触底加载新的数据

    2024年02月12日
    浏览(57)
  • vue element-ui (可编辑)table加载缓慢问题

    公司最近开了个需求会,要求做一个可编辑的table的表格,并且要求该表格添加权限,点击可编辑,时间段跳转(选择时间,跳转到时间当前位置),无分页(要求一页解决),有选中框,有批量处理的功能,input添加校验功能,小图标展示,编辑后局部刷新页面: 1. 管理员

    2024年02月15日
    浏览(39)
  • Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页

    Vue+Element-UI 实现前端分页功能,利用el-table和el-pagination组件实现表格前端分页:         当table的数据量比较大的时候,一个屏幕展示不出全部的数据,这个时候就需要分页显示。而多数情况下都是做的后端分页,就是将分页参数和查询条件一并传到后端,后端将当前页要

    2024年01月20日
    浏览(54)
  • vue中Element-ui 表格 (Table)合并行、列单元格

    先在el-table里加个属性:span-method绑定方法objectSpanMethod(),这个用来把你想合并的列根据你写的逻辑来合并,再写个getSpanArr(),这个写合并的逻辑。 加一个属性两个方法,然后在获取表格数据的时候调用一下getSpanArr(),示例代码写了四个逻辑,根据id相同合并,根据id和其他字段

    2024年02月10日
    浏览(47)
  • vue使用element-ui,el-table不显示

    例如:新增了一个表格,按官网代码贴过来的,结果一直不显示 代码如下一模一样,其他数据正常显示,就表格不显示 其实版本库不一致导致的,贼坑,又不提示 先卸载element-ui安装一个低版本的element-ui就可以解决``

    2024年02月11日
    浏览(60)
  • 【Vue Element-ui el-table组件 实现跨分页全选 可全选中当前页 也可选中全量数据】

    前端模拟数据示例,无需后台接口,复制粘贴即可看到效果。 element-ui table里的全选功能只会全选当前页的所有数据 当table有分页功能的时候实现跨页全选 ①为table添加select方法(当用户手动勾选数据行的 Checkbox 时触发的事件) 两个参数 selection,row 选中的数据 最后一个选中

    2024年02月02日
    浏览(46)
  • vue+element-ui el-table组件二次封装实现虚拟滚动,解决数据量大渲染DOM过多而卡顿问题

    某些页面不做分页时,当数据过多,会导致页面卡顿,甚至卡死 一、固定一个 可视区域 的大小并且其大小是不变的,那么要做到性能最大化就需要尽量少地渲染 DOM 元素,而这个最小值也就是可视范围内需要展示的内容,而可视区域之外的元素均可以不做渲染。 二、如何计

    2024年02月10日
    浏览(63)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包