vant中实现地址的四级选择(省市县街道)

引入Cascader

注意:vant 2.12 版本开始支持此组件,不然会报错

import Vue from 'vue';
import { Cascader } from 'vant';

Vue.use(Cascader);

 引入全国四级区域地址

 https://download.csdn.net/download/qq_34797972/14123322

实现

引入 import area from "@/utils/4-area";

自定义成vant识别的json

         clone(obj) {
                return JSON.parse(JSON.stringify(obj));
            },            
        getAreaPlus() {
                let areal = this.clone(area) // 地址json拷贝
                console.log(areal);
                this.areaList = areal.map(item => {
                    return {
                        text: item.pro_name,
                        value: item.pro_code,
                        children: item.pro_cities.map(e => {
                            return {
                                text: e.city_name,
                                value: e.city_code,
                                children: e.city_areas.map(val => {
                                    return {
                                        text: val.area_name,
                                        value: val.area_code,
                                        children: val.area_streets.map(t => {
                                            return {
                                                text: t.street_name,
                                                value: t.street_code
                                            }
                                        })
                                    }
                                })
                            }
                        })
                    }
                })
            }

插入使用 

      <van-cascader
                    v-model="areaCode"
                    title="请选择地址"
                    :options="areaList"
                    @close="showArea = false"
                    @finish="onAreaConfirm"
            />

选择完成 

        onAreaConfirm({selectedOptions}) {
                this.areaName = selectedOptions.map((option) => option.text).join('');
                this.areaCode = selectedOptions[selectedOptions.length - 1].value
                this.showArea = false;
            },

效果图

 

  • 6
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 7
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值