vuejs 三级联动

最近在学习vuejs,写了一个城市三级联动效果,可以用在项目中的收获地址管理,支持新增与修改操作

HTML

            请选择            {{item}}            请选择            {{item}}            请选择            {{item}}

JavaScript

var addressExtend=Vue.extend({    template:"# address-template",    props:{        province:{            type:String,            default:''        },        city:{            type:String,            default:''        },        county:{            type:String,            default:''        }    },    data:function(){        return {            addressData:null        }    },    init:function(){        var that=this        setTimeout(function(){            that.addressData={                '湖南':{                    '长沙':{                        "开福区":{},                        "岳麓区":{}                    },                    '怀化':{                        '沅陵':{},                        '溆浦':{}                    }                },                '广东':{                    '广州':{                        '天河区':{},                        '越秀区':{}                    },                    '深圳':{                        '宝安':{},                        '南山':{}                    }                }            }        },1000)    },    watch:{        province:function(val,oldval){            if(val!==oldval){                this.city=''            }        },        city:function(val,oldval){            if(val!==oldval){                this.county=''            }        }    },    computed:{        provinces:function(){            if(!this.addressData)return            var c=[]            for(var key in this.addressData){                c.push(key)            }            return c        },        citys:function(){            if(!this.addressData                 || !this.province)                return             var c=[]            for(var key in this.addressData[this.province]){                c.push(key)            }            return c        },        countys:function(){            if(!this.addressData                ||!this.city)                return            var c=[]            for(var key in this.addressData[this.province][this.city]){                c.push(key)            }            return c        }    }})Vue.component('address',addressExtend)var demo1=new Vue({    el:'# demo',    data:{        province:'广东',        city:'广州',        county:'天河区'    }})

去jsfiddle手动试试

关键字:vue.js, 联动

版权声明

本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处。如若内容有涉嫌抄袭侵权/违法违规/事实不符,请点击 举报 进行投诉反馈!

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部