更新记录

1.0.7(2023-12-14)

修复icon

1.0.6(2023-09-25)

增加多选,多次搜索默认值选项回显功能

1.0.5(2023-08-15)

修复小程序端兼容性问题

查看更多

平台兼容性

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

next-search-select --下拉多选,单选,搜索

遇到问题或有建议可以加入QQ群(455948571)反馈
如果觉得组件不错,给五星鼓励鼓励咯!

使用

从uniapp插件市场导入

<template>
    <view class="title"><text>1. 单选模式:</text></view>
    <view class="item">
        <next-search-select
            :multiple="false"
            :list="options"
            label-key="projectName"
            value-key="id"
            placeholder=" 请选择报备项目"
            title="选择报备项目"
            v-model:value="projectId"
            @search="searchFunc"
            @change="changeCallback"
            clearable
        ></next-search-select>
    </view>
    <view class="title"><text>2. 多选模式:</text></view>
    <view class="item">
        <next-search-select
            :multiple="true"
            :list="options"
            label-key="projectName"
            value-key="id"
            placeholder=" 请选择报备项目"
            title="选择报备项目"
            v-model:value="projectIds"
            @search="searchFunc"
            @change="changeCallback"
            clearable
        ></next-search-select>
    </view>
</template>

vue3 + ts 使用

<script setup lang="ts">
import {ref, unref} from "vue"

const options = ref<any>([])
// 单选模式下绑定的值是字符串
const projectId = ref("")
// 多选模式值必须是数值类型
const projectIds = ref([])
let dataLength = 0

function searchFunc(val?) {
    console.log("搜索的关键字:", val)
    uni.showLoading({
        title: '请稍后...',
        icon: 'none'
    })
    // 模拟ajax请求
    setTimeout(() => {
        options.value = []
        dataLength = 0
        if (dataLength < 40) {
            for (let i = 0; i < 40; i++) {
                options.value.push({
                    id: `id-${val ? val + '-' : ''}${dataLength + i}`,
                    projectName: `项目item-${val ? val + '-' : ''}${dataLength + i}`,
                    ohterKey: `test-${i}`,
                    disabled: i%2 === 0
                })
            }
            dataLength = unref(options).length
        }
        uni.hideLoading()
    }, 1000)

}
function changeCallback(item) {
    console.log("选中的item:", item)
}
searchFunc()
</script>
<style lang="scss">
    .title {
        color: #f9ae3d;
        font-size: 30rpx;
        padding: 20rpx 10rpx;
        background-color: #333;
    }
    .item {
        padding: 10rpx 20rpx;
        border: 1rpx solid #ccc;
    }
</style>

vue2 同样支持,在这里不再写demo

组件按需加载

如果不需要组件全局加载,而已把组件拷贝到项目的components目录下,单独引入进来使用即可达到按需加载的效果

预览


功能预览

参数

next-search-select Props

可选参数属性列表

参数名 说明 类型 是否必填 默认值 可选值
showSearch 是否显示搜索框 Boolean true false
value v-model v-model:value 绑定值 Number, String, Array, Object "" -
placeholder 搜索框placeholder String "" -
multiple 是否多选 Boolean false true
list 列表值 Array [] -
valueKey list列表绑定的value关键属性key String value -
labelKey list列表绑定的label(显示)关键属性key String label -
disabledKey list列表绑定的disabled(显示)关键属性key String disabled -
disabled disabled Boolean false true
emptyText 重置按钮文本text String 重置 -
title 弹层标题 String 选择内容 -
confirmText 确定按钮文本text String 确定 -
color 文字颜色 String #000000 -
selectColor 激活颜色 String #f9ae3d -
bgColor 弹层背景颜色 String #ffffff -
selectBgColor 激活项背景颜色 String #ffffff -
showSearchBtn 是否显示搜索按钮 Boolean true false
showArrow 是否显示右指示箭头 Boolean true false

Event 事件

事件名 说明 类型 回调参数
confirm 点击确定触发事件 emit -
change change emit -
visibleChange 弹层改变触发 emit -

隐私、权限声明

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

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

插件不采集任何数据

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

许可协议

MIT协议

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