Vant DropdownMenu 下拉菜单带搜索功能

Vant DropdownMenu 下拉菜单带搜索功能

效果图:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
上代码:

 <van-dropdown-menu active-color="#E33737">
      <van-dropdown-item ref="dropdownItem">
        <template #title>
          <span>{{ dropdownItem.text }}</span>
        </template>
        <div class="dropdown_search">
          <van-search shape="round" v-model="searchValue" placeholder="请输入搜索关键词" @input="searchFun" />
        </div>
        <div class="dropdown_radio">
          <van-radio-group v-model="dropdownValue">
            <van-cell-group>
              <van-cell v-for="(item, index) in dropdownFilterActions" :key="index" :value="item.text" clickable center
                @click="onChangeSelect(item.value)">
                <template #right-icon>
                  <van-radio :name="item.value" />
                </template>
              </van-cell>
            </van-cell-group>
          </van-radio-group>
        </div>
      </van-dropdown-item>
    </van-dropdown-menu>
  data() {
    return {
      dropdownValue: '',
      dropdownItem: { text: '全部', value: '730' },
      searchValue: '',
      dropdownFilterActions: [], //过滤的数据
      dropdownActions: [ //原数据
        { text: '近一周', value: '7' },
        { text: '近一个月', value: '30' },
        { text: '近一年', value: '365' },
        { text: '全部', value: '730' }
      ]
      }
    }
  
  created() {
    this.dropdownFilterActions = this.dropdownActions
  },
  methods: {
    searchFun() {
      if (this.searchValue === '' || this.searchValue === null) {
        this.dropdownFilterActions = this.dropdownActions;
      } else {
        this.dropdownFilterActions = this.dropdownActions.filter(item => item.text.includes(this.searchValue))
      }
    },
    onChangeSelect(value) {
      this.dropdownItem = this.dropdownFilterActions.find(item => {
        return item.value === value;
      });
      this.searchValue = '';
      this.searchFun();
      this.$refs.dropdownItem.toggle()
      this.dropdownValue = value;
    },
}

<style lang="less" scoped>
.dropdown_search {
  position: sticky;
  top: 0;
  left: 0;
  z-index: 99;
}

.dropdown_radio {
  :deep(.van-cell__value--alone) {
    text-align: center;
  }

  :deep(.van-radio__icon .van-icon) {
    border: unset;
    background: unset;
    border-color: unset;
    font-size: @-size-m;
  }

  :deep(.van-radio__icon--checked .van-icon) {
    color: @-color-primary;
  }
}
</style>
### 回答1: vant dropdownmenu 是一个基于 Vue.js 的下拉菜单组件,可以用于网页或移动端应用程序中。它提供了丰富的功能和样式,可以轻松地创建各种类型的下拉菜单,如单选、多选、级联等。此外,vant dropdownmenu 还支持自定义菜单项和样式,以满足不同的需求。 ### 回答2: Vant是一个移动端的UI组件库,其中包括了一些常用的基础组件和高级组件,可以让开发者快速地搭建出美观、易用的移动应用界面。其中,Vantdropdownmenu组件是一种下拉菜单选择器,可以满足用户在移动端选择多个选项的需求。 下拉菜单选择器在移动端是一种常见的操作方式。用户可以通过点击下拉按钮来打开下拉菜单,从而选择自己需要的选项。Vantdropdownmenu组件充分考虑了在移动设备上的操作体验,使用了现代化卡片式风格及平面化的设计元素,使得下拉菜单组件显得更加简洁、美观、易用。 使用Vantdropdownmenu组件,只需要按照一定的数据格式将选项数据传递给组件,就可以轻松地创建出一个下拉菜单选择器,满足各种用户需求。该组件支持多级菜单联动、多选、单选、复杂对象等多种类型的选项数据,并且可以自定义选项展示方式和选项格式。此外,Vantdropdownmenu组件还支持选项过滤,支持根据关键词搜索并过滤选项。 总的来说,Vantdropdownmenu组件是一种功能强大、易用性高的下拉菜单选择器,适用于各种移动应用场景中。它的简单易用性可以帮助开发者更快地搭建出移动应用程序,提供更好的用户体验。 ### 回答3: vant dropdownmenu 是一款基于 Vue.js 的下拉菜单组件,主要用于在页面中创建下拉式菜单。它具备多种功能,如自定义触发器、对齐方式、菜单项数量等等,还可以根据具体需求定制样式和布局。 vant dropdownmenu 以灵活、易用为特点,可用于各种场景,如导航栏、搜索框、下拉列表等。不仅如此,vant dropdownmenu 还具有良好的响应式布局,能够适应不同的设备宽度,满足不同用户的需求。 vant dropdownmenu 的使用也十分简单,只需要在 Vue 组件中引入,并将需要显示的菜单项传入即可。通过配置不同的参数,可以实现不同的效果和交互。在进行组件开发时,vant dropdownmenu 可以让我们更加注重用户体验和交互方式,提升整个页面的使用体验。 总之,vant dropdownmenu 是一款优秀的 Vue.js 下拉菜单组件,具有灵活、易用、响应式布局等特点。它可以用于各种场景,帮助开发者轻松实现下拉式菜单功能,提供优秀的用户体验和交互方式。如果您在项目开发中需要使用下拉菜单vant dropdownmenu 是一个不错的选择。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值