vue中van-picker的多列联动数据格式如何设置以及调用
2019-04-23 本文已影响29人
刘员外__
一开始看到van-picker的多列联动的例子时,脑子是懵逼的,我即将要用的数据不可能这么简单啊,这叫我咋用!
然后一顿苦思冥想,再深读文档内极其稀少的信息,最后在多次尝试后,终于把结果试出来了。没错,真的是试出来的。
心累。。。
<van-picker
show-toolbar
title="请选择小区名称"
:columns="columns"
value-key="name" //选项对象中,文字对应的 key
@confirm="onConfirm"
@cancel="onCancel"
@change="onChange"
/>
<script>
var citys = [
{id:111,'name':'杭州'},
{id:222,'name':'宁波'},
{id:333,'name':'温州'},
{id:444,'name':'嘉兴'},
{id:555,'name':'湖州'},
];
var country = {
'杭州':[
{id:111,'name':'国杭州'},
{id:222,'name':'国宁波'},
{id:333,'name':'国温州'},
{id:444,'name':'国嘉兴'},
{id:555,'name':'国湖州'},
],
'宁波':[
{id:111,'name':'中杭州'},
{id:222,'name':'中宁波'},
{id:333,'name':'中温州'},
{id:444,'name':'中嘉兴'},
{id:555,'name':'中湖州'},
]
}
export default {
data() {
return {
columns:[
{
values: citys , //可以是数组,或者对象数组
className: 'column1' //选择器的第一列
},
{
values: country ['杭州'], //默认选中country对象中的第一项
className: 'column2', //选择器的第二列
}
],
}
},
methods: {
onChange(picker, values) {
//在change 第一列的时候,动态更改第二列的数据
//setColumnValues是vant自带的实例方法
//第一个参数是列数,从0开始;第二个参数是第二列应该显示的数据
picker.setColumnValues(1, country [values[0].name]);
},
onConfirm(value) {
//将选中的文字和对应的id拿出来使用
this.village_name = value[0].name + ',' + value[1].name;
this.village_id = value[0].id;
this.garage_id = value[1].id;
},
},
}