下拉、上拉选择器 支持搜索、删除、自定义选择内容、任意对象字段映射

插件地址:ext.dcloud.net.cn/plugin?id=2...

一、前言

​ 在uni-app生态中,uni-data-select作为官方扩展组件虽能满足基础需求,但在实际开发中常面临自定义灵活性不足样式适配繁琐等问题。为此,我写了sjx-drop-down插件------一款开箱即用的uni-modules解决方案,无需手动引用即可在页面中直接调用,显著提升开发效率。

​ 插件支持双向滑动选择(上拉/下拉)、删除操作及禁用状态,通过max-height属性精准控制下拉框最大高度,采用rpx单位实现多屏幕完美适配。

​ 创新性引入textField和valueField双属性配置,支持任意对象字段映射,彻底摆脱数据格式限制。

​ 允许开发者通过插槽完全自定义下拉内容,文字大小、组件尺寸均可动态调整,轻松融入项目UI体系。

二、效果预览

三、插件使用

第一步、在插件市场下载并导入该插件到您的项目中
第二步、在项目中使用
ruby 复制代码
<sjx-drop-down :local-data="arrData" textField="name" @change="change" 
    filterField="name" :value="currentV">
</sjx-drop-down>

四、部分代码展示

以自定义下拉样式为例

javascript 复制代码
<template>
    <view class="content">
        <sjx-drop-down :local-data="arrData" textField="name" @change="change" 
                       filterField="name" :value="currentV" :isSelf="true">
            <template v-slot='{data}'>
                <view>
                    <view style="background-color: aquamarine;margin: 5px 0;" 
                          v-for="(item,index) in data" :key="index">
                        {{item.name}}---{{item.value}}---{{index}}
                    </view>
                </view>
            </template>
        </sjx-drop-down>
    </view>
</template>
​
export default {
    data() {
        return {
            arrData: [],
            currentV: '444'//默认绑定值
        }
    },
    mounted() {
        // 简单模拟接口请求
        setTimeout(() => {
            this.arrData.push({
                name: '测试1',
                value: '111'
            })
            this.arrData.push({
                name: '测试2',
                value: '222'
            })
            this.arrData.push({
                name: '测试3',
                value: '333'
            })
            this.arrData.push({
                name: '测试4',
                value: '444'
            })
        }, 1000)
    },
    methods: {
        change(value, text, item) {
            console.log(value, text, item);
        }
    }
}
</script>
​
<style>
    .content {
        padding: 20px;
    }
</style>

五、使用注意

  • 数据源中不包含字段text和value或这两个字段不是你想使用的字段时,注意textField、valueField属性的使用
  • 在使用搜索时,注意配置filterField属性的使用
  • 使用自定义下拉内容时,注意添加@change方法
相关推荐
二狗mao29 分钟前
Uniapp使用websocket进行ai回答的流式输出
websocket·网络协议·uni-app
Jing_Rainbow4 小时前
【 Weapp-1 /Lesson18(2025-11-03)】# 微信小程序开发全解析:从项目结构到生态优势 🚀
微信·微信小程序·程序员
千寻技术帮5 小时前
50045_基于微信小程序的民宿预订管理系统
微信小程序·源码·ppt·项目文档·民宿
禁止摆烂_才浅6 小时前
Taro 小程序页面返回传参完整示例
react.js·微信小程序·taro
良逍Ai出海10 小时前
Build in Public|为什么我开始做一款相册清理 App(听说有竞品年收益40W)
ios·uni-app·ai编程·coding
vx_dmxq21111 小时前
【微信小程序学习交流平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·微信小程序·小程序·idea
腾马科技13 小时前
小酒馆白酒饮料订单配送立即点餐存酒小程序源码
微信小程序·点餐小程序
vx_dmxq2111 天前
【PHP考研互助系统】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·mysql·考研·微信小程序·小程序·php
我命由我123451 天前
微信开发者工具 - 模拟器分离窗口与关闭分离窗口
前端·javascript·学习·微信小程序·前端框架·html·js
G佳伟1 天前
‌微信小程序Webview转发页面空白问题解决方案‌
微信小程序·小程序