更新记录

1.2.3(2024-04-24) 下载此版本

修复了默认回显问题

之前版本的defaultValue属性更名为placeholder,更符合语义化

1.2.2(2023-11-17) 下载此版本

兼容vue3

1.2.1(2023-11-16) 下载此版本

更新文档描述,修复一个小问题,更新图片展示

查看更多

平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
- - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - - -

其他

多语言 暗黑模式 宽屏模式
× ×

props

名称 类型 默认值 说明
width string '200px' 选择框宽度
height string '30px' 选择框高度
bgColor string '#fff' 选择框背景颜色
placeholder string '请选择' 输入框占位文本
valueName string 'label' 显示的内容字段名
keyName string 'value' 绑定的内容字段名
list array [] 展示的内容列表
showClose boolean true 是否显示删除按钮
multiple boolean false 是否开启多选
filterable boolean false 是否开启搜索功能,开启后直接输入值不选择也可以保存内容

该组件默认下拉选择器是从底部弹出,当检测到底部高度不足时则会在上面弹出

events

事件名 说明
change 选择的内容改变时触发,返回的参数为列表的 item

基本使用

绑定的值通过v-model绑定,如下面的chooseValue,需要获取 item 的值可以监听@change事件

复制代码<template>
  <view class="login">
    <w-select
      style="margin-left: 20rpx;"
      v-model="chooseValue"
      :list="list"
      valueName="content"
      keyName="id"
      @change="change"
    >
    </w-select>
  </view>
</template>
<script>
export default {
  data() {
    return {
      chooseValue: "",
      list: [
        {
          id: 1,
          content: "张三",
        },
        {
          id: 2,
          content: "李四",
        },
        {
          id: 3,
          content: "王五",
        },
      ],
    };
  },
  methods: {
    change(e) {
      console.log("chooseValue", this.chooseValue);
    },
  },
};
</script>

多选

多选开启multiple属性,双向绑定的值必须为数组类型,在 change 事件中根据自己需求进行处理。

复制代码<template>
  <w-select
    v-model="chooseValue"
    :list="list"
    multiple
    valueName="content"
    keyName="id"
    @change="change"
  >
  </w-select>
</template>
<script>
export default {
  data() {
    return {
      chooseValue: [],
      list: [
        {
          id: 1,
          content: "张三",
        },
        {
          id: 2,
          content: "李四",
        },
        {
          id: 3,
          content: "王五",
        },
      ],
    };
  },
  methods: {
    change(e) {
      console.log("chooseValue", this.chooseValue);
    },
  },
};
</script>

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

插件不采集任何数据

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议
AnsonHo

2025-03-07

Vue3 的 watch { modelValue },要加上 immediate: true,将 newValue 深拷贝出一个 clonedValue ,将对 newValue 处理改成对 clonedValue 处理。这样能解决多选 v-model 回显以及多个 w-select 组件选中值的意外联动问题。

121***@qq.com

2025-02-14

单选时候,选中值后,删不掉值,赋值了showClose也没用 为何

824***@qq.com

2025-01-10

跟楼上遇到一样的问题 (发现个小问题,就是把绑定的值重新赋值为空的时候不会改变,我通过ref获取组件的实例去改的wSelectVueRef.value.inputData = ""),vue2中这样写的 this.$refs.wSelectRef.inputData = "";

丁不懂

2025-01-08

挺好,发现个小问题,就是把绑定的值重新赋值为空的时候不会改变,我通过ref获取组件的实例去改的wSelectVueRef.value.inputData = ""

c15***@163.com

2024-12-31

多选情况下如何回显

171***@qq.com

2024-11-15

作者你好,popup底部弹窗上使用时,弹出的位置一直是上面弹出

979***@qq.com

2024-10-31

兄弟们多选回调 345行 修改成 this.$emit('change', this.multiSelectList)

xionghaizhi

2024-10-20

怎么禁用下拉中的选项

119***@qq.com

2024-10-08

开启filterable搜索后,点击事件changeShow里的this.isShow = !this.isShow会让输入框失焦,焦点冲突了,我在changeShow方法最后重制了焦点 this.focus = false; setTimeout(() => { this.focus = true; },100) 就好了,但是光标会闪一下 有没有更好的解决方法啊?

132***@qq.com

2024-08-14

<w-select v-show="isDoing==='新增'" showClose width="63vw"
v-model="selectGoodsNa" :list="goodsList" valueName="text" keyName="value" @change="selectGoodsNaChange"

方法里将selectGoodsNa的值修改为空字符串,视图里仍然展示为之前的值,未能显示为空

2024-01-04

我更改了v-modal绑定的值但是只有下拉列表里面改变了,展示的没改变

2023-03-26

你好为什么我设置showClose为true没有情况的图标出来阿