购物车

作者: 稻草人_9ac7 | 来源:发表于2019-10-25 09:02 被阅读0次

复选框与按钮的结合使用

//购物车列表
 <div class="flx-cent" v-for="(item,index) in carData" :key="index">
        <van-checkbox
         v-model="item.checked" 
         checked-color="#C03131" 
         icon-size="15px"
         @change="selectOne"
         ></van-checkbox>
        <div class="cart-goods">
          <img :src="item.imgUrl" alt />
        </div>
        <div class="cart-container flex2 jc-sb">
          <p class="goods-msg">{{item.masterName}}</p>
          <div class="goods-price">
            <span class="price">¥{{item.price/100}}</span>
            <span class="old-price" v-if="false">¥{{item.maxPrice}}</span>
            <span class="count">X {{item.buyNum}}</span>
          </div>
        </div>
     
      </div>
<!-- 底部结算 -->
<div class="buttom-nav">
  <van-checkbox v-model="checkedAll" 
   checked-color="#C03131" 
   icon-size="15px"
   @click="selectAll"
   >
    <span style="color: #797d82;">全选</span>
  
  </van-checkbox>
  <span class="all-price">¥{{totalPrice}}</span>
  <van-button style="height:49px;width:105px;font-size:17px" color="#C03131" @click="payMoney">结算</van-button>
</div>
//单选和全选的js部分
   // 单选 这里我们使用组件的change的事件,它自带一个回调参数,这个参数是布尔值,可以选中的状态
    selectOne(value){
      console.log("单选:",value)
         // 被选中商品的数量
        let selectArr= this.carData.filter(item=>{
             return item.checked;
         })
        // 判断被选中商品和全部商品的数量是否相等
        if(selectArr.length==this.carData.length){
          this.checkedAll=true
        }
        else{
          this.checkedAll=false
        }
    },
    // 全选 全使用的是点击事件click
    selectAll(value){
      console.log("多选:",this.checkedAll)
      this.carData=this.carData.map(item=>{
        return {
          ...item,
          checked: !this.checkedAll
        }
      })
    },
    //获取数据
    getCarData(){     
      let url ="cart/all"
      this.$axios.post(url).then(res=>{
        console.log("购物车的列表数据:",res)
    let resList=   res.list.filter(item=>{
      return item.buyNum >0
       })
        //由于返回的对象里没有我们需要的checked属性,所有我们需要对数组里的每一个对象添加checked属性,使用的方式是map和扩展运算符
        this.carData= resList.map(item=>{

          return {
            ...item,
            checked:false
          }
        })
        // this.carData=res.list
        console.log("this.carData",this.carData)
          this.getProductData()      
      }).catch(err=>{
        console.log("err",err)
      })
    },

相关文章

  • 商城之购物车

    购物车管理: 包含功能:提交商品到购物车、显示购物车列表、删除购物车里商品、修改购物车、清空购物车等等 1、购...

  • 购物车模块实现

    1、购物车列表功能实现 点击加入购物车或者点击购物车图标后进入购物车页面,在购物车页面中首先渲染cartList的...

  • SSM框架学习日记(6)——购物车模块

    购物车相关接口 添加购物车,购物车列表,更新商品数量,删除购物车先新建CartController和CartSer...

  • 8.5-高并发下的互联网电商购物车实战-加入购物车接口开发—小滴

    高并发下的互联网电商购物车实战-加入购物车接口开发 简介:电商购物车实现案例-加入购物车接口开发 添加购物车接口 ...

  • day11购物车10-细节完善

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • day11购物车08-代理的简单实现

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • day11-购物车06-清空和购买

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • day11购物车07-KVO的应用

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • day11购物车09-代理设计模式

    购物车01-搭建基本骨架购物车02-圆角按钮处理购物车03-显示数据购物车04-加号减号点击处理购物车05-通知的...

  • 8.购物车管理

    购物车管理模块是属于用户侧模块,主要有7个接口:添加商品到购物车、更新购物车商品数、移除购物车商品、查看购物车当中...

网友评论

      本文标题:购物车

      本文链接:https://www.haomeiwen.com/subject/owwjvctx.html