el-select 远程搜索 实战 使用

 <el-form-item label="邮政编码" prop="zipCode">
      <el-select
        v-model="form.zipCode"
        remote
        clearable
        filterable
        reserve-keyword
        :remote-method="remoteMethod"
        placeholder="请选择"
        default-first-option
        @change="zipCodeChange"
      >
        <el-option
          v-for="item in candidates"
          :key="item.value"
          :label="item.countryCode + ' ' + item.state + ' ' + item.city + ' ' + item.zipCode"
          :value="item.id"
        >
        </el-option>
      </el-select>
    </el-form-item>

return:{
     form: {
        countryCode: '',
        zipCode: '',
        province: '',
        city: '',
        address: '',
        address2: '',
        contacts: '',
        phone: '',
        company: ''
      },
      candidates: [],
      findItemCode: ''
}


methods:{
       remoteMethod (query) {
      if (!query || !this.form.countryCode) return (this.candidates = [])
      setTimeout(async () => {
        const res = await this.$request({
          url: `/deliverAddress/candidate?zipcode=` + query + '&countryCode=' + this.form.countryCode,
          method: 'get'
        })
        this.candidates = res.data
      }, 1500)
    },

    zipCodeChange (e) {
      if (!e) return
      let findItem = this.candidates.find((item) => item.id === e)
      if (!findItem) return this.$message.warning('发生未知错误,请重新选择!')
      this.findItemCode = findItem
      this.form.province = findItem.state
      this.form.city = findItem.city
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值