uni-app的下拉搜索选择组合框

news/2024/7/10 23:33:12 标签: java, 前端, 数据库, uni-app, vue.js, es6

​🌈个人主页:前端青山
🔥系列专栏:Vue篇
🔖人终将被年少不可得之物困其一生

依旧青山,本期给大家介绍uni-app中一款可以搜索下拉选择输入框的插件

下拉搜索选择组合框

superwei-combox 组合框

uni-app中可下拉搜索选择框uni-combox组件

插件地址

superwei-combox 组合框 - DCloud 插件市场

下载插件包导入HBuilderX

下拉选择效果

输入数据效果

需要输入数据时需要启用是否允许用户创建新条目(isAllowCreate=true),开启之后可以让用户输入搜索内容或者创建新内容进行提交,返回后重新渲染可继续进行下拉选择

两种数据模式
JSON数据格式

非JSON数据格式

属性
属性名类型默认值说明
labelString-标签文字
valueString-combox的值
labelWidthStringauto标签宽度,有单位字符串,如:'100px'
placeholderString-输入框占位符
candidatesArray/String[]候选字段
emptyTipsString无匹配项无匹配项时的提示语
selectedBackgroundString#f5f7fa选中项背景颜色
selectedColorString#409eff选中项文字颜色
isJSONBooleanfalse候选字段是否是json数组
keyNameString-json数组显示的字段值
disabledColorString#ababac禁用项文字颜色
isAllowCreateBooleantrue是否允许用户创建新条目
事件
事件称名说明返回值
@inputcombox输入事件返回combox输入值
@selectcombox选择事件返回combox选项值

案例实现

当我们需要获取到输入的数据和用户下拉选择的数据时,我们可以根据它的这两个@input事件和@select事件来实现,那么当你获取到后端数据并且需要提交数据传给后端时,可以定义一个变量inputMethod来区分用户输入还是下拉

实现效果

当我们选择输入或者下拉数据后,点击提交数据传给后端

用户选择下拉
非JSON数据格式

JSON数据格式

用户输入数据
非JSON数据格式

JSON数据格式

这样一来,我们依据一个变量就可以来判断用户选择下拉数据还是自己创建内容输入新数据来进行提交,搜索功能也是相同逻辑

实现代码

javascript"><template>
    <view class="content" style="margin: 300px auto;">
       <span class="title">非JSON数组模式</span>
       <superwei-combox :candidates="candidates" placeholder="请选择或输入" v-model="inputValue" @input="input"
            @select="select"></superwei-combox>
       <span class="title">JSON数组模式</span>
        <superwei-combox style="width:300px" :candidates="candidates_json" :isJSON="true" keyName="name" placeholder="请选择或输入"
            v-model="inputValue_json" @input="input_json" @select="select_json"></superwei-combox>
            <button type="primary" @click="toSubmit">提交</button>
    </view>
</template>
<script>
    export default {
        data() {
            return {    
                selectValue:'',//用户输入或者下拉的数据值value
                 inputMethod: '',  // 标志位,用于区分输入和下拉选择
                inputValue: '',//非json格式
                candidates: ['选项一', '选项二', '选项三', '选项四', '选项五', '选项六', '...'],
                inputValue_json: '',
                candidates_json: [{
                    id: '1',
                    name: '选项一'
                }, {
                    id: '2',
                    name: '选项二',
                    disabled: true // 单独设置disabled后即可禁用该选项
                }, {
                    id: '3',
                    name: '选项三'
                }, {
                    id: '4',
                    name: '选项四'
                }, {
                    id: '5',
                    name: '选项五',
                    disabled: true // 单独设置disabled后即可禁用该选项
                }, {
                    id: '6',
                    name: '...'
                }]
            }
        },
​
        methods: {
            toSubmit(){
                if(this.inputMethod==='input'){
                    console.log('用户选择了输入数据',this.selectValue)
                }else if(this.inputMethod==='select'){
                    console.log('用户选择了下拉框数据',this.selectValue)
                }
            },
            //非json格式数据-start
            input(e) {
                this.inputMethod = 'input'//标志位为用户输入
                this.selectValue = e
            },
            select(e) {
                this.inputMethod = 'select'//标志位为用户下拉
                this.selectValue = e
            },
            //非json格式数据-end
            /*上半段为非json数据格式,下半段为json数据格式*/
            //json格式数据-end
            input_json(e) {
                this.inputMethod = 'input'//标志位为用户输入
                this.selectValue = e
            },
            select_json(e) {
                this.inputMethod = 'select'//标志位为用户下拉
                this.selectValue = e.name
            }
            //json格式数据-end
        }
    }
</script>
​
<style>
    .content {
        display: flex;
        flex-direction: column;
        align-items: center;
        justify-content: center;
    }
​
    .title {
        margin-top: 20px;
    }
</style>


http://www.niftyadmin.cn/n/5176279.html

相关文章

NetSuite 固定资产报表自定义原理及应用

NetSuite固定资产模块一直处于功能迭代更新中&#xff0c;目前23.2的版本能够支持报表的局部自定义&#xff0c;比如增加原值或已折旧期间&#xff0c;甚至固定资产自定义字段等。但是当我们在实际项目中&#xff0c;会遇到一些挑战&#xff0c;例如&#xff1a; 固定资产原值…

【Mysql】next-key 锁范围

背景 Mysql RR场景下通过next-key 锁解决了幻读的问题&#xff0c;而幻读通常是由 insert 新增的数据导致。所以next-key锁最终通过锁机制防止了一定条件下的新增数据从而解决了幻读问题。 规律 next-key锁可以由以下几条规律总结出锁范围 next-key会对查询过程中访问到的对…

3C制造RFID产线智能化升级改造设计方案

3C行业需求 近年来&#xff0c;随着政策的支持、相关技术的进步以及市场需求的推动&#xff0c;3C行业迅速发展&#xff0c;我国的3C市场已经进入了稳定发展阶段&#xff0c;作为仅次于汽车产业的大市场&#xff0c;3C产业在智能制造的推动下&#xff0c;越来越多的物联网技术…

Python常用插件之emoji表情插件的用法

目录 一、概述 二、安装 三、基本用法 四、高级用法 1、自定义emoji表情 2、使用表情符号列表 3、结合使用Emoji和输入文本 4、动态添加emoji表情 5、自定义Emoji的样式 总结 一、概述 在Python中&#xff0c;使用emoji表情已经成为了一种非常流行的趋势。许多开发者…

Linkage Mapper 报错

1 . 错误提示&#xff1a;“No module named lm_config” 错误原因&#xff1a;**** 2.错误提示&#xff1a;“Cannot find an installation of Circuitscape in your Program Files directory.” 错误原因&#xff1a;***** 3. 错误提示&#xff1a;UnicodeEncodeError: ‘asc…

使用cmd运行控制面板工具

如何通过键入命令运行“控制面板”工具 - Microsoft 支持 windows自带管理工具&#xff08;exe/cpl/msc&#xff09;-CSDN博客 CMD下打开系统各面板_cmd打开轻松使用面板-CSDN博客 示例&#xff1a; rundll32.exe shell32.dll,Control_RunDLL powercfg.cpl 替换powercfg.…

centos7 在线安装python3

在线安装命令 yum install -y python3 输入命令之后等待安装完成 查看版本 查看版本3 输入命令 python3 看到版本号为3.6.8 查看版本2 输入命令 python2 看到版本号为2.7.5

Spring定时任务@Scheduled为什么会让切面失效

Spring定时任务Scheduled为什么会让切面失效 在一些中小型项目当中经常会使用Spring自带的任务执行器&#xff0c;本章不描述Scheduled的用法&#xff0c;主要从源码的角度讲清楚问题所在。 背景 在一个中小型项目中&#xff0c;有一个定时任务&#xff0c;用于打款到用户微…