el-table本事是有单选事件的,其事件是row-click,但是这个选中效果是没有radio单选框视觉上的显示的,因此,我们可以利用结合template和slot-scope来实现:
一、html部分:
<el-table :data="rightData.items" stripe height="750px" v-loading="isLoadingRight" highlight-current-row @row-click="itemsRowClick">
<el-table-column label width="35">
<template slot-scope="scope">
<el-radio :label="scope.row.sourceId" v-model="sourceId"></el-radio>
</template>
</el-table-column>
<el-table-column label="Source Name" prop="sourceName"></el-table-column>
<el-table-column label="Load Time" prop="loadTime"></el-table-column>
<el-table-column label="Count" prop="count"></el-table-column>
</el-table>
二、在data里面定义一个变量:exportId
三、methods实现方法:
rowClick(row) {
// console.log('exportid---', row.snapshotId)
this.exportId = row.snapshotId
},
PS:因为前面虽然加了单选按钮,但是只要点击单选按钮才会选中,而如果点击的是这一行的其它地方,是不会选中单选按钮的,但是el-table有个选中行的点击事件@row-click,在这里借助它,当点击行的时候选中单选按钮。