在配置抽奖活动时,优惠券、代金券、商品等选择需要从多个中选择一个,同时需要有搜索、翻页等功能。所以考虑使用 avue-crud 组件实现。
selection: true
<avue-crud
ref="crud"
v-model="form"
:option="tableOption"
:data="list"
:page.sync="page"
:search.sync="searchForm"
:table-loading="listLoading"
@on-load="getList"
@size-change="sizeChange"
@current-change="currentChange"
@search-change="searchChange"
@selection-change="selectionChange"
>
</avue-crud>
// 表格单选
selectionChange(selection, row){
// 如果选中列表的值大于1个
if(selection.length > 1){
// 将列表中的第一个元素取出
const preVal = selection.shift();
// 将该选项设置为未选中
this.$refs.crud.toggleRowSelection(preVal, false);
}
// 将处理后的选中列表保存
this.selectionList = selection;
}
.el-table__header thead .el-checkbox__inner, .avue-crud__tip {
display: none !important;
}
list.forEach(item => item.radio = item.id)
{
label: '',
prop: 'radio',
span: 24,
width: 80
}
<template slot="radio" slot-scope="{row}">
<el-radio :label="row.resourceId" v-model="radioValue" @input="getChooseValue(row)"></el-radio>
</template>
getChooseValue(row){
console.log('row',row)
// 将选中的对象保存
this.selectionItem = row;
}
.el-radio-label{
display: none !important;
}