vue el-table实现动态添加行和列具体代码

 更新时间:2023年09月15日 11:39:36   作者:别拿曾经看以后~  
最近遇到一个动态增加行和列的需求,所以这里给大家总结下,这篇文章主要给大家介绍了关于vue el-table实现动态添加行和列的相关资料,需要的朋友可以参考下

实现思路:

最近遇到一个动态增加行和列的需求,本来拿到需求的时候想用el-table中自带的方法去实现的,但是经过尝试发现不能满足想要实现的需求。没办法只能在el-table的基础上自己写原生。

大概思路如下:

1.首先把table中需要动态增加的行和列分开,分别定义一个数组dataList存放新增行数据,定义数组columnList存放新增列数据。

2.其次在指定列的数据前面加新增按钮,点击新增按钮的时候请求接口拿到数据。

3.然后把拿到的数据处理,把表格内容的数据push到dataList中,把表头内容数据push到columnList中。注意如果接口没有返回表头数据,则需要自己根据具体需求创造对应列的key-value存入columnList中。

(1)行可以直接添加在现有行后面展示,也可以在指定行的后面新增行。比如:在第一行后面新增行,则使用splice添加。splice(指定行,0,添加的新行数据)

(2)点击哪行则在哪行后面添加新行。思路:获取到当前点击行的索引,使用splice添加。splice(指定行,0,添加的新行数据)

4.最后把dataList给el-table的:data="dataList"使用,columnList给使用

5.以上是新增行和列的思路。如果想删除行和列的话,则需要通过splice或slice操作dataList和columnList即可。删除指定的索引位置。

大致代码如下:

<el-table :data="dataList">
	<el-table-column label="姓名" prop="name"></el-table-column>
	<!--动态列-->
	<el-table-column v-for="(it, index) in columnList" :key="index" :label="it.label">
		<!--动态行-->
		<template slot-scope="scope">
			<i class="el-icon-circle-plus-outline" @click="handleAddRow(scope.row, scope.$index)" />
			<span>{{scope.row.value}}</span>
			// 根据项目需求进行其他逻辑处理
		</template>
	</el-table-column>
</el-table>
export default {
	data() {
		return {
			dataList: [], // 表格数据
			columnList: [], //表头数据
		}
	},
	methods: {
		// 动态增加行
		async handleAddRow(row, index) {
			const data = await this.接口()
			data.forEach(d => {
				// 列添加
				this.columnList.push({ label: '年龄' })
				// 行添加
			    this.dataList.splice(index, 0, d)
			})
		}
	}
}

结语:

以上是el-table动态添加行和列的大概思路,大家可以作为参考,再结合具体需求细化!!!

补充:vue实现el-table表头自定义

Vue.js 是一个流行的JavaScript框架,它的数据绑定和组件化特性使得开发动态Web应用变得更加容易。其中,强大的UI组件库(如Element,iView等)能够极大地提高Web应用开发效率。而el-table是一种用于展示表格数据的组件,它拥有可排序、过滤、分页等多种功能。本文主要介绍如何使用Vue.js实现el-table表头自定义。

在Vue.js中使用el-table组件时,表头(thead)用于显示列名和控制排序、过滤等操作。默认情况下,el-table组件根据数据源中的列名自动生成表头。若需自定义表头,可通过以下方式实现:

  • 使用el-table-column组件

在el-table中使用el-table-column组件可以实现自定义表头。具体操作如下:

<el-table :data="tableData">
  <el-table-column prop="date" label="日期"></el-table-column>
  <el-table-column prop="name" label="姓名"></el-table-column>
  <el-table-column prop="address" label="地址"></el-table-column>
</el-table>

上述代码中,我们为el-table添加了三个el-table-column组件,分别对应表格中的三列数据。同时,我们在每个el-table-column组件上指定了prop和label属性,其中prop属性指定了对应的数据源中的字段名,label属性指定了表头标题。

  • 使用Scoped Slots

如果需要实现更加复杂的表头,可以使用Scoped Slots进行自定义。具体操作如下:

<el-table :data="tableData">
  <template slot="header">
    <el-row>
      <el-col :span="8">日期</el-col>
      <el-col :span="8">姓名</el-col>
      <el-col :span="8">地址</el-col>
    </el-row>
  </template>
  <el-table-column prop="date"></el-table-column>
  <el-table-column prop="name"></el-table-column>
  <el-table-column prop="address"></el-table-column>
</el-table>

上述代码中,我们使用了el-table的header slot,它可以让我们自定义表头,即在表头中添加任意HTML代码。在header slot中我们使用了el-row和el-col组件创建了一个表头行,然后通过span属性设置每列所占的宽度,最终实现了自定义表头。

到此这篇关于vue el-table实现动态添加行和列的文章就介绍到这了,更多相关el-table动态添加行和列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Spring boot 和Vue开发中CORS跨域问题解决

    Spring boot 和Vue开发中CORS跨域问题解决

    这篇文章主要介绍了Spring boot 和Vue开发中CORS跨域问题解决,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-09-09
  • vue中的h函数使用及说明

    vue中的h函数使用及说明

    这篇文章主要介绍了vue中的h函数使用及说明,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • Vue中组件命名与引用过程

    Vue中组件命名与引用过程

    Vue组件命名在引入和引用时因大小写转换规则差异,PascalCase用于JS定义,kebab-case用于模板,Vue会自动映射,推荐统一使用短横线命名,单文件组件(SFC)整合模板、脚本和样式,结构清晰,是Vue项目的核心组织方式
    2025-07-07
  • 封装一个更易用的Dialog组件过程详解

    封装一个更易用的Dialog组件过程详解

    这篇文章主要为大家介绍了封装一个更易用的Dialog组件过程详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-05-05
  • 7个很棒的Vue开发技巧分享

    7个很棒的Vue开发技巧分享

    这篇文章主要为大家整理了7个很棒的Vue开发技巧,可以帮助大家更好的理解和使用vue框架。文中的示例代码讲解详细,感兴趣的可以了解一下
    2023-02-02
  • Vue使用json-server进行后端数据模拟功能

    Vue使用json-server进行后端数据模拟功能

    这篇文章主要介绍了Vue使用json-server进行后端数据模拟功能,非常不错,具有参考借鉴价值,需要的朋友可以参考下
    2018-04-04
  • 解决vue项目,npm run build后,报路径错的问题

    解决vue项目,npm run build后,报路径错的问题

    这篇文章主要介绍了解决vue项目,npm run build后,报路径错的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • vue+Java后端进行调试时解决跨域问题的方式

    vue+Java后端进行调试时解决跨域问题的方式

    今天在开发中遇到有点小问题,vue+Java后端进行调试时如何解决跨域问题,下面小编给大家分享解决方法,感兴趣的朋友一起看看吧
    2017-10-10
  • element-ui下拉菜单组件Dropdown的示例代码

    element-ui下拉菜单组件Dropdown的示例代码

    这篇文章主要介绍了element-ui下拉菜单组件Dropdown,本文详细给大家介绍了我遇到的一个最大的坑,通过结合示例代码给大家介绍的非常详细,需要的朋友可以参考下
    2022-08-08
  • 详解Vue中添加过渡效果

    详解Vue中添加过渡效果

    本篇文章主要介绍了详解Vue中添加过渡效果 ,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-03-03

最新评论