更新记录
1.0.2(2026-08-03) 下载此版本
修改文档
1.0.1(2026-08-03) 下载此版本
优化截图和文档
1.0.0(2026-08-03) 下载此版本
- 首次发布。
- 支持多列滚动吸附选择。
- 支持
show.sync、confirm、cancel、columnchange事件。 - 内置默认背景图资源
static/picker-bg.png。 - 支持
backgroundImage、backgroundColor、useDefaultBackground背景配置。 - 新增
background配置,支持纯色和渐变背景。
平台兼容性
uni-app(4.07)
| Vue2 | Vue3 | Chrome | Safari | app-vue | app-nvue | Android | iOS | 鸿蒙 |
|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | - | √ | √ | √ |
| 微信小程序 | 支付宝小程序 | 抖音小程序 | 百度小程序 | 快手小程序 | 京东小程序 | 鸿蒙元服务 | QQ小程序 | 飞书小程序 | 小红书小程序 | 快应用-华为 | 快应用-联盟 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| √ | √ | √ | √ | √ | √ | - | √ | √ | - | - | - |
custom-picker
custom-picker 是一个适用于 uni-app 的自定义多列滚动选择器组件,支持滚动吸附、选中项缩放、遮罩关闭、show.sync 双向控制。
特性
- 支持单列、多列选择
- 支持
show.sync控制显示隐藏 - 支持
confirm、cancel、columnchange事件 - 内置默认背景图,支持自定义背景图和纯色背景
- 纯前端实现,无第三方依赖
- 兼容
vue2/vue3
目录结构
uni_modules/custom-picker/
├─ components/custom-picker/custom-picker.vue
├─ pages/demo/demo.vue
├─ screenshots/demo-default.png
├─ screenshots/demo-gradient.png
├─ screenshots/demo-columns.png
├─ static/picker-bg.png
├─ changelog.md
├─ package.json
└─ readme.md
安装方式
下载插件后,放入项目 uni_modules 目录。
使用方式
组件安装后可通过 easycom 直接使用:
<template>
<custom-picker
:show="visible"
@update:show="visible = $event"
title="出生日期"
:columns="columns"
:value="value"
background-color="#ffffff"
@confirm="onConfirm"
@cancel="onCancel"
@columnchange="onColumnChange"
/>
</template>
<script>
export default {
data() {
return {
visible: false,
columns: [
['北京', '上海', '广州'],
['朝阳', '浦东', '天河']
],
value: [0, 0]
}
},
methods: {
onConfirm(e) {
console.log('选中结果', e)
},
onCancel() {
console.log('取消选择')
},
onColumnChange(e) {
console.log('列变化', e)
}
}
}
</script>
Props
| 属性名 | 类型 | 默认值 | 说明 |
|---|---|---|---|
| show | Boolean | false | 是否显示选择器 |
| title | String | '' | 顶部标题 |
| columns | Array | [] | 选择列数据,格式为二维数组 |
| value | Array | [] | 默认选中索引数组 |
| backgroundImage | String | '' | 自定义背景图片路径,优先级高于内置背景图 |
| background | String | '' | 通用背景样式,支持纯色或 linear-gradient(...) 等渐变 |
| backgroundColor | String | '#ffffff' | 兼容旧写法的背景色配置,未传 background 时生效 |
| useDefaultBackground | Boolean | true | 未传 backgroundImage 时是否使用插件内置背景图 |
Events
| 事件名 | 说明 | 返回值 |
|---|---|---|
| update:show | 同步显示状态 | false |
| confirm | 点击确定 | { value, index } |
| cancel | 点击取消或遮罩 | 无 |
| columnchange | 某列滚动选中变化 | { column, value } |
confirm 返回值示例
{
value: ['1995年', '1月', '1日'],
index: [25, 0, 0]
}
注意事项
columns需要传二维数组。value需要传索引数组,长度建议与columns列数一致。- 如果用于联动选择,建议在
columnchange中按需更新后续列数据。 - 建议统一使用
:show="visible"和@update:show="visible = $event",不要依赖.sync。 - 若要纯背景色或渐变背景,请设置
:use-default-background="false"并传入background。 - 若要自定义背景图,请传入宿主项目可访问的图片路径到
backgroundImage。
背景样式示例
使用内置背景图:
<custom-picker
:show="visible"
@update:show="visible = $event"
title="默认背景"
:columns="columns"
:value="value"
/>
使用自定义背景图:
<custom-picker
:show="visible"
@update:show="visible = $event"
title="自定义背景图"
:columns="columns"
:value="value"
background-image="/static/my-picker-bg.png"
/>
使用纯色背景:
<custom-picker
:show="visible"
@update:show="visible = $event"
title="纯色背景"
:columns="columns"
:value="value"
:use-default-background="false"
background="#f3e8ff"
/>
使用渐变背景:
<custom-picker
:show="visible"
@update:show="visible = $event"
title="渐变背景"
:columns="columns"
:value="value"
:use-default-background="false"
background="linear-gradient(180deg, #f3e8ff 0%, #ffffff 100%)"
/>
演示页
示例页面位于 uni_modules/custom-picker/pages/demo/demo.vue。

收藏人数:
下载插件并导入HBuilderX
下载示例项目ZIP
赞赏(0)
下载 2
赞赏 0
下载 12481601
赞赏 1937
赞赏
京公网安备:11010802035340号