在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美

當前位置:雨林木風下載站 > 應(yīng)用軟件教程 > 詳細頁面

微信小程序商城開發(fā)之完成商品加入購物車的技巧(代碼)

微信小程序商城開發(fā)之完成商品加入購物車的技巧(代碼)

更新時間:2025-09-24 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

導(dǎo)微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一...
微信小程序,簡稱小程序,英文名Mini Program,是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或搜一下即可打開應(yīng)用。小程序是一種不用下載就能使用的應(yīng)用,也是一項門檻非常高的創(chuàng)新,經(jīng)過將近兩年的發(fā)展,已經(jīng)構(gòu)造了新的小程序開發(fā)環(huán)境和開發(fā)者生態(tài)。
本篇文章給大家?guī)淼膬?nèi)容是關(guān)于微信小程序商城開發(fā)之實現(xiàn)商品加入購物車的功能(代碼) ,有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

看效果

微信小程序商城開發(fā)之實現(xiàn)商品加入購物車的功能(代碼)

購物車.gif

開發(fā)計劃

1、商品詳情頁將商品信息放入緩存
2、購物車頁面讀取緩存獲取商品信息
3、購物車商品計算和刪除緩存商品

一、商品詳情頁將商品信息放入緩存

detail.wxml

<button data-goodid="{{goods.goodsId}}" class="button-addCar" bindtap="addCar" formType="submit">確定</button>

綁定bindtap事件將商品加入購物車。

detail.js

/**
   * 加入購物車
   */
  addCar: function (e) {    
    var goods = this.data.goods;
    goods.isSelect=false;    
    var count = this.data.goods.count;    
    var title = this.data.goods.title;    
    if (title.length > 13) {
      goods.title = title.substring(0, 13) + '...';
    }    
    // 獲取購物車的緩存數(shù)組(沒有數(shù)據(jù),則賦予一個空數(shù)組)  
    var arr = wx.getStorageSync('cart') || [];    
    console.log("arr,{}", arr);    
    if (arr.length > 0) {      
        // 遍歷購物車數(shù)組  
      for (var j in arr) {        
        // 判斷購物車內(nèi)的item的id,和事件傳遞過來的id,是否相等  
        if (arr[j].goodsId == goodsId) {          
        // 相等的話,給count+1(即再次添加入購物車,數(shù)量+1)  
          arr[j].count = arr[j].count + 1;          
        // 最后,把購物車數(shù)據(jù),存放入緩存(此處不用再給購物車數(shù)組push元素進去,因為這個是購物車有的,直接更新當前數(shù)組即可)  
          try {
            wx.setStorageSync('cart', arr)
          } catch (e) {            
            console.log(e)
          }          
        //關(guān)閉窗口
          wx.showToast({            
            title: '加入購物車成功!',            
            icon: 'success',            
            duration: 2000
          });          
        this.closeDialog();          
            // 返回(在if內(nèi)使用return,跳出循環(huán)節(jié)約運算,節(jié)約性能) 
          return;
        }
      }      
        // 遍歷完購物車后,沒有對應(yīng)的item項,把goodslist的當前項放入購物車數(shù)組  
      arr.push(goods);
    } else {
      arr.push(goods);
    }    
    // 最后,把購物車數(shù)據(jù),存放入緩存  
    try {
      wx.setStorageSync('cart', arr)      
        // 返回(在if內(nèi)使用return,跳出循環(huán)節(jié)約運算,節(jié)約性能) 
      //關(guān)閉窗口
      wx.showToast({        
         title: '加入購物車成功!',        
         icon: 'success',        
         duration: 2000
      });      
        this.closeDialog(); 
      return;
    } catch (e) {      
        console.log(e)
    }
  }

二、購物車頁面讀取緩存獲取商品信息

cart.wxml

<view class="J-shopping-cart-empty" hidden="{{iscart}}"><view class="shopping-cart-empty">
        <view class="bg"></view> 
        <view class="cart"></view>
        <text class='empty-text'>購物車空空如也</text>  
        <p></p>
        <navigator url="/pages/goods/goods">
         <a href="//m.vip.com" class="button button-primary" >
            去搶購        </a>
        </navigator>
    </view></view> <view class="scroll" hidden="{{hidden}}"><scroll-view class="scroll" scroll-y="true">
  <view class="separate"></view>
  <view wx:for="{{carts}}">
    <view class="cart_container">  
      <view  wx:if="{{!item.isSelect}}">
            <icon class="item-select" bindtap="switchSelect" data-index="{{index}}" data-id="{{index}}"  type="circle" size="20"></icon>
      </view>
      <view wx:elif="{{item.isSelect}}">
            <icon class="item-select" bindtap="switchSelect" data-index="{{index}}" data-id="{{index}}"  type="success" color="#f0145a" size="20"></icon>
      </view>

      <image class="item-image" src="{{item.imgUrl}}"></image>
      <import src="../template/template.wxml" />
      <view class="column">
        <text class="title">{{item.title}}</text>
         <image bindtap="delGoods" id="img{{index}}" data-index="{{index}}" src="../../images/del.png"></image> 
        <view class="row">
          <text class="sku-price">¥{{item.price * item.count}}</text>
          <view class="sku">
              <template is="quantity"  data="{{ ...item,index:index}}" /> 
          </view>
        </view>

      </view>
    </view>
    <view class="separate"></view>
  </view></scroll-view></view>
 <view class="bottom_total" hidden="{{hidden}}">
  <view class="bottom_line"></view>

  <view class="row">

    <view  wx:if="{{!isAllSelect}}">
            <icon class="item-allselect" bindtap="allSelect" type="circle" size="20"></icon>
      </view>
      <view wx:elif="{{isAllSelect}}">
            <icon class="item-allselect" bindtap="allSelect" type="success" color="#f0145a" size="20"></icon>
      </view>
    <text class="small_text">全選</text>
    <text>合計:¥ </text>
    <text class="price">{{totalMoney}}</text>
    <button class="button-red" bindtap="toBuy" formType="submit">去結(jié)算      </button>
  </view></view>

cart.wxss

 @import "../template/template.wxss"; 
page{  
  background: #f3f4f5;  
  /* font-size: 37.5px;  */
}  
 .column image {  
     width:33rpx;  
     height:35rpx;  
     display:inline-block;  
     overflow:hidden;  
     float:right;  
     margin-top: -40rpx;  
     margin-left:400rpx;
} 
 .J-shopping-cart-empty{    
     margin: 0;    
     padding: 0;    
     border: 0;    
     font: inherit;    
     font-size: 100%;    
     vertical-align: baseline;
}
.shopping-cart-empty {   
    height: 250px;    
    padding-top: 3.2rem;    
    padding-bottom: 1.6rem;    
    background-color: #fff;    
    text-align: center;    
    position: relative;
} 
.shopping-cart-empty .bg{    
    position: absolute;    
    width: 16.29333rem;    
    height: 6.73333rem;    
    
    background: transparent url(data:image/png;base64,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);    
    left: 50%;    
    -webkit-transform: translateX(-50%);    
    transform: translateX(-50%);      
    background-size: 100%;    
    top: 0;
} 
.shopping-cart-empty .cart{        
    width: 5.83333rem;    
    height: 7.46rem;    
    background: transparent url(data:image/png;base64,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) no-repeat;  
    background-size: 100%;    
    margin: 0 auto;
}  
.shopping-cart-empty .button {   
    width: 8.46667rem;    
    height: 1.5rem;    
    display: block;    
    margin: 20rpx auto;
}
.empty-text {    
    font-size: .64667rem;    
    color: #222;    
    margin-top: .53333rem;    
    line-height: .74667rem;    
    font-weight: 400;
}
.button-primary {    
    border: 1px solid #de3c96;    
    color: #de3c96;    
    text-decoration: none;    
    text-align: center;    
    display: block;    
    border-radius: .21267rem;    
    line-height: 1.5rem;    
    -webkit-appearance: none;    
    background: none;    
    padding: 0 .26667rem;    
    margin: 0;    
    white-space: nowrap;    
    position: relative;    
    text-overflow: ellipsis;    
    font-size: .74333rem;    
    font-family: inherit;    
    cursor: pointer;    
    user-select: none;
} 


.cart_container {  
    display: flex;  
    flex-direction: row;  
    background-color: #FFFFFF;  
    margin-bottom: 10rpx;
}
.scroll {   
    margin-bottom: 120rpx; 
}
.column {  
    display: flex;  
    flex-direction: column;
}
.row { 
    display: flex;  
    flex-direction: row;   
    align-items: center;
}
.sku {  
    margin-left: 100rpx;  
    position: absolute;  
    right: 30rpx;  
    margin-top: 30rpx; 
}
.sku-price {  
    color: red;  
    position: relative;   
    margin-top: 30rpx; 
}
.price {  
    color: red;  
    position: relative;
}
.title {  
    font-size: 32rpx;  
    margin-top: 40rpx;
}
.small_text {  
    font-size: 28rpx;  
    margin-right: 40rpx;  
    margin-left: 25rpx;
}
.item-select {  
    width: 40rpx;  
    height: 40rpx;  
    margin-top: 90rpx;  
    margin-left: 20rpx;
}
.item-allselect {  
    width: 40rpx;  
    height: 40rpx; 
    margin-left: 20rpx;   
    margin-top:25rpx;   
}
.item-image {  
    width: 180rpx;  
    height: 180rpx;  
    margin: 20rpx;
} 
.bottom_line {  
    width: 100%;  
    height: 2rpx;  
    background: lightgray;
} 
.bottom_total {  
    position: fixed;  
    display: flex;  
    flex-direction: column;  
    bottom: 0;  
    width: 100%;  
    height: 120rpx;  
    line-height: 120rpx;  
    background: white;  /* margin-top: 300rpx; */
    border-top: 1rpx solid #ccc;  z-index: 99;
}
.button-red {  
    background-color: #f0145a; 
    position: fixed;  
    right: 0;  
    color: white;  
    text-align: center;  
    display: inline-block;  
    font-size: 30rpx;  
    border-radius: 0rpx;  
    width: 30%;  
    height: 120rpx;  
    line-height: 120rpx;  /* border: 1rpx solid #ccc; */
}

cart.js

/**
   * 頁面的初始數(shù)據(jù)
   */
  data: {    
    carts: [], //數(shù)據(jù) 
    iscart: false,    
    hidden: null,    
    isAllSelect: false,    
    totalMoney: 0,
  },
onShow: function () {    
    // 獲取產(chǎn)品展示頁保存的緩存數(shù)據(jù)(購物車的緩存數(shù)組,沒有數(shù)據(jù),則賦予一個空數(shù)組)  
    var arr = wx.getStorageSync('cart') || [];    
    console.info("緩存數(shù)據(jù):"+arr);    // 有數(shù)據(jù)的話,就遍歷數(shù)據(jù),計算總金額 和 總數(shù)量  
    if (arr.length > 0) {      
        // 更新數(shù)據(jù)  
      this.setData({        
        carts: arr,        
        iscart: true,        
        hidden: false
      });      
        console.info("緩存數(shù)據(jù):" + this.data.carts);
    }else{      
        this.setData({        
            iscart: false,        
            hidden: true,
      });
    }
  },

三、購物車商品計算和刪除緩存商品

cart.js

//勾選事件處理函數(shù)  
  switchSelect: function (e) {    
    // 獲取item項的id,和數(shù)組的下標值  
    var Allprice = 0, i = 0;    
    let id = e.target.dataset.id,

      index = parseInt(e.target.dataset.index);    
    this.data.carts[index].isSelect = !this.data.carts[index].isSelect;    //價錢統(tǒng)計
    if (this.data.carts[index].isSelect) {      
        this.data.totalMoney = this.data.totalMoney + (this.data.carts[index].price * this.data.carts[index].count);
    }    else {      
        this.data.totalMoney = this.data.totalMoney - (this.data.carts[index].price * this.data.carts[index].count);
    }    
    //是否全選判斷
    for (i = 0; i < this.data.carts.length; i++) {
      Allprice = Allprice + (this.data.carts[index].price * this.data.carts[index].count);
    }    
    if (Allprice == this.data.totalMoney) {      
        this.data.isAllSelect = true;
    }    else {      
        this.data.isAllSelect = false;
    }    
    this.setData({      
        carts: this.data.carts,      
        totalMoney: this.data.totalMoney,      
        isAllSelect: this.data.isAllSelect,
    })
  },  
    //全選
  allSelect: function (e) {   
     //處理全選邏輯
    let i = 0;    
     if (!this.data.isAllSelect) {      
         this.data.totalMoney = 0;      
         for (i = 0; i < this.data.carts.length; i++) {        
             this.data.carts[i].isSelect = true;        
             this.data.totalMoney = this.data.totalMoney + (this.data.carts[i].price * this.data.carts[i].count);

      }
    }    else {      
        for (i = 0; i < this.data.carts.length; i++) {        
            this.data.carts[i].isSelect = false;
      }      
            this.data.totalMoney = 0;
    }    
            this.setData({      
                carts: this.data.carts,      
                isAllSelect: !this.data.isAllSelect,      
                totalMoney: this.data.totalMoney,
    })
  },  // 去結(jié)算
  toBuy() {
    wx.showToast({      
       title: '去結(jié)算',      
       icon: 'success',      
       duration: 3000
    });    
    this.setData({      
       showDialog: !this.data.showDialog
    });
  },  //數(shù)量變化處理
  handleQuantityChange(e) {    
      var componentId = e.componentId;    
      var quantity = e.quantity;    
      this.data.carts[componentId].count.quantity = quantity;    
      this.setData({      
         carts: this.data.carts,
    });
  },  
   /* 減數(shù) */
  delCount: function (e) {    
   var index = e.target.dataset.index;    
   console.log("剛剛您點擊了加一");    
   var count = this.data.carts[index].count;    // 商品總數(shù)量-1
    if (count > 1) {      
       this.data.carts[index].count--;
    }    
       // 將數(shù)值與狀態(tài)寫回  
    this.setData({      
       carts: this.data.carts
    });    
       console.log("carts:" + this.data.carts);    
       this.priceCount();
  },  
       /* 加數(shù) */
  addCount: function (e) {    
       var index = e.target.dataset.index;    
       console.log("剛剛您點擊了加+");    
       var count = this.data.carts[index].count;    // 商品總數(shù)量+1  
    if (count < 10) {      
       this.data.carts[index].count++;
    }    
       // 將數(shù)值與狀態(tài)寫回  
    this.setData({      
       carts: this.data.carts
    });    
       console.log("carts:" + this.data.carts);    
       this.priceCount();
  }, 
  priceCount: function (e) {    
      this.data.totalMoney = 0;    
      for (var i = 0; i < this.data.carts.length; i++) {      
      if (this.data.carts[i].isSelect == true) {        
          this.data.totalMoney = this.data.totalMoney + (this.data.carts[i].price * this.data.carts[i].count);
      }

    }    
          this.setData({      
              totalMoney: this.data.totalMoney,
        })
  },  
  /* 刪除item */
  delGoods: function (e) {    
      this.data.carts.splice(e.target.id.substring(3),1);    // 更新data數(shù)據(jù)對象  
    if (this.data.carts.length > 0) {      
          this.setData({        
              carts: this.data.carts
      })
      wx.setStorageSync('cart', this.data.carts);      
              this.priceCount();
    } else {      
              this.setData({            
                  cart: this.data.carts,        
                  iscart: false,        
                  hidden: true,
      })
      wx.setStorageSync('cart', []);
    }
  }

相關(guān)推薦:

微信小程序商城開發(fā)之動態(tài)API把商品進行分類(代碼)

微信小程序商城開發(fā)之動態(tài)API實現(xiàn)特賣商品的流式布局代碼

以上就是微信小程序商城開發(fā)之實現(xiàn)商品加入購物車的功能(代碼)的詳細內(nèi)容,更多請關(guān)注php中文網(wǎng)其它相關(guān)文章!


小程序是一種不需要下載安裝即可使用的應(yīng)用,它實現(xiàn)了應(yīng)用“觸手可及”的夢想,用戶掃一掃或者搜一下即可打開應(yīng)用。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

在线看毛片视频-国产免费av在线-欧美日韩一区二区三区-国产成人无码av在线播放无广告-亚洲人va欧美va人人爽-国产第一草草-西班牙黄色片-四虎在线网站8848-最新av片免费网站入口-东京热无码中文字幕av专区-日本大人吃奶视频xxxx-欧美精品一区二区三区四区五区-国产片天天弄-国产免费内射又粗又爽密桃视频-欧美爱爱网站-日韩v欧美
  • <li id="86scu"><menu id="86scu"></menu></li>
    <li id="86scu"></li>
    <button id="86scu"></button>
  • <s id="86scu"></s><button id="86scu"><menu id="86scu"></menu></button>
  • 91社在线播放| the porn av| 国产乱叫456| 一本久道综合色婷婷五月| 日本一区二区三区四区五区六区| 冲田杏梨av在线| 久久国产色av免费观看| 日本免费不卡一区二区| av免费观看网| 日韩精品视频久久| 能在线观看的av| 色哟哟精品视频| 午夜一区二区视频| 97超碰人人爽| 91制片厂免费观看| 9色porny| 精品视频在线观看一区| 777久久久精品一区二区三区| 午夜免费福利小电影| 久草精品在线播放| 福利在线一区二区三区| 天天操精品视频| 六月婷婷激情网| 男人添女人下面高潮视频| 欧美在线观看视频网站| 亚洲综合在线一区二区| 欧美高清中文字幕| 亚洲国产高清av| 日本三日本三级少妇三级66| 无码中文字幕色专区| 在线免费观看视频黄| 深爱五月综合网| 青青艹视频在线| 激情久久综合网| 自慰无码一区二区三区| 777视频在线| 无码人妻精品一区二区蜜桃百度| 亚洲一区二区三区av无码| 成年人视频网站免费观看| 艳母动漫在线观看| 激情视频综合网| 久操网在线观看| 小早川怜子一区二区三区| 日韩精品xxxx| 加勒比海盗1在线观看免费国语版| 国产不卡一区二区视频| 手机在线视频一区| 成年人免费大片| 国产欧美精品aaaaaa片| 亚洲高清免费在线观看| 欧美亚洲日本一区二区三区 | 91大神免费观看| 日本www在线播放| 欧美a级免费视频| www.午夜av| 日本三级黄色网址| 午夜精品在线免费观看| 日韩av新片网| 2018中文字幕第一页| 少妇高潮大叫好爽喷水| 99精品视频网站| 精品国产乱码久久久久久1区二区 91网址在线观看精品 | 日韩少妇内射免费播放18禁裸乳| 捷克做爰xxxⅹ性视频| 毛片毛片毛片毛片毛片毛片毛片毛片毛片 | www.这里只有精品| 日本va中文字幕| 精品视频无码一区二区三区| 少妇高潮毛片色欲ava片| www污在线观看| 成人午夜视频免费观看| 午夜久久久久久久久久久| 91香蕉视频网址| 九一免费在线观看| 国产精品va在线观看无码| 轻点好疼好大好爽视频| 国产一区二区三区小说| 日本一道本久久| 日本xxxxxxx免费视频| 草草草在线视频| 亚洲视频第二页| 天天操精品视频| 成年人视频网站免费| 97视频在线免费| 蜜臀久久99精品久久久酒店新书| 国产淫片av片久久久久久| 热久久精品免费视频| 少妇一级淫免费播放| 91视频成人免费| 每日在线更新av| 中文字幕永久有效| 黄色网络在线观看| 男女午夜激情视频| 尤物网站在线看| www.99热这里只有精品| 日韩一级免费片| 人人妻人人做人人爽| 男女男精品视频站| 久久久天堂国产精品| 国产精品人人妻人人爽人人牛| 校园春色 亚洲色图| 日韩中文字幕亚洲精品欧美| 亚洲中文字幕无码av永久| 国产性生交xxxxx免费| 激情五月五月婷婷| 欧美精品成人网| 国产亚洲精品久久久久久久| 成年网站在线免费观看| 四虎影院一区二区| 国产天堂在线播放| 男女日批视频在线观看| 中文字幕永久有效| 日本成人在线免费视频| 国产欧美精品aaaaaa片| 国产精品嫩草影院8vv8| 成人在线观看黄| 国产内射老熟女aaaa| 国产九九在线视频| 337p粉嫩大胆噜噜噜鲁| 国产精品视频二| 黄色片免费网址| 国产又黄又猛又粗又爽的视频| 黄页网站大全在线观看| 国产免费xxx| 日本女人高潮视频| 三日本三级少妇三级99| 国产成人黄色网址| 成人一区二区三| 国产精品免费成人| 青青草精品视频在线| 91免费国产精品| 免费看黄色a级片| 成人污网站在线观看| 91免费视频黄| 国产精品啪啪啪视频| 善良的小姨在线| 国产麻豆电影在线观看| 日本一级淫片演员| 黄色影视在线观看| 国产精品va在线观看无码| 亚洲天堂第一区| 日本中文字幕在线视频观看| 黄色网在线视频| 黄色成人在线看| 国产精品宾馆在线精品酒店| 黄色免费福利视频| 中文字幕在线观看第三页| 中文字幕视频在线免费观看| 国产欧美激情视频| 免费在线精品视频| 欧美成人高潮一二区在线看| 免费国产a级片| 亚洲激情在线观看视频| 色婷婷一区二区三区在线观看| 日本黄xxxxxxxxx100| 精品无码一区二区三区在线| 欧美在线观看视频网站| а 天堂 在线| 青草视频在线观看视频| 国产精品免费观看久久| 伊人色在线观看| 韩日视频在线观看| 91最新在线观看| 800av在线免费观看| 国产一区亚洲二区三区| 亚洲精品中文字幕乱码无线| 国产va亚洲va在线va| 999精彩视频| 欧洲精品一区二区三区久久| 精品日韩久久久| 成年女人18级毛片毛片免费| 黄色a级片免费| 日韩中文在线字幕| av丝袜天堂网| 999一区二区三区| 在线黄色免费观看| 国产中文字幕视频在线观看| 中文字幕黄色大片| 一级在线免费视频| 热99这里只有精品| 国产免费色视频| 亚洲欧美日韩一级| 欧美日韩第二页| 日韩成人手机在线| 亚洲黄色片免费看| xx欧美撒尿嘘撒尿xx| 男人天堂网视频| 成人午夜精品久久久久久久蜜臀| 中文字幕剧情在线观看| 三年中国国语在线播放免费| 国产日产欧美视频| 国产日本在线播放| 国产资源第一页| 欧美另类videos| 亚洲AV无码成人精品一区| 亚洲视频一二三四| 中文久久久久久| 色婷婷成人在线| 九色porny自拍| 亚洲最大成人在线观看|