vue + vant 地址设置编辑,默认展示及本地缓存设置;

本文介绍了如何在Vue项目中结合Vant组件进行地址编辑,详细阐述了如何实现在编辑时选择的地址区域定位,并且讨论了利用本地缓存来保存和清除编辑设置的方法,包括引入areaList.js和相关JS设置。

使用vue 结合vant 组件 编辑地址时,如何让编辑的地址在选中的区域定位设置;结合本地缓存设置再编辑设置;

1.html设置:引入区域js文件:areaList.js

                    <div class="pt-15 plr-15 bg-white">
                        <h3 class="font-15 font-bloder font-black line-height30">收货人信息
                            <span class="right" @click="chooseAddrEdit=false"><van-icon size="24" color="#b8b8b8" name="cross" /></span>
                        </h3>
                        <van-cell-group class="mt-10 pt-15">
                            <van-field v-model="addrEdit.name" label="收货人" placeholder="请填写收货人姓名"></van-field>
                            <van-field v-model="addrEdit.tel" label="手机号" placeholder="请填写收货人手机号"></van-field>
                            <van-field v-model="addrEdit.address" label="收货区域" readonly placeholder="请填写收货人区域" @click="addrChooseShow=true">
                                <van-icon  slot="button" size="18" name="arrow"></van-icon>
                            </van-field>
                            <van-field v-model="addrEdit.addresstext"  type="textarea" rows="1" autosize label="详细地址" placeholder="请填写收货人详细地址"></van-field>
                        </van-cell-group>
                        <div class="plr-15 ptb-15 mt-10 bg-white">
                            <van-button round size="large" @click="onSaveAddrEdit"  class="vant-btn-bluebg" type="info">确定</van-button>
                        </div>
                    </div>

 <!--       区域选择    -->
                <van-popup v-model="addrChooseShow" position="bottom">
                    <van-area
                            :area-list="areaList"
                            :columns-placeholder="['请选择', '请选择', '请选择']"
                            title="收货区域"
                            :value="addrcode"
                            @cancel="addrChooseShow=false"
                            @confirm="addrEditSubmit"
                    ></van-area>
                </van-popup>

js部分设置:

data:{
    chooseAddrEdit:false,//编辑收货人弹框
        addrEdit:{
            name:'',//收货人姓名
            tel:'',//收货人手机号
            address:'',//收货人地址
            addresstext:'',//详细地址
        },
        addrChooseShow:false, //底部打开选择地址状态
        areaList: AreaList,//选择地址内容
        province_name:"",//辅助 省名
        city_name:"", //辅助 市名
        district_name:"",//辅助 市区名
        addrcode:'',//被选中的地址编号;
}

mothed:{
     //首次加载,获取缓存中的数据
        getCacheInfo:function(){
            var that = this; 
            //取收货人的编辑信息;
            let eddre=JSON.parse(window.localStorage.getItem('addrEdit'));
            if(eddre){
                that.addrEdit.name=eddre.name;
                that.addrEdit.tel=eddre.tel;
                that.addrEdit.address=eddre.address;
                that.addrEdit.addresstext=eddre.addresstext;
                if(eddre.vcode[0]&&eddre.vcode[0].name){
                    that.province_name=eddre.vcode[0].name;
                }
                if(eddre.vcode[1]&&eddre.vcode[1].name){
                    that.city_name=eddre.vcode[1].name;
                }
                if(eddre.vcode[2]&&eddre.vcode[2].name){
                    that.district_name=eddre.vcode[2].name;
                }
                if(eddre.vcode[2].code){
                    that.addrcode=eddre.vcode[2].code;
                }else if(eddre.vcode[1].code){
                    that.addrcode=eddre.vcode[1].code;
                }else if(eddre.vcode[0].code){
                    that.addrcode=eddre.vcode[0].code;
                }
            } 
        },
    
    //设置地址时设置缓存;
      addrEditSubmit:function(v){
            var that = this;
            if(v){
                if(v[0]&&v[0].name){
                    that.province_name=v[0].name;
                }
                if(v[1]&&v[1].name){
                    that.city_name=v[1].name;
                }
                if(v[2]&&v[2].name){
                    that.district_name=v[2].name;
                }
            }
            that.addrEdit.address=that.province_name + ' ' + that.city_name +' '+that.district_name;
            that.addrChooseShow=false; 
            //设置收货地址编辑
            let addre={
                name: that.addrEdit.name,
                tel: that.addrEdit.tel,
                address: that.addrEdit.address,
                addresstext: that.addrEdit.addresstext,
                vcode:v,
            };
            let addrEdit=JSON.stringify(addre);
            window.localStorage.setItem('addrEdit',addrEdit);
        },
}

3. 补充上面的缓存方面的内容清除;

 localStorage.removeItem("arrde");//删除指定的缓存;
  localStorage.clear();//清除本地缓存设置;

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值