vue3 el-table 行号

在 Vue 3 中,使用 Element Plus 的 <el-table> 组件来创建表格时,如果你想添加行号(即每一行的编号),可以通过自定义列来实现。下面是如何实现的步骤:

1. 安装 Element Plus

首先,确保你已经安装了 Element Plus。如果还没有安装,可以通过 npm 或 yarn 来安装:

复制代码
npm install element-plus --save
# 或者
yarn add element-plus

2. 在你的 Vue 组件中引入 Element Plus 的 <el-table><el-table-column>

复制代码
import { ElTable, ElTableColumn } from 'element-plus';
 
export default {
  components: {
    [ElTable.name]: ElTable,
    [ElTableColumn.name]: ElTableColumn
  }
}

3. 在模板中使用 <el-table> 和添加行号列

在你的 Vue 组件的模板部分,使用 <el-table> 组件,并通过 <el-table-column> 添加一个自定义的列来显示行号。你可以通过计算属性或者方法来实现这一功能。

方法一:使用计算属性
复制代码
<template>
  <el-table :data="tableData" border style="width: 100%">
    <el-table-column type="index" label="行号" width="50"></el-table-column>
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>
 
<script>
import { ElTable, ElTableColumn } from 'element-plus';
 
export default {
  components: {
    [ElTable.name]: ElTable,
    [ElTableColumn.name]: ElTableColumn
  },
  data() {
    return {
      tableData: [{
        date: '2016-05-02',
        name: '王小虎',
        address: '上海市普陀区金沙江路 1518 弄'
      }, {
        date: '2016-05-04',
        name: '张小刚',
        address: '上海市普陀区金沙江路 1517 弄'
      }]
    }
  }
}
</script>
方法二:使用方法生成行号(例如,自定义序号)

如果你需要更复杂的行号逻辑(例如,基于某些条件显示不同的行号),你可以使用一个方法在 el-table-columnrender 函数中生成行号。

复制代码
<template>
  <el-table :data="tableData" border style="width: 100%">
    <el-table-column label="行号" width="50">
      <template #default="{ $index }">
        {{ getCustomIndex($index) }}
      </template>
    </el-table-column>
    <el-table-column prop="date" label="日期" width="180"></el-table-column>
    <el-table-column prop="name" label="姓名" width="180"></el-table-column>
    <el-table-column prop="address" label="地址"></el-table-column>
  </el-table>
</template>
 
<script>
import { ElTable, ElTableColumn } from 'element-plus';
 
export default {
  components: {
    [ElTable.name]: ElTable,
    [ElTableColumn.name]: ElTableColumn
  },
  data() {
    return {
      tableData: [{ /* ... */ }] // 数据同上示例
    }
  },
  methods: {
    getCustomIndex(index) {
      // 例如,你可以根据条件修改行号显示逻辑,这里只是简单返回索引值加一作为示例。实际项目中可以根据需要定制。
      return index + 1; // 加一是因为数组索引从0开始,而我们通常期望行号从1开始。
    }
  }
}
</script>

这两种方法都可以实现在 Element Plus 的 <el-table> 中添加行号的功能。选择适合的。

相关推荐
辰风沐阳11 分钟前
JavaScript 的宏任务和微任务
javascript
跳动的梦想家h42 分钟前
环境配置 + AI 提效双管齐下
java·vue.js·spring
冰暮流星1 小时前
javascript之二重循环练习
开发语言·javascript·数据库
Mr Xu_1 小时前
Vue 3 中 watch 的使用详解:监听响应式数据变化的利器
前端·javascript·vue.js
一 乐2 小时前
校园二手交易|基于springboot + vue校园二手交易系统(源码+数据库+文档)
java·数据库·vue.js·spring boot·后端
科技D人生2 小时前
Vue.js 学习总结(20)—— Vue-Office 实战:word、pdf、excel、ppt 多种文档的在线预览
vue.js·word·vue-pdf·stylesheet·docx-preview·vue-office
vx1_Biye_Design2 小时前
基于Spring Boot+Vue的学生管理系统设计与实现-计算机毕业设计源码46223
java·vue.js·spring boot·spring·eclipse·tomcat·maven
vx_Biye_Design2 小时前
基于Spring Boot+vue的湖北旅游景点门票预约平台的设计--毕设附源码29593
java·vue.js·spring boot·spring cloud·servlet·eclipse·课程设计
hedley(●'◡'●)2 小时前
基于cesium和vue的大疆司空模仿程序
前端·javascript·vue.js·python·typescript·无人机
qq5_8115175152 小时前
web城乡居民基本医疗信息管理系统信息管理系统源码-SpringBoot后端+Vue前端+MySQL【可直接运行】
前端·vue.js·spring boot