Skip to content

Picker 选择器

用于从单列、多列或级联数据中选择值,适合城市、分类、规格等确认式选择场景。

基础用法

vue
<script setup lang="ts">
import { ref } from 'vue'

const visible = ref(false)
const value = ref('apple')
const columns = [
  { label: '苹果', value: 'apple' },
  { label: '香蕉', value: 'banana' },
]
</script>

<template>
  <lk-button @click="visible = true">选择水果</lk-button>
  <lk-picker
    v-model="value"
    v-model:visible="visible"
    title="选择水果"
    :columns="columns"
    @confirm="onConfirm"
  />
</template>

多列选择

vue
<script setup lang="ts">
const value = ref(['2026', '04'])
const columns = [
  [
    { label: '2025', value: '2025' },
    { label: '2026', value: '2026' },
  ],
  [
    { label: '03 月', value: '03' },
    { label: '04 月', value: '04' },
  ],
]
</script>

<template>
  <lk-picker v-model="value" mode="multi" :columns="columns" />
</template>

级联选择

vue
<template>
  <lk-picker
    v-model="area"
    v-model:visible="visible"
    mode="cascade"
    :columns="areaColumns"
    @pick="(value, indexes, options) => console.log(value, indexes, options)"
  />
</template>

内联模式

vue
<lk-picker inline v-model="value" :columns="columns" />

API

Props

参数说明类型可选值默认值
modelValue当前选中值string / number / arrayundefined
visible是否显示弹层,支持 v-model:visiblebooleanfalse
mode选择模式stringsingle / multi / cascadesingle
columns选项列数据PickerOption[] / PickerOption[][][]
inline是否内联显示,不使用弹层booleanfalse
title标题string''
confirmText确认按钮文字string确定
cancelText取消按钮文字string取消
round弹层是否圆角booleantrue
visibleCount可见选项数量number5
itemHeight选项高度,单位 rpxnumber100
id根节点 idstring''
customClass自定义类名string / object / array''
customStyle自定义样式string / object''

Events

事件名说明回调参数
update:modelValue确认选择后触发(value: PickerValue)
update:visible弹层显示状态变化时触发(visible: boolean)
pick滚动选择项时触发,不提交 modelValue(value: PickerValue, indexes: number[], options: PickerOption[])
change确认选择后触发(value: PickerValue)
confirm点击确认时触发(value: PickerValue, indexes: number[], options: PickerOption[])
cancel点击取消时触发(value: PickerValue, indexes: number[], options: PickerOption[])
open弹层打开时触发()
close弹层关闭时触发()

PickerOption

字段说明类型
label展示文本string
value选项值string / number
children子级选项,级联模式使用PickerOption[]

注意事项

TIP

pick 只表示当前滚动草稿值,只有点击确认后才会触发 update:modelValuechangeconfirm

发布验收

lk-picker 已纳入 high-risk showcase 回归,发布前按下面边界验收:

场景验收方式要点
展示台基线自动回归tests/visual/high-risk-showcase.spec.ts 校验组件路由、verified 状态与高风险标记
H5 / App人工验收单列、多列、级联滚动后确认值一致;弹层打开关闭无滚动穿透
小程序人工验收选择器滚动惯性、确认/取消事件顺序与 H5 保持一致

WARNING

不同端的滚轮手感和选择器 UI 会有平台差异,公开示例只承诺事件和值同步语义一致,不承诺原生滚动视觉完全一致。

基于 MIT 协议开源 · 粤ICP备2022114240号-3

Picker 选择器

正在连接预览服务...

请先运行 pnpm run dev:h5