Vue3 ElementPlus Table表格实现单选

参考链接: https://blog.csdn.net/weixin_44640323/article/details/120510400

效果展示:

说明:代码使用vue3+ts+elementplus中的table组件完成

利用elementplus table中的@selection-change方法,设置单选。并用css隐藏全选按钮。

完整代码如下::

<template>
    <!-- 注意要包一层div根元素,否则css样式可能会不生效,原因不详 -->
    <div>
        <el-table ref="taskTableRef" :data="tableData" style="width: 100%" @select="selectClick">
            <el-table-column type="selection" width="55" />
            <el-table-column prop="name" label="元气少女缘结神" />
        </el-table>
    </div>
</template>

<script setup lang='ts'>
import { ref, reactive, toRefs } from 'vue'
const taskTableRef = ref(); // 表格ref

// 变量定义
const state = reactive({
    tableData: [{
        name: '巴卫'
    },
    {
        name: '奈奈生'
    },
    {
        name: '电灯泡'
    }],
});

// 主要方法
// table选择项发生变化时会触发该事件
const selectClick = (selection: any, row: any) => {
    if (selection.length > 1) {
        let del_row = selection.shift();
        taskTableRef.value.toggleRowSelection(del_row, false); // 用于多选表格,切换某一行的选中状态,如果使用了第二个参数,则是设置这一行选中与否(selected 为 true 则选中)
    }
}

const { tableData } = {
    ...toRefs(state),
};

</script>

<style scoped lang='scss'>
// 隐藏全选按钮
:deep(.el-table th.el-table__cell:nth-child(1) .cell) {
    visibility: hidden;
}
</style>

 

posted @ 2022-08-03 11:15  哎哟喂~  阅读(5852)  评论(1编辑  收藏  举报