vue2购物车ch4-(筛选v-for 点击的那个设置样式 设为默认地址其他 联动 非循环的列表选中和非选中 删除当前选中的列表)...

1 address.html




    
    
    
    
    
    购物车 - 地址确认
    
    


    
        
            
                add2
                
            
            
                ok
                
            
            
                edit
                
            
            
                delete
                
            
            
                clock
                
            
        
    

    
  • 地址确认
  • 查看订单
  • 支付
  • 订单确认
配送地址
  • for="(item, index) in filterAddress" @click="currentIndex = index" :class="{'check':currentIndex == index}">
    {{item.userName}}
    {{item.streetName}}
    {{item.tel}}
    if="item.isDefault">默认地址
  • 添加新地址

配送方式
  • 标准配送
    Free
  • 高级配送
    180

2 address.js

let vmAddress = new Vue({
    el: '.container',
    data: {
        limitNum: 3, //限制地址列表显示的长度
        addressList: [],
        currentIndex: 0, //用来保存当前点击的li
        shippingMethod: 1, //配送类型1 标准 2高级
    },
    mounted: function () {
        this.$nextTick(function () {
            this.addressView();
        })
    },
    methods: {
        addressView: function () {
            axios.get('data/address.json')
            .then((res) => {
                if(res.status === 200){
                    this.addressList = res.data.result;
                }
            })
            .catch((err) => {
                console.log('get address data error');
            })
        },
        loadMore: function () {
            this.limitNum = (this.limitNum==3)?this.addressList.length:3; //显示3条或显示全部
        },
        setDefault: function (_index) {
            this.addressList.forEach((address, index) => {
                address.isDefault = false;
                _index == index && (address.isDefault = true); //点击当前的li设为默认地址
            });
        },
        delAddress: function (_index) {
            this.addressList.splice(_index,1);
        }
    },
    computed: {
        filterAddress: function () {
            return this.addressList.slice(0,this.limitNum);
        },
    }
});

3 效果展示
vue2购物车ch4-(筛选v-for 点击的那个设置样式 设为默认地址其他 联动 非循环的列表选中和非选中 删除当前选中的列表)..._第1张图片

4 总结

4.1 默认显示指定条数的v-for列表循环

   1:循环的时候就通过使用过滤器控制显示的条数 2:点击"more"时让控制条数的变量等于数组总长度

4.2 点击的某个循环列表指定样式  .xxx

   1: 先定义一个变量 currentIndex:0;   2:@click="currentIndex=index"; 3:.class="{'xxx':currentIndex==index}"

4.3 点击设为“默认地址”,其他变为“设为默认”

   1:将当前的列表的索引index传递过去 2:js代码中便利所有数组,将与传来的index与数组的index比较,index(页面)==index(数据)时设为默认,其他设为非默认

4.4 非循环出来的列表控制选中效果和非选中效果

  1:初始一个变量 xxx:1 2:列表1:  :class="{'类名':xxx==1}" @click="xxx=1"、  列表2: :class="{'类名':xxx==2}" @click="xxx=2"

 

转载于:https://www.cnblogs.com/easyweb/p/6666142.html

你可能感兴趣的:(vue2购物车ch4-(筛选v-for 点击的那个设置样式 设为默认地址其他 联动 非循环的列表选中和非选中 删除当前选中的列表)...)