# Picker 选择器
# 介绍
通过滚动的方式让用户选择单列数据中的一个
# 使用指南
# 一般用法
column-data为数组类型,成员为字符串或数字,传递这个参数将显示一列选择器
<tms-picker column-data="{{columnData}}" default-index="3" bind:on-change="onChange"/>
columnIndex为列表下标,单列时始终为0,index为新的选中元素下标,preIndex为上一个选中元素下标, item为目标元素
Component({
data: {
columnData: [
1, 2, 3, 4, 5, 6,
],
},
methods: {
onChange(event) {
const { columnIndex, index, preIndex, item } = event.detail
}
}
})
# 多列模式
当设置了multi-column-data后,column-data参数无效
<tms-picker multi-column-data="{{multiColumnData}}" bind:on-change="onChange"/>
Component({
data: {
multiColumnData: [
{
values: [1, 2, 3, 4, 5, 6],
defaultIndex: 3,
},
{
values: ['a', 'b', 'c', 'd', 'e', 'f'],
defaultIndex: 3,
},
],
}
})
# 自定义样式
<tms-picker column-data="{{columnData}}" title="请选择" left-text="关闭" right-text="确定"
rootStyle="padding:15px 5px;" actionStyle="line-height:25px;"
pickerListStyle="margin:10px 0;"/>
# 定义每行元素高度
<tms-picker column-data="{{columnData}}" cell-height="100rpx"/>
# API
| 属性 | 说明 | 类型 | 默认值 | 版本 |
|---|---|---|---|---|
| column-data | 滚动区域数据,设置multi-column-data后无效 | array | [] | |
| multi-column-data | 滚动区域数据,多列模式 | array | [] | |
| cell-height | 每一行的高度 | string | 88rpx | |
| list-height | 选择器内容区域高度 | string | 200rpx | |
| root-style | 自定义组件根元素容器style | string | - | |
| action-style | 自定义头部文案区域元素style | string | - | |
| picker-list-style | 自定义滚动区域容器元素style | string | - | |
| default-index | 默认滚动到哪一个位置的元素,单列模式有效 | number | 0 | |
| show-action-bar | 是否显示顶部栏 | boolean | true | |
| left-text | 顶部栏左侧文案 | string | '' | |
| right-text | 顶部栏右侧文案 | string | '' | |
| title | 顶部栏中间标题 | string | '' | |
| rolling-disable | 滚动时禁用右侧文案点击事件(有置灰效果) | boolean | true |
# EVENTS
| 属性 | 说明 | 类型 |
|---|---|---|
| bind:on-change | 滚动位置变化事件 | (event) => {} |
| bind:on-click-title | 点击标题事件 | (event) => {} |
| bind:on-click-left-button | 点击左侧文字事件 | (event) => {} |
| bind:on-click-right-button | 点击右侧文字事件 | (event) => {} |
# CSS变量
// 背景色
--picker-background-color: #FFFFFF;
// 头部文案区域元素的line-height
--picker-action-line-height: 44rpx;
// 标题font-size
--picker-title-font-size: 27rpx;
// 左右文案元素的font-size
--picker-action-button-font-size: 24rpx;
// 右侧文案元素 color
--picker-confirm-button-color: #3886F2;
// 左侧文案元素 color
--picker-cancel-button-color: #969799;
// 内容区域高度,可控制显示几行元素。
--picker-list-height: 200rpx;
// 滚动元素font-size
--picker-cell-font-size: 27rpx;
// 滚动元素color
--picker-cell-text-color: @text-color;
// 滚动元素当前居中元素的 color
--picker-cell-selected-text-color: @text-color;
// 分隔线高度
--picker-midline-size: 2rpx;
// 分隔线颜色
--picker-midline-color: #97979730;
