element-ui 中的el-select 筛选功能应用

业务场景:

1和2 两者必填其一,3 和4 两者必填其一。1 和3 选中的内容不可以一致,2 和4 选中的内容不可以一致,同时,如果选中1,则查询出2可以选的下拉列表;若没有选中1,则查询全部数据。(3、4同理)。

注: 1、2、3、4 皆为下拉框。

由于 1 和  3 下拉数据一致,两个间不可都选该选项。通过@change 事件监听选择数据, v-model 绑定数据信息,同时在@change 事件中传递一个标志来区分两个监听的数据。

(一)el-select 中change 事件传参: 

change 事件中,会获取到当前选中的值(因为默认会将event参数传递过去)

如果你想要传递多个值,change ($event,“传递的其他值”),将“选中的当前元素“ 和 ”传递的其他值”一起传递过去。例如:

 @change="getSource($event, 'from')"

如果选中1,则查询出2可以选的下拉列表;若没有选中1,则查询全部数据。(3、4同理)。

(二)el-select 中 visible-change 事件动态给下拉框设值:(下拉框出现/隐藏时触发)

通过点击下拉框时,调用 visible-change 事件设置下拉选项。

<el-form :model="form" size="medium" :rules="rules" ref="form">
  <el-form-item label="源单位类型:" :label-width="formLabelWidth">
    <el-select v-model="form.sourcetype" size="small" style="width: calc(100% - 100px);" placeholder="请选择" @change="getSource($event, 'from')">
      <el-option
        v-for="item in options"
        :key="item.id"
        :label="item.name"
        :value="item.id"
        :disabled="item.choose">
      </el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="源单位:" :label-width="formLabelWidth" >
    <el-select v-model="form.source" size="small" style="width: calc(100% - 100px);" placeholder="请选择" @visible-change="getUint($event, form.sourcetype)">
      <el-option
        v-for="item in options1"
        :key="item.id"
        :label="item.name"
        :value="item.id"
        :disabled="item.choose">
      </el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="目标单位类型:" :label-width="formLabelWidth">
    <el-select v-model="form.objective" size="small" style="width: calc(100% - 100px);" placeholder="请选择" @change="getSource($event, 'to')">
      <el-option
        v-for="item in options"
        :key="item.id"
        :label="item.name"
        :value="item.id"
        :disabled="item.choose">
      </el-option>
    </el-select>
  </el-form-item>
  <el-form-item label="目标单位:" :label-width="formLabelWidth">
    <el-select v-model="form.targetunit" size="small" style="width: calc(100% - 100px);" placeholder="请选择" @visible-change="getUint($event, form.objective)">
      <el-option
        v-for="item in options1"
        :key="item.id"
        :label="item.name"
        :value="item.id"
        :disabled="item.choose">
      </el-option>
    </el-select>
  </el-form-item>
</el-form>

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值