<!-- 收货地址开始 -->
<view class="receive_address_row">
<view class="address_btn" wx:if="{{!address}}">
<button type="warn" plain bindtap="handleChooseAddress">获取收货地址</button>
</view>
<view wx:else class="user_info_row">
<view class="user_info">
<view>收货人:{{address.userName}},{{address.telNumber}}</view>
<view>{{address.provinceName+address.cityName+address.countyName+address.detailInfo}}</view>
</view>
<view class="change_address_btn">
<button size="mini" plain>更换地址</button>
</view>
</view>
</view>
<!-- 收货地址结束 -->
<!-- 购物车清单 开始 -->
<view class="cart_content">
<view class="cart_main">
<view class="cart_item" wx:for="{{cart}}" wx:key="id">
<!-- 复选框 开始 -->
<view class="cart_chk_wrap">
<checkbox-group data-id="{{item.id}}" bindchange="handleItemChange">
<checkbox checked="{{item.checked}}"></checkbox>
</checkbox-group>
</view>
<!-- 复选框 结束 -->
<!-- 商品图片 开始 -->
<navigator class="cart_img_wrap" url="/pages/product_detail/index?id={{item.id}}">
<image src="{{baseUrl+'/image/product/'+item.proPic}}" mode="widthFix"></image>
</navigator>
<!-- 商品图片 结束 -->
<!-- 商品信息 开始 -->
<view class="cart_info_wrap">
<navigator url="/pages/product_detail/index?id={{item.id}}">
<view class="goods_name">{{item.name}}</view>
</navigator>
<view class="goods_price_wrap">
<view class="goods_price">
¥{{item.price}}
</view>
<view class="cart_num_tool">
<view class="num_edit">-</view>
<view class="goods_num">{{item.num}}</view>
<view class="num_edit">+</view>
</view>
</view>
</view>
<!-- 商品信息 结束 -->
</view>
</view>
</view>
<!-- 购物车清单 结束 -->
<!-- 底部工具栏 开始 -->
<view class="footer_tool">
<!-- 全选 开始 -->
<view class="all_chk_wrap">
<checkbox-group>
<checkbox checked="{{allChecked}}"><text decode="true"> 全选</text></checkbox>
</checkbox-group>
</view>
<!-- 全选 结束 -->
<!-- 合计 开始 -->
<view class="total_price_wrap">
<view class="total_price">
合计: <text class="total_price_text">¥ {{totalPrice}}</text>
</view>
</view>
<!-- 合计 结束 -->
<!-- 结算 开始 -->
<view class="order_pay_wrap">
结算({{totalNum}})
</view>
<!-- 结算 结束 -->
</view>
<!-- 底部工具栏 结束 -->
//导入request请求工具类
import {getBaseUrl,requestUtil} from '../../utils/requestUtil';
import regeneratorRuntime from '../../lib/runtime/runtime';
Page({
/**
* 页面的初始数据
*/
data: {
address:{},
baseUrl:'',
cart:[],
allChecked:false,
totalPrice:0,
totalNum:0
},
handleChooseAddress(){
wx.chooseAddress({
success:(result)=>{
console.log(result)
wx.setStorageSync('address', result)
},
})
},
/**
* 生命周期函数--监听页面加载
*/
onLoad(options) {
const baseUrl = getBaseUrl();
this.setData({
// swiperList:result.message,
baseUrl
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {
},
/**
* 生命周期函数--监听页面显示
*/
onShow: function() {
console.log("show");
const address=wx.getStorageSync('address');
const cart=wx.getStorageSync('cart')||[];
this.setData({
address
})
this.setCart(cart);
},
//商品选中事件处理
handleItemChange(e){
const {id}=e.currentTarget.dataset;
let {cart}=this.data;
let index=cart.findIndex(v=>v.id===id);
console.log(index)
cart[index].checked=!cart[index].checked;
this.setCart(cart);
},
//设置购物车状态 重新计算 底部工具栏 全选 总价 总数量 重新设置缓存
setCart(cart){
let allChecked=true;
let totalPrice=0;
let totalNum=0;
cart.forEach(v=>{
if(v.checked){
totalPrice+=v.price*v.num;
totalNum+=v.num;
}else{
allChecked=false;
}
})
allChecked=cart.length!=0?allChecked:false;
this.setData({
cart,
allChecked,
totalNum,
totalPrice
})
//cart设置到缓存中
wx.setStorageSync('cart', cart);
}
})
page{
padding-bottom: 70rpx;
}
.receive_address_row{
.address_btn{
padding: 20rpx;
button{
width: 60%;
}
}
.user_info_row{
display: flex;
padding: 20rpx ;
.user_info{
flex: 5;
}
.change_address_btn{
flex: 3;
text-align: right;
button{
border: 1px solid gray;
font-weight: normal;
}
}
}
}
.cart_content{
background-color:
.cart_main{
padding: 2rpx 10rpx 10rpx 10rpx;
.cart_item{
display: flex;
background-color: white;
border-radius: 10px;
margin: 20rpx;
padding-right: 20rpx;
.cart_chk_wrap{
flex: 1;
display: flex;
justify-content: center;
align-items: center;
margin: 20rpx;
}
.cart_img_wrap{
flex: 2;
display: flex;
justify-content: center;
align-items: center;
background-color:
margin: 20rpx;
border-radius: 10px;
image{
width: 80%;
}
}
.cart_info_wrap{
flex: 4 ;
display: flex;
flex-direction: column;
justify-content: space-around;
.goods_name{
font-weight: bolder;
display: -webkit-box;
overflow: hidden;
-webkit-box-orient: vertical;
-webkit-line-clamp: 2;
}
.goods_price_wrap{
display: flex;
justify-content: space-between;
.goods_price{
color: var(--themeColor);
font-size: 34rpx;
}
.cart_num_tool{
display: flex;
.num_edit{
display: flex;
justify-content: center;
align-items: center;
width: 55rpx;
height: 55rpx;
font-weight: bolder;
}
.goods_num{
display: flex;
justify-content: center;
align-items: center;
width: 85rpx;
height: 55rpx;
background-color:
}
}
}
}
}
}
}
.footer_tool{
display: flex;
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 90rpx;
background-color:
border-top: 1px solid
.all_chk_wrap{
flex: 2;
display: flex;
justify-content: center;
align-items: center;
padding-left: 25rpx;
}
.total_price_wrap{
flex: 5;
display: flex;
justify-content: center;
align-items: center;
.total_price{
.total_price_text{
color: var(--themeColor);
font-weight: bolder;
font-size: 34rpx;
}
}
}
.order_pay_wrap{
flex: 3;
display: flex;
justify-content: center;
align-items: center;
background-image: linear-gradient(90deg,
color:
font-size: 32rpx;
font-weight: 600;
border-radius: 20px;
margin: 10rpx ;
}
}