【vue】el-table实现动态添加行和列

开发者福利!热门AI工具限时免费用 购周边即赠Coding Plan Lite,Claude Code、Cursor等20+工具畅享,效率翻倍! 阅读详情

实现思路:
最近遇到一个动态增加行和列的需求,本来拿到需求的时候想用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动态添加行和列的大概思路,大家可以作为参考,再结合具体需求细化!!!不足之处请指出,谢谢

el-table动态添加,。自定义输入表头,input hover 显示文字 1,动态添加 2,动态添加 3,右键表头删除 4,右键表体删除 5,表格hover提示当前单元格文字,自动换 6,表头文字自定义 7,表头,添加按钮固定,表体自适应滚动效果图: 阅读详情

相关推荐

el-table动态新增及校验规则

ElementUI el-table内输入验证问题,动态增减

weixin_45609659的博客 4528

Vue/element】 el-table实现表格动态新增/插入/删除 表格,可编辑单元格

点击“新增一”可以在表格最后新增一,单元格内容可编辑

coderYYY的博客 1万+

el-table实现筛选功能,控制的显示隐藏(实现简单,效果满分)

el-tablet添加筛选功能,控制的显示隐藏

想了半天,还不知道写点什么 1万+

el-teable表格动态数渲染及详解

在项目中编写数据大屏的时候,除了柱状图、折线图、散点图…,还有,首先想到的是的表格,但是在后续的实现过程中,后端范围的数是动态的,刚开始没有考虑到,然后采用了第一种方式,但是数据处理方式不太好,后来在Element官网查看了文档,就使用方式进实现(第二种方式),不过两种方式都需要对数据进处理第一种方式主要使用循环实现,页面逻辑比较简单,具体布局如下: 中数据如下: 使用来处理数据,将数据处理成渲染需要的格式,如下: 因为数不固定,需要每一的宽度也需要动态的计算,通过来实现,具体如下: 实现效果图如

我是段段的博客 1万+

el-table动态添加

在开发管理系统过程中碰到一些需求,针对表格,运营人员需要自己添加一些,然后输入内容保存,以此来实现产品的高可配性,接下来我们就来实现这个功能。 对于这些动态添加,后端用JSON字符串的形式存储起来最为方便,这里我们假定存储在custom字段中,例如:custom:"{\"测试\":1}" 这种形式。 所以我们的el-table中,一部分为固有表头字段,而动态则通过数组循环生成。 1、首先假设返回的表格数据为: tableData: [ { date:..

denglouhen的博客 1万+

Vue3 element-plus框架el-from表单嵌套el-table,实现动态添加删除并进表单校验

Vue3 element-plus框架el-from表单嵌套el-table,实现动态添加删除并进表单校验。

weixin_50971607的博客 527

ElementUI Table 表格动态添加

有需求的可以去看下原文,我是参考后又改造了一番。懒得发什么动态图,直接静态就好了。

qq_42730111的博客 4360

el-table合并单元格:span-method的使用

合并前是这样: 合并后是这样: 实现方法: ① el-table添加属性:span-method=“arraySpanMethod” <el-table :data="tableData" :span-method="arraySpanMethod" border stripe fit > ②vue文件的 method里定义arraySpanMethod arraySpanMethod({ row, column,

weixin_43258184的博客 3959

elementui表格插槽使用的input输入框,添加键盘快捷键上下左右箭头,获取焦点

elementui表格插槽使用的input输入框,添加键盘快捷键上下左右箭头,获取焦点

lurenlinshen的博客 1931

vue el-table 动态添加、删除

el-table 动态添加、删除

且听风吟的博客 2万+

ElementUI中的el-table表格实现动态添加、删除一、清空所有

ElementUI中的el-table实现动态添加、删除一、清空所有 场景 效果如下 实现 首先页面添加一个el-table,然后绑定其数据源为bcglXiangXiList, 并且通过 添加了勾选框。 然后通过@selection-change="handleDetailSelectionChange设置其勾选框改变事件。 这里的数据源bcglXiangXiList要提前声明 data() { return { //详细list bcglXiangXiList: [], 这里的每一是不同的

weixin_45123696的博客 2万+

el-table表格动态合并、合并及详解

在写项目的时候有时候会经常遇到把合并起来的情况,因为有些数据是重复渲染的,不合并会使表格看起来非常的混乱,如下: 而我们想要的数据是下面这种情况,将重复的合并,使表格看起来简单明了,如下: 所谓的合并就是将多相同的数据变成一来显示,直接上代码,页面的布局比较简单 是el-table上属性,其值是一个,objectSpanMethod方法是用来处理合并的返回值,tableData数据如下: 首先需要对数据就处理,就是比较当前与上一的值是否相等(如果是第一数据,直接将值赋值为1)

我是段段的博客 2万+

vueElementUI el-table自适应实现

【背景小记】 el-tableel-table-column如果不指定width的话,会自动设定一个宽度,表格内容会自动换,对强迫症用户来说非常不友好,为了追求完美用户体验,所以这里需要实现两个效果: 1. 强制表格内容不换显示 2. 实现表格宽自适应撑开 【代码实现】 <template> <el-table ref="tableRef" v-loading="loading" :data="tableDat

coralime的博客 5万+

vue el-table 动态添加、删除 动态验证添加中表单的

vue el-table 动态添加、删除 需求:动态新增删除表格,选择每一的物料编码带出并展示 后面一串数据(物料名称、物料规格、单位等) 需要注意三个点: 1、动态增加 2、动态验证中表单值 3、怎么带出值 一、动态增加代码 <el-dialog :title="title" :visible.sync="materialOpen" width="900px" append-to-body> <el-form :rules="rules" ref="a

weixin_45869649的博客 3682

elementUi 组件插件: el-table表格拖拽修改宽及高 及 使用注意事项 >

由于项目需求,需要给定原先使用的element表新增一个动态拖拽功能。结合在网上找到的资源,出一期 “ 使用事项 ” 及 使用过程中的问题汇总

一个平平无奇的技术宅 1万+

Vue入门实战6】【ElementUI组件使用优化】el-form动态增减表单项==> el-table自定义数并动态加载 ==> 处理后端复杂数据结构==>回显动态数据

Vue入门实战6】【ElementUI组件使用优化】el-form动态增减表单项==> el-table自定义数并动态加载 ==> 处理后端复杂数据结构==>回显动态数据

Sabrina_cc的博客 4843

vue element-ui表格table 表格动态 添加、删除添加、删除 自定义表头

【代码】vue element-ui表格table 表格动态 添加、删除添加、删除 自定义表头。

Java全栈开发 1万+

Vue+element-ui 动态合并el-table

el-table span-method属性(合并的计算方法)

qq_44131445的博客 905

如何解决el-table动态添加固定时出现的错位

在使用el-table组件时,我们有时需要根据用户的操作动态添加或删除一些固定,例如操作或选择。但是,当我们使用v-if指令来控制固定的显示或隐藏时,可能会出现表格错位的问题,即固定非固定高度不一致,导致表格的布局混乱。其中,针对本文添加dom触发bug的条件,有效的方法是使用doLayout方法,该方法可以在表格的数据或发生变化时,对表格的dom进重新渲染,更新表格的布局。

Where runes of code shape the picture :) 2967
上一篇: 【Vue】el-date-picker日期选择器选择框位置异常
下一篇: 【antDesign--ProComponents】高级表格/高级布局等应用UI框架
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值