elementui 表格前端自主排序,自主分页

因数据量不大,后端返回所有数据,前端做分页和排序。

html 复制代码
<el-table :data="table.data.slice((form.page-1)*form.pageSize,form.page*form.pageSize)"
@sort-change="sorttablefun">
<el-table-column prop="i0" label="零序电流" sortable="custom"/>
</el-table>
<div class="block" style="margin-top:0px;">
     <el-pagination align='center' background @size-change="handleSizeChange" @current-change="handleCurrentChange" 
     :current-page="form.page" 
     :page-sizes="[10]" 
     :page-size="form.pageSize" 
     layout="slot, total, sizes, prev, pager, next, jumper" 
     :total="table.total">
     </el-pagination>
 </div>

排序代码如下

javascript 复制代码
 handleSort({ column, prop, order }) {
      this.loading = true;
      this.tableData.sort((a, b) => {
        const valA = this.getValue(a[prop]);
        const valB = this.getValue(b[prop]);
        if (order === 'ascending') {
          return this.compare(valA, valB);
        } else {
          return this.compare(valB, valA);
        }
      });
      this.loading = false;
    },
    getValue(value) {
      // 自定义函数,处理各种类型值
      if (typeof value === 'number') {
        return value;
      } else if (typeof value === 'string' && /^\d+(\.\d+)?$/.test(value)) {
        return parseFloat(value);
      } else {
        return Infinity; // 非数字值按无穷大处理
      }
    },
    compare(a, b) {
      if (typeof a === 'number' && typeof b === 'number') {
        return a - b;
      } else if (typeof a === 'number') {
        return -1; // 数字排在前面
      } else if (typeof b === 'number') {
        return 1; // 数字排在前面
      } else {
        return 0; // 非数字值保持原顺序
      }
    }

分页代码如下

javascript 复制代码
handleSizeChange(val){
	this,form.page = 1;
	this.pageSize = val;
},
handelCurrentChange(val){
	this.form.page = val;
}
相关推荐
冰暮流星6 小时前
javascript之for-of循环
开发语言·javascript·ecmascript
不绝1916 小时前
Input/屏幕/Camera/光源/碰撞检测/音频相关
开发语言·javascript·ecmascript
火星数据-Tina6 小时前
体育平台搭建:如何高效引入赛事直播与比分数据
大数据·前端·网络
醉风塘6 小时前
完美升级!将ElTree生硬文本提示替换为优雅的ElEmpty组件
javascript·vue.js·elementui
RichardLau_Cx6 小时前
Google Chrome 浏览器安装「豆包插件」完整教程
前端·chrome·插件·豆包
stereohomology6 小时前
Typora中绕过主题html方式自定义字体的一个设置问题
前端·html
_OP_CHEN6 小时前
【前端开发之CSS】(四)CSS 常用元素属性宝典(下):背景与圆角进阶指南,让页面颜值飙升!
前端·css·html·页面开发·gui开发·css元素属性
光影少年6 小时前
react和vue多个组件在一个页面展示不同内容都是请求一个接口,如何优化提升率性能
前端·vue.js·react.js
aPurpleBerry6 小时前
React 组件:组件通信、受控组件&非受控组件、异步组件、HOC高阶组件
前端·react.js·前端框架
匠心网络科技6 小时前
前端框架-Vue双向绑定核心机制全解析(二)
前端·javascript·vue.js·前端框架