本文介绍: 1、获取el–table所有勾选的行数据 2、el–table自定义列标题 3、el–table列可编辑,加入el–input等 4、el–table勾选只能选一条数据 5、el–table表头的全选框禁止使用
用于记录工作和日常学习遇到的坑,需求。
vue3+element–plus+ts
1、获取el–table所有勾选的行数据
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%">
<el-table-column prop="name" label="属性分类" />
<el-table-column prop="state" label="属性名称" />
<el-table-column prop="city" label="属性编码" />
<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勾选只能选一条数据
<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进行投诉反馈,一经查实,立即删除!
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。