更新记录

1.0.0(2026-01-05) 下载此版本

  • 多选选择器
  • 字段映射配置
  • v-model 双向绑定
  • 兼容 H5、微信小程序

平台兼容性

uni-app(4.83)

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

multi-select-picker 多选选择器

简洁易用的多选选择器,支持自定义字段映射,零依赖纯原生实现。

平台兼容

✅ H5 ✅ 微信小程序

快速开始

<template>
  <view>
    <button @click="showPicker = true">选择</button>
    <multi-select-picker 
      v-model:show="showPicker" 
      v-model="selected"
      :list="options" 
      @confirm="onConfirm" 
    />
  </view>
</template>

<script setup>
import { ref } from 'vue';

const showPicker = ref(false);
const selected = ref([]);

const options = [
  { value: '1', label: '选项1' },
  { value: '2', label: '选项2' },
  { value: '3', label: '选项3' }
];

const onConfirm = (list) => {
  console.log('选中:', list);
};
</script>

Props

参数 说明 类型 默认值
show 是否显示(支持 v-model:show) Boolean false
modelValue 选中的值(支持 v-model) Array []
list 选项列表 Array []
title 标题 String 请选择
emptyText 空数据提示 String 暂无数据
keyName 唯一标识字段名 String value
valueName 显示文本字段名 String label

Events

事件名 说明 回调参数
update:show 显示状态改变 Boolean
update:modelValue 选中值改变 Array
change 选中值改变(实时) Array
confirm 点击确定 Array

字段映射

数据字段名不同时可配置映射:

<multi-select-picker
  v-model:show="showPicker"
  v-model="selected"
  :list="options"
  keyName="id"
  valueName="name"
/>

完整示例

<template>
  <view class="page">
    <view class="result">
      <text>已选择 {{ selected.length }} 项</text>
      <view v-for="item in selected" :key="item.value">
        {{ item.label }}
      </view>
    </view>

    <button @click="showPicker = true">选择</button>

    <multi-select-picker
      v-model:show="showPicker"
      v-model="selected"
      title="请选择"
      :list="options"
      @confirm="onConfirm"
      @change="onChange"
    />
  </view>
</template>

<script setup>
import { ref } from 'vue';

const showPicker = ref(false);
const selected = ref([]);

const options = [
  { value: '1', label: '苹果' },
  { value: '2', label: '香蕉' },
  { value: '3', label: '橙子' },
  { value: '4', label: '西瓜' },
  { value: '5', label: '葡萄' }
];

const onConfirm = (list) => {
  console.log('确认选择:', list);
};

const onChange = (list) => {
  console.log('实时变化:', list);
};
</script>

注意事项

  • 零依赖,无需安装第三方库
  • 支持 v-model 双向绑定
  • 选中的值为完整对象数组

License

MIT

隐私、权限声明

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

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

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

许可协议

MIT协议

暂无用户评论。