mirror of
https://gitee.com/vant-contrib/vant.git
synced 2025-04-06 03:57:59 +08:00
4.7 KiB
4.7 KiB
Picker组件
模仿iOS中的UIPickerView
。
基础用法
:::demo 基础用法
<zan-picker :columns="pickerColumns" @change="handlePickerChange"></zan-picker>
<script>
const citys = {
'浙江': ['杭州', '宁波', '温州', '嘉兴', '湖州', '绍兴', '金华', '衢州', '舟山', '台州', '丽水'],
'福建': ['福州', '厦门', '莆田', '三明', '泉州', '漳州', '南平', '龙岩', '宁德'],
'湖南': ['长沙', '株洲', '湘潭', '衡阳', '邵阳', '岳阳', '常德', '张家界', '益阳', '郴州', '永州', '怀化', '娄底', '湘西土家族苗族自治州']
};
export default {
data() {
return {
pickerColumns: [
{
values: Object.keys(citys),
className: 'column1'
},
{
values: ['杭州', '宁波', '温州', '嘉兴', '湖州', '绍兴', '金华', '衢州', '舟山', '台州', '丽水'],
className: 'column2'
}
]
};
},
methods: {
handlePickerChange(picker, values) {
picker.setColumnValues(1, citys[values[0]]);
}
}
};
</script>
:::
带toolbar的Picker
:::demo 带toolbar的Picker
<zan-picker :columns="pickerColumns" show-toolbar @change="handlePickerChange" @cancel="handlePickerCancel" @confirm="handlePickerConfirm"></zan-picker>
<script>
const citys = {
'浙江': ['杭州', '宁波', '温州', '嘉兴', '湖州', '绍兴', '金华', '衢州', '舟山', '台州', '丽水'],
'福建': ['福州', '厦门', '莆田', '三明', '泉州', '漳州', '南平', '龙岩', '宁德'],
'湖南': ['长沙', '株洲', '湘潭', '衡阳', '邵阳', '岳阳', '常德', '张家界', '益阳', '郴州', '永州', '怀化', '娄底', '湘西土家族苗族自治州']
};
export default {
data() {
return {
pickerColumns: [
{
values: Object.keys(citys),
className: 'column1'
},
{
values: ['杭州', '宁波', '温州', '嘉兴', '湖州', '绍兴', '金华', '衢州', '舟山', '台州', '丽水'],
className: 'column2'
}
]
};
},
methods: {
handlePickerChange(picker, values) {
picker.setColumnValues(1, citys[values[0]]);
},
handlePickerCancel() {
alert('picker cancel');
},
handlePickerConfirm() {
alert('picker confirm');
}
}
};
</script>
:::
API
参数 | 说明 | 类型 | 默认值 | 可选值 |
---|---|---|---|---|
visibileColumnCount | 每一列可见备选元素的个数 | number |
5 |
|
itemHeight | 选中元素区高度 | number |
44 |
|
columns | 对象数组,配置每一列显示的数据 | Array |
||
showToolbar | 是否在组件顶部显示一个toolbar | Boolean |
true |
columns
API
中的columns
为一个对象数组,数组中的每一个对象配置每一列,每一列有以下key
:
key | 说明 |
---|---|
values | 列中对应的备选值 |
defaultIndex | 初始选中值的索引,默认为0 |
className | 为对应列添加特殊的class |
change事件
在change
事件中,可以获取到picker
实例,对picker
进行相应的更新等操作:
函数 | 说明 |
---|---|
getColumnValue(index) | 获取对应列中选中的值 |
setColumnValue(index, value) | 设置对应列中选中的值 |
getColumnValues(index) | 获取对应列中所有的备选值 |
setColumnValues(index, values) | 设置对应列中所有的备选值 |
getValues() | 获取所有列中被选中的值,返回一个数组 |
setValues(values) | values 为一个数组,设置所有列中被选中的值 |