vue+iView 实现可输入的下拉框

44 篇文章 1 订阅
14 篇文章 0 订阅

需求:需要搞一个可以手动输入的下拉框。
问题:iview 自身的下拉框select可以输入筛选选择(输入内容仅限下拉框所包含数据),
但是iview 自身的下拉框select不能自己输入其他内容进行选中,从而实现搜索之类的功能。
实现思路:输入框结合使用iview 组件Dropdown实现:

主要实现点:

  • 与input输入框的完美结合
  • 无数据处理
  • 数据超出处理
  • 点击选中处理

一.效果

在这里插入图片描述

在这里插入图片描述

二.主要代码

template

        <FormItem prop="S_serviceCode_EQ" label="名称:">
           <Dropdown trigger="click" placement="bottom-start" :visible="isShowPanel" class="select-width" style="margin-top: 20px;">
                <a href="javascript:void(0)" @click="openPanel">
                 <Input v-model="condition.S_serviceCode_EQ" style="margin-top:-40px" class="select-width"  @click.native="openPanel" clearable  placeholder="请选择"/>
                </a>
                <Dropdown-menu slot="list" v-for="item in serviceByAdultList" :key="item">
                            <Dropdown-item  @on-click="getVal(item)" :class="{active:categoryIndex==item}">
                                <span style="font-size:14px;width:100%;display:block;" @click="getVal(item)">{{item}}</span>
                            </Dropdown-item>
                </Dropdown-menu>
                 <Dropdown-menu slot="list" v-show="serviceByAdultList==''||serviceByAdultList==null">
                        <Dropdown-item style="color:#C5C8CE;padding:0px;text-indent:50px;">
                            <span style="font-size:14px;">无匹配数据</span>
                        </Dropdown-item>
                </Dropdown-menu>
            </Dropdown>
        </FormItem>

data

     serviceByAdultList:[],
      isShowPanel:false,
      categoryIndex:"-1",

method

    getVal(item){
      if(item){
       this.categoryIndex = item
       this.$set(this.condition,"S_serviceCode_EQ",item)
      }
    },
    openPanel(){
       this.isShowPanel=!this.isShowPanel;
    },

css

 .active {
  color: #2d8CF0;
  background-color:#f3f3f3;
  font-size:14px;
  }
.ivu-dropdown /deep/.ivu-select-dropdown{
    max-height: none;
    overflow-y: auto;
    max-height: 190px;
}

完成。
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值