el-select 自定义创建条目时,只能选择一个或者输入一个

如图所示
当选择甲方时,甲方代表只能选择一个,且不能自行输入;

在这里插入图片描述
当甲方代表没有人员可以选择时,可以自行输入创建一个人员
在这里插入图片描述
在这里插入图片描述
代码

			<el-form-item label="甲方" prop="partyAName">
                <el-select v-model="AddContractForm.partyAName" @change="customerCompanyChangeA" placeholder="请选择甲方公司" clearable>
                  <el-option
                    v-for="item in customerCompany"
                    :key="item.supplierNumber"
                    :label="item.supplierName"
                    :value="item.supplierNumber"
                  >
                  </el-option>
                </el-select>
              </el-form-item>
			<el-form-item label="甲方代表" prop="partyA">
                <el-select
                  @change="partyAChange"
                  @remove-tag="removeTagA" 
                  v-model="a"
                  multiple
                  :multiple-limit="1"
                  filterable
                  allow-create
                  default-first-option
                  placeholder="请选择甲方代表">
                  <el-option
                    v-for="item in partyA"
                    :key="item"
                    :label="item"
                    :value="item">
                  </el-option>
                </el-select>

multiple表示多选,:multiple-limit="1"限制多选的条数为1

官方文档说,使用 allow-create 属性即可通过在输入框中输入文字来创建新的条目。注意此时 filterable 必须为真。

	//甲方处理
      customerCompanyChangeA(val){
        this.partyA=[];
        var obj = {};
        obj = this.customerCompany.find(function(item){
          return item.supplierNumber === val
        })
        this.AddContractForm.partyAName=obj.supplierName;
        //当有联系人时
        if(obj.erpContactsList!=null){
          let erpContactsList=obj.erpContactsList;
          if(erpContactsList.length>0){
            for(let i=0;i<erpContactsList.length;i++){
              this.partyA.push(erpContactsList[i].contactsName)
            }
          }else {
            this.partyA=[];
          }
        }
      },
      //注意:创建条目的change事件拿到的值val是一个数组,目前我们只需要拿一个值
      partyAChange(val){
        console.log('甲方代表',val[0]);
        this.AddContractForm.partyA=val[0];
      },
      //注意:此方法不要会导致删掉tag时报错
      removeTagA(val){
        console.log(val)
      },
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值