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

插件地址: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方法
相关推荐
自然 醒5 小时前
uni-app开发微信小程序,如何使用towxml去渲染md格式和html标签格式的内容?
微信小程序·uni-app·html
CHB7 小时前
uni-agent,你的数字员工来了
人工智能·uni-app·vibecoding
h_jQuery7 小时前
uniapp使用canvas实现逐字书写任意文字内容,后合成一张图片提交
前端·javascript·uni-app
困困的果果头7 小时前
【uniapp】解决H5嵌套在web-view中时打包页面与状态栏重叠
前端·uni-app
前端 贾公子7 小时前
Uniapp 使用 UQRCode 创建二维码
uni-app
Rattenking7 小时前
uni-app组件开发----自定义数字键盘组件
前端·javascript·uni-app
竟未曾年少轻狂7 小时前
微信小程序-组件开发
微信小程序·小程序
想七想八不如114088 小时前
【GitHub开源】一款极简跨平台 Todo 应用:微信小程序 + Windows 桌面挂件 + 实时同步
微信小程序·开源·github
笨笨狗吞噬者9 小时前
代理的妙用:uni-app 小程序是怎样用 `Proxy` 和 `wrapper` 抹平平台差异的
前端·微信小程序·uni-app
px不是xp2 天前
微信小程序组件化开发最佳实践
微信小程序·小程序·notepad++