更新记录

0.0.1(2025-07-16) 下载此版本

组件初始化


平台兼容性

uni-app

Vue2 Vue3 Chrome Safari app-vue app-nvue Android iOS 鸿蒙
× - - -
微信小程序 支付宝小程序 抖音小程序 百度小程序 快手小程序 京东小程序 鸿蒙元服务 QQ小程序 飞书小程序 快应用-华为 快应用-联盟
- - - - - - - - -

uni-app x

Chrome Safari Android iOS 鸿蒙 微信小程序
5.0 12 -

其他

多语言 暗黑模式 宽屏模式
× ×

xs-combox 组件使用说明

xs-combox 是一个基于 UniApp 的下拉选择输入框组件,支持本地/远程数据、搜索、清空、禁用、自定义显示等功能。

目录


安装

uni_modules/xs-combox 目录复制到你的 uni_modules 目录下,无需额外安装依赖。

基础用法

<template>
  <xs-combox
    v-model="selected"
    :options="options"
    placeholder="请选择"
  />
</template>

<script setup>
import { ref } from 'vue'
const selected = ref('')
const options = [
  { label: '选项一', value: 1 },
  { label: '选项二', value: 2 }
]
</script>

属性说明

属性名 类型 默认值 说明
v-model String/Number 绑定选中值
options Array [] 选项列表,支持对象、字符串、数字
placeholder String '请选择' 输入框占位符
allowClear Boolean true 是否显示清除按钮
allowSearch Boolean true 是否允许搜索
retainSearchValue Boolean false 选中后是否保留搜索值
loading Boolean false 是否显示加载中
fieldLabel String/Function 'label' 选项对象的显示字段或函数
fieldValue String/Function 'value' 选项对象的值字段或函数
filterOption Boolean/Function true 是否本地过滤或自定义过滤函数
placeholderClass String 占位符样式类名
bordered Boolean false 是否显示边框
disabled Boolean false 是否禁用
zindex Number 2 弹出层层级

options 说明

  • 支持三种类型:对象、字符串、数字。
  • 对象时,需指定 fieldLabelfieldValue 字段或函数。

filterOption 用法

  • true:默认本地过滤(模糊匹配 label)。
  • false:不进行本地过滤。
  • Function:自定义过滤逻辑,参数为输入值,返回布尔。

事件说明

事件名 说明 回调参数
search 搜索时触发 输入值
select 选中选项时触发 选中项
clear 清空时触发

插槽说明

插槽名 说明
prefixIcon 输入框前缀图标
empty 无数据时自定义内容
default 自定义下拉项,作用域:item, index

下拉项自定义示例

<xs-combox
  v-model="selected"
  :options="options"
>
  <template #default="{ item, index }">
    <view style="color: red;">{{ item.label }} - {{ item.value }}</view>
  </template>
</xs-combox>

样式自定义

  • 通过 bordered 属性控制边框。
  • 通过 placeholderClass 自定义占位符样式。
  • 支持 scoped 样式覆盖类名:.xs-combox.xs-combox-wrapper.xs-combox-selector 等。

进阶用法示例

远程搜索

<xs-combox
  v-model="selected"
  :options="remoteOptions"
  :loading="loading"
  :filterOption="false"
  @search="onSearch"
/>
const remoteOptions = ref([])
const loading = ref(false)
function onSearch(val) {
  loading.value = true
  // 异步获取数据
  fetchOptions(val).then(list => {
    remoteOptions.value = list
    loading.value = false
  })
}

组件暴露方法

  • toggleSelector():手动打开/关闭下拉面板
const comboxRef = ref()
comboxRef.value.toggleSelector()

其他说明

  • 依赖 uni-iconsuni-load-more 组件。
  • 支持移动端和小程序平台。

如需更多自定义需求,请参考源码或联系作者。

隐私、权限声明

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

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

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

许可协议

MIT协议

暂无用户评论。

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