vue+elementPlus实现表格展示序号并且翻页不重新排

javascript 复制代码
<template>
  <el-table :data="tableData" style="width: 100%">
    <el-table-column type="index" :index="indexMethod" />
    <el-table-column prop="date" label="Date" width="180" />
    <el-table-column prop="name" label="Name" width="180" />
    <el-table-column prop="address" label="Address" />
  </el-table>
  <el-pagination
   v-model:page-size="params.pageSize"
   background
   layout="prev, pager, next"
   size="small"
   :total="4"
    @current-change="handleCurrentChange"
   />
</template>

<script lang="ts" setup>
import {ref} from 'vue';
// index+1 代表从1开始排序
const indexMethod = (index: number) => {
  return (params.pageNo - 1) * params.pageSize + (index + 1)
}
const params = {
    pageNo: 1,
    pageSize: 3
}
let tableData = ref([
  {
    date: '2015-05-03',
    name: 'Tom',
    state: 'California',
    city: 'Los Angeles',
    address: 'No. 189, Grove St, Los Angeles',
    zip: 'CA 90036',
    tag: 'Home',
  },
  {
    date: '2016-05-02',
    name: 'Tom',
    state: 'California',
    city: 'Los Angeles',
    address: 'No. 189, Grove St, Los Angeles',
    zip: 'CA 90036',
    tag: 'Office',
  },
  {
    date: '2017-05-04',
    name: 'Tom',
    state: 'California',
    city: 'Los Angeles',
    address: 'No. 189, Grove St, Los Angeles',
    zip: 'CA 90036',
    tag: 'Home',
  }
])
const handleCurrentChange = (val) =>{
  params.pageNo = val;
  tableData.value = [
   {
    date: '2018-05-01',
    name: 'Tom',
    state: 'California',
    city: 'Los Angeles',
    address: 'No. 189, Grove St, Los Angeles',
    zip: 'CA 90036',
    tag: 'Office',
  }, {
    date: '2019-05-03',
    name: 'Tom',
    state: 'California',
    city: 'Los Angeles',
    address: 'No. 189, Grove St, Los Angeles',
    zip: 'CA 90036',
    tag: 'Home',
  },
  {
    date: '2020-05-02',
    name: 'Tom',
    state: 'California',
    city: 'Los Angeles',
    address: 'No. 189, Grove St, Los Angeles',
    zip: 'CA 90036',
    tag: 'Office',
  }
  ]
}
</script>

排序翻页不重新从1开始

<el-table-column type="index" :index="indexMethod" />

// index+1 代表从1开始排序

const indexMethod = (index: number) => {

return (params.pageNo - 1) * params.pageSize + (index + 1)

}

相关推荐
码艺-Alimjan15 小时前
Tauri 源码备份 · 打包 & 解压 总结,源码收集之路
前端·javascript·vue.js
顽疲17 小时前
Java vue 养老系统源码详解:月账单 care_month_bill 与 Quartz 扣费 Job 实践
java·开发语言·vue.js·vue养老·springboot养老·java养老
毕业设计70319 小时前
(免费领源码)基于node的学生公寓管理系统06412- java、PHP、python、C#、小程序、大数据、单片机、网络工程等)
vue.js·mysql·node.js·maven·mybatis·express·b/s
古夕19 小时前
地址变了,页面是空的:一次 Vue Router 菜单切换复盘
前端·vue.js
沙漏无语1 天前
pnpm 安装@vue-office包的幽灵依赖问题解决
前端·javascript·vue.js
雪芽蓝域zzs1 天前
第 9 节:面积测量(测面工具)
vue.js
℘团子এ1 天前
vue2中自定义指令的使用
前端·javascript·vue.js
℘团子এ1 天前
vue3中自定义指令的使用
前端·javascript·vue.js
m0_587383001 天前
碰碰好评卡功能落地实战 从需求梳理到上线部署全流程实操指南
java·linux·服务器·前端·javascript·vue.js·人工智能
Pu_Nine_91 天前
Vue‑Flow 从零入门实战|AI‑Agent 拓扑图开发
前端·javascript·vue.js