不说废话,直接上完整代码
记录一下
代码解释
el-table 组件的一部分,用于在表格中显示一列数据。你想在表格中实现一个序号列,并且通过 index 属性来计算和显示序号。
以下是代码的解释和序号实现的方式:
<el-table-column
align="center"
:index="1 + pageSize * (currentPage - 1)"
label="序号"
type="index"
width="60"
></el-table-column>
align="center": 设置列内容的对齐方式为居中。:index="1 + pageSize * (currentPage - 1)": 使用 Vue 的动态绑定来计算序号的起始值。这里的index属性是用来显示序号的。label="序号": 设置列标题为“序号”。type="index": 指定列的类型为序号类型,这样 Element Plus 会自动生成序号。width="60": 设置列的宽度为 60 像素。
序号实现
在 el-table-column 中使用 type="index" 时,Element Plus 会自动为该列生成序号。你所做的动态绑定是为了调整序号的起始值。具体来说,index 属性的计算方式如下:
pageSize: 每页显示的条目数。currentPage: 当前页码。
计算公式 1 + pageSize * (currentPage - 1) 主要是用于计算当前页的起始序号。例如,如果每页显示 10 条数据,当前页是第 2 页,那么第一个数据项的序号是 1 + 10 * (2 - 1) = 11。这样,序号从 11 开始递增。
注意
- 如果你的序号从
1开始,而不是从0,确保你的计算公式是正确的。通常index的值应该是由 Element Plus 自动管理的,只需要在el-table组件中配置好type="index"即可自动生成序号。动态设置index值可能会导致问题。
完整示例
确保你的表格组件设置正确,以下是一个完整的使用示例:
<template>
<el-table :data="tableData" :pagination="pagination" style="width: 100%">
<el-table-column
align="center"
type="index"
label="序号"
width="60"
></el-table-column>
<!-- 其他列定义 -->
</el-table>
</template>
<script setup lang="tsx">
import { ref } from 'vue'
const tableData = ref([]) // 表格数据
const pageSize = ref<number>(10)
const currentPage = ref<number>(1)
</script>
在这个例子中,type="index" 会自动生成序号,不需要手动设置 index 属性。