Skip to content

Picker 选择器

查看 sn-picker 的 2.0 版本差异

基础用法

  • 从底部弹出的多列滚动选择器,基于 sn-drawer + sn-picker-view 封装,适合数据量较大或较复杂的数据选择;简单数据选择推荐使用 sn-select 组件。
  • 通过 ref 调用 open() 打开,仅点击「确定」按钮才会把当前选择写入 v-model 并触发 change 事件;点击「取消」、遮罩或关闭按钮均不写入。
  • 支持自定义标题、关闭按钮、取消/确定按钮,以及选项颜色、字号、圆角等样式;颜色与尺寸均支持 $ 简写语法。
  • 使用时需放在 sn-page 根节点下。
vue
<template>
	<sn-picker ref="pickerEle" v-model="value" :data="data" title="请选择" @confirm="onConfirm"></sn-picker>
</template>

更多演示请下载 demo 查看

属性

参数说明类型默认值可选值
v-model当前选中的选项索引数组Number[][]-
data选择器数据数组,每个子数组代表一列SnDataItem[][][]-
disabled是否禁用选择器(选项不可滚动、按钮不可点击)Booleanfalsetrue | false
maskClose是否可以通过点击蒙层关闭选择器Booleantruetrue | false
maskOpacity蒙层透明度Number0.40~1
preventBack是否阻止返回键/返回手势关闭选择器Booleanfalsetrue | false
height选择器整体高度(含标题与按钮区域)String | Number350px-
title选择器标题,为空时不显示标题String--
titleAlign标题对齐方式Stringcenterleft | center | right
titleColor标题颜色String$title-
titleSize标题大小String | Number$14-
cancelText取消按钮文字String取消-
confirmText确定按钮文字String确定-
cancelTextSize取消按钮文字大小String | Number$14-
confirmTextSize确定按钮文字大小String | Number$14-
showCancel是否显示取消按钮Booleantruetrue | false
showConfirm是否显示确定按钮Booleantruetrue | false
showClose是否显示右上角关闭按钮Booleantruetrue | false
columnSpacing列之间的间距String | Number10px-
actionSpacing取消/确定按钮之间的间距String | Number10px-
itemHeight选项高度String | Number$50-
itemBorderRadius选项圆角大小String | Number$8-
itemTextColor选项文字颜色String$textLight(亮色模式)/ $lineText(暗黑模式)-
itemTextSize选项文字大小String | Number$13-
activeItemTextColor激活选项文字颜色String$text-
disabledItemTextColor禁用选项文字颜色String$disabledText-
customStyle自定义根节点样式UTSJSONObject | String--
headerStyle自定义标题栏样式UTSJSONObject | String--
headerClass自定义标题栏外部样式类String--
titleStyle自定义标题样式UTSJSONObject | String--
titleClass自定义标题外部样式类String--
closeButtonStyle自定义关闭按钮样式UTSJSONObject | String--
closeButtonClass自定义关闭按钮外部样式类String--
actionsStyle自定义底部按钮栏样式UTSJSONObject | String--
actionsClass自定义底部按钮栏外部样式类String--
cancelButtonStyle自定义取消按钮样式UTSJSONObject | String--
cancelButtonClass自定义取消按钮外部样式类String--
confirmButtonStyle自定义确定按钮样式UTSJSONObject | String--
confirmButtonClass自定义确定按钮外部样式类String--
itemStyle自定义选项样式UTSJSONObject | String--
itemClass自定义选项外部样式类String--
columnStyle自定义列样式UTSJSONObject | String--
columnClass自定义列外部样式类String--

通用数据项类型,全局弹窗操作菜单与多数列表类组件共用(组件侧详见组件类型)。

字段类型必备描述
idString项 id
textString显示文本
iconString图标名
valueString关联值
colorString文本颜色
disabledBoolean是否禁用

事件

名称类型说明
change(value: Number[]) => Void点击确定后,选中值写入 v-model 时触发
confirm() => Void点击确定按钮时触发(在 change 之前触发)
cancel() => Void点击取消按钮时触发
open() => Void选择器打开后触发
close() => Void选择器关闭后触发
clickoverlay() => Void点击蒙层时触发
beforeenter() => Void进入动画开始前触发
enter() => Void进入动画开始时触发
afterenter() => Void进入动画结束后触发
beforeleave() => Void离开动画开始前触发
leave() => Void离开动画开始时触发
afterleave() => Void离开动画结束后触发

方法

名称参数返回值描述
open--打开选择器(打开前会将 v-model 当前值复制为内部临时值,仅确定后才写回)
close--关闭选择器

sn-picker-view 选择器容器

sn-picker-view 是基于官方 picker-view 封装的多列选择器容器,可独立在页面内使用,也是 sn-picker 的内部核心。扩展了禁用项(滚动到禁用项会回弹)、禁用状态拦截与指示器、选项样式定制;颜色与尺寸均支持 $ 简写语法。

vue
<template>
	<sn-picker-view v-model="value" :data="data"></sn-picker-view>
</template>

sn-picker-view 属性

参数说明类型默认值可选值
v-model当前选中的选项索引数组Number[][]-
data选择器数据数组,每个子数组代表一列SnDataItem[][][]-
disabled是否禁用选择器容器(通过透明遮罩拦截操作)Booleanfalsetrue | false
height选择器容器高度String | Number250px-
itemHeight选项高度String | Number$50-
itemBorderRadius选项圆角大小(同时作用于指示器圆角)String | Number$8-
itemTextColor选项文字颜色String$textLight(亮色模式)/ $lineText(暗黑模式)-
itemTextSize选项文字大小String | Number$13-
activeItemTextColor激活选项文字颜色String$text-
disabledItemTextColor禁用选项文字颜色String$disabledText-
columnSpacing列间距String | Number10px-
customStyle自定义根节点样式UTSJSONObject | String--
customClass自定义根节点外部样式类String--
itemStyle自定义选项样式UTSJSONObject | String--
itemClass自定义选项外部样式类String--
columnStyle自定义列样式UTSJSONObject | String--
columnClass自定义列外部样式类String--

sn-picker-view 事件

名称类型说明
change(value: Number[]) => Void滚动选择导致选中值变化时触发(实时触发,不等确认)

使用 MIT 协议