更新记录

1.0.0(2024-12-07) 下载此版本

有问题请联系作者


平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue app-nvue
钉钉小程序 快手小程序 飞书小程序 京东小程序 鸿蒙元服务
×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

使用示例

<template>
  <view style="padding: 30rpx;box-sizing: border-box;">
    <view v-for="i in value">{{i}}</view>
    <view style="height: 100px;"></view>
    <!-- 本地数据 过滤 搜索 单选 创建新选项-->
    <sh-select :localdata="data" v-model="value" :filterMethod="filterMethod" search  allowCreate/>

    <view style="height: 100px;"></view>
    <!-- 远程数据 分页 搜索 多选 创建新选项 缓存数据-->
    <sh-select :pageMethod="pageMethod" v-model="value" valueKey="id" labelKey="name" search allowCreate multiple :cache="true"/>
  </view>
</template>

<script>
export default {
  data() {
    return {
      value: '',
      remoteData: [
        {"name":"Alabama","id":0},{"name":"Alaska","id":1},{"name":"Arizona","id":2},{"name":"Arkansas","id":3},{"name":"California","id":4},{"name":"Colorado","id":5},{"name":"Connecticut","id":6},{"name":"Delaware","id":7},{"name":"Florida","id":8},{"name":"Georgia","id":9},{"name":"Hawaii","id":10},{"name":"Idaho","id":11},{"name":"Illinois","id":12},{"name":"Indiana","id":13},{"name":"Iowa","id":14},{"name":"Kansas","id":15},{"name":"Kentucky","id":16},{"name":"Louisiana","id":17},{"name":"Maine","id":18},{"name":"Maryland","id":19},{"name":"Massachusetts","id":20},{"name":"Michigan","id":21},{"name":"Minnesota","id":22},{"name":"Mississippi","id":23},{"name":"Missouri","id":24},{"name":"Montana","id":25},{"name":"Nebraska","id":26},{"name":"Nevada","id":27},{"name":"New Hampshire","id":28},{"name":"New Jersey","id":29}
      ],
      data: [
        'Alabama',
        'Alaska',
        'Arizona',
        'Arkansas',
        'California',
        'Colorado',
        'Connecticut',
        'Delaware',
        'Florida',
        'Georgia',
        'Hawaii',
        'Idaho',
        'Illinois',
        'Indiana',
        'Iowa',
        'Kansas',
        'Kentucky',
        'Louisiana',
        'Maine',
        'Maryland',
        'Massachusetts',
        'Michigan',
        'Minnesota',
        'Mississippi',
        'Missouri',
        'Montana',
        'Nebraska',
        'Nevada',
        'New Hampshire',
        'New Jersey',
      ],
    }
  },
  methods: {
    // 模拟分页接口请求
    pageMethod(page, value) {
      console.log(`当前页-> ${page}   搜索关键字-> ${value}`);
      if (value) {
        return this.remoteData.filter(item => item.name.includes(value))
      }
      return this.remoteData.slice((page-1) * 7, page * 7)
    },
    filterMethod(item, value) {
      return item.toLowerCase().includes(value.toLowerCase())
    }
  }
}
</script>

组件预览地址

属性 Props

属性 类型 默认值 说明
v-model Array [] 所选中的值
localdata Array [] 本地数据值
multiple Boolean false 是否多选
search Boolean false 允许搜索或者过滤
cache Boolean true 当使用pageMethod时,是否缓存数据,默认为true,会缓存数据,下次不再重新加载数据,当为false时,每次打开都重新加载数据
allowCreate Boolean false 允许创建新的选项
labelKey String 当数据源为数组对象时所展示的字段名称
valueKey String 当数据源为数组对象时取值的字段名称
placeholder String
height String 300rpx 弹窗滚动区域高度
inputAlign String left 输入框文本对齐方式,同css text-align属性
color String #1e90ff 选中icon颜色
borderColor String #f2f2f2 边框颜色
filterMethod (item, value) => Boolean 自定义过滤方法
pageMethod (page, value) => Promise<Array> 自定义远程数据加载分页方法,需返回一个数组对象或者一个Promise数组对象

事件 Emits

插槽名 说明
change 每次选择后会调用该事件,参数为所选的值的数组

插槽 Slots

插槽名 说明
option 自定义选项展示 #option="{ data }"
empty 无数据展示样式
header 弹窗头部内容
footer 弹窗底部内容

方法 Exposes

方法名 说明
init 手动重新初始化数据,一般用于数据源为远程数据时,数据更新后需要重新初始话数据

隐私、权限声明

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

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

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

许可协议

MIT协议

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问