el-select下拉框选中数据进阶操作

文章描述了一个需求,即在Vue.js应用中,使用el-select组件实现多选下拉框。当选择某个加工工位后,其他工位的下拉框中不应再显示已被选择的工位,且所有工位的选中状态需同步。代码示例展示了如何在change事件中处理数据过滤,确保已选择的工位不会在其他下拉框中出现。
摘要由CSDN通过智能技术生成

需求:

 将图一操作变更为图二,选中时选择框内显示选择选项,下拉框内不显示选中选项,并且多个下拉框同步共享(即加工工位选择过的,其他工位无法选择)

代码:

<el-form-item label="加工工位:" prop="processStationConf">
    <el-select v-model="form.processStationConf" multiple placeholder="请选择加工工位" clearable @change="searchSelect(form.processStationConf, form.pullOutStationConf, form.pullInStationConf, form.passStationConf)">
         <el-option v-for="item in NworkStationList" :label="item.workStationName"
:value="item.workStationCode" :key="item.workStationCode"></el-option>
    </el-select>
 </el-form-item>
<el-form-item label="拉出工位:" prop="processStationConf">
    <el-select v-model="form.pullOutStationConf" multiple placeholder="请选择拉出工位" clearable @change="searchSelect(form.processStationConf, form.pullOutStationConf, form.pullInStationConf, form.passStationConf)">
        <el-option v-for="item in NworkStationList" :label="item.workStationName"
:value="item.workStationCode" :key="item.workStationCode"></el-option>
    </el-select>
</el-form-item>

js:

/**
 * 每次改变数据,就会请求原有的数据,即:每次选择数据都会在原有数据上过滤
 */
searchSelect(a, b, c, d) {
    // 扩展运算符
    let val = [...a, ...b, ...c, ...d]
    listWorkStation().then(res => {
        //接受后端数据
        this.NworkStationList = res
        //对选择的数据进行遍历
        val.forEach(i => {
            //过滤出未被选择的数据
            this.NworkStationList = this.NworkStationList.filter(item => {
                return item.workStationCode != i
            })
        })
    })
},

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值