前端新手mpvue

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;
            },
        },
    }
上一篇下一篇

猜你喜欢

热点阅读