本文介绍: 1、获取eltable所有勾选行数据 2、eltable自定义标题 3、eltable列可编辑加入elinput等 4、eltable勾选只能选一条数据 5、eltable表头的全选框禁止使用

用于记录工作日常学习遇到的坑,需求

vue3+elementplus+ts

1、获取eltable所有勾选行数

在这里插入图片描述在这里插入图片描述在这里插入图片描述1、需要声明一个ref变量,并赋值el-table
2、通过el-table提供的getSelectionRows()函数获取选中的”行对象数据

    const tableRef = ref();

	const selectedAry = tableRef.value.getSelectionRows();
	console.log(selectedAry);

2、el-table自定义标题

在这里插入图片描述在这里插入图片描述

				<el-table :data="expandAttribute" style="width: 100%"&gt;
						<el-table-column prop="name" label="属性分类" /&gt;
						<el-table-column prop="state" label="属性名称" /&gt;
						<el-table-column prop="city" label="属性编码" /&gt;
						<el-table-column prop="address" label="属性值" />
						<el-table-column>
							<template #header>
								<span>操作</span>
								<el-icon><CirclePlus /></el-icon>
							</template>
						</el-table-column>
					</el-table>

3、el-table列可编辑,加入el-input

在这里插入图片描述

<el-table :data="form.cargoList" :cell-style="tableStyle.cellStyle" :header-cell-style="tableStyle.headerCellStyle" height="300">
							<el-table-column type="index" label="序号" width="60" />
							<el-table-column prop="spuId" show-overflow-tooltip v-if="false" />
							<el-table-column label="物料名称">
								<template v-slot="scope">
									<el-tree-select
										v-model="scope.row.skuId"
										:data="spuLinkTree"
										:render-after-expand="false"
										placeholder="请选择物料"
										@change="selectSku(scope.row)"
									/>
								</template>
							</el-table-column>
							<el-table-column label="货物数量">
								<template v-slot="scope">
									<el-input v-model="scope.row.soQty" placeholder="请输入货物数量" />
								</template>
							</el-table-column>
							<el-table-column label="操作" width="150">
								<template #default="scope">
									<el-button icon="delete" text type="primary" @click="handleDelete([scope.row.$index])">删除</el-button>
								</template>
							</el-table-column>
						</el-table>

4、el-table勾选只能选一条数据

无论在table中勾选次数据,都只能选中一条

		<el-table
			:data="tableData"
			style="width: 100%; margin-bottom: 20px; height: 300px"
			border
			ref="chooseSkuTableRef"
			@select="handleSelectionChange"
		>
			<el-table-column type="selection" width="40" align="center" />
			<el-table-column prop="skuCode" label="物料编码" />
			<el-table-column prop="skuName" label="物料名称" />
		</el-table>



//列表复选框点击事件限制列表只能选择一条数据
const handleSelectionChange = (selection, row) => {
	// 判断长度大于1
	if (selection.length > 1) {
		// shift() 方法用于数组第一个元素从其中删除,并返回第一个元素的值。
		// 该方法不创建数组,而是直接修改原有的 arrayObject
		let del_row = selection.shift();
		// 其余的都不选中
		chooseSkuTableRef.value.toggleRowSelection(del_row, false);
	}
};

5、el-table表头的全选框禁止使用

需求是“el-table表头的全选框禁止使用,但是还不能隐藏
在这里插入图片描述
el-table标签中加入@select-all=“selectAll”

		<el-table
			:data="tableData"
			style="width: 100%; margin-bottom: 20px; height: 300px"
			border
			ref="chooseSkuTableRef"
			@select="handleSelectionChange"
			@select-all="selectAll"
		>



//禁用el-table的表头全选功能
const selectAll = () => {
	chooseSkuTableRef.value.clearSelection();
};

原文地址:https://blog.csdn.net/qq_26905813/article/details/132105107

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任

如若转载,请注明出处:http://www.7code.cn/show_34924.html

如若内容造成侵权/违法违规/事实不符,请联系代码007邮箱suwngjj01@126.com进行投诉反馈,一经查实,立即删除

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注