element ui ---<el-table>表格里嵌套<el-select>下拉框单选互斥功能实现.
主要功能实现: 表格里嵌套下拉框并不少见,我这里主要实现效果是表格里多条数据共用一个下拉选项,并且每行选中之后,被选中项在下拉框里置灰不可再选中.
主要代码如下:
当下拉项被选中时,触发下面的方法,遍历当前下拉项中符合当前选中项,然后置灰.当infoList 里属性值不包含当前被选中项则设置isCheck 为false 实现再次点击.
// 处置项更改 chargeItemChanged(val,obj){ this.chargeItems.forEach(item=>{ if(item.id == val){ this.$set(obj,'deductionExecutionStepId',item.id); this.$set(obj,'chargeItemName',item.label); this.$set(item,'isCheck',true); } }) let arr = this.ruleData.infoList.map(v=> v.deductionExecutionStepId).filter(k=>k!=null); this.chargeItems.forEach(v=>{ if(arr.indexOf(v.id) == -1){ this.$set(v,'isCheck',false) } }) },
表格标签部分代码示例:
<el-table-column align="center" prop="chargeItemName" label="处置项" width="300" fixed="right" v-if="ruleData.useType == '销售领用'"> <template slot-scope="scope"> <el-form-item v-else label=" " :prop="'infoList.' + scope.$index + '.chargeItemName'" :rules="rules.chargeItemName" label-width="0" class="costValue"> <el-select v-model="scope.row.chargeItemName" placeholder="请选择" @change="chargeItemChanged($event,scope.row)"> <el-option :disabled="item.isCheck" v-for="item in chargeItems" :key="item.id" :label="item.label" :value="item.id"> </el-option> </el-select> </el-form-item> </template> </el-table-column>
this.ruleData.infoList 为表格列表渲染数组,this.chargeItems 为每行下拉框的下拉选项数组集合
数据格式示例如下:
this.ruleData.infoList = [ { amount:2, deductionExecutionStepId: "ZXJL2106240024", chargeItemCode: "2801000006" chargeItemName: "儿童电动牙刷" } ];
this.chargeItems = [{ isCheck:false, id:'ZXJL2106240024', label:'儿童电动牙刷', Code: "2801000006" } ]
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本