微商城购物车订车模块作业总结

Original 2018-12-26 11:40:23 297
abstract:作业总结:这次练习学得内容比较多,要好好消化。自己看了一次老师的教程之后,也根据自己的需求做了一些功能,也遇到了一些问题,也学习了很多。我的商城模块:<!--pages/my/index.wxml--> <view class="upimg"> <image src="../../img/grzxt_01.jpg&q

作业总结:

  1. 这次练习学得内容比较多,要好好消化。

  2. 自己看了一次老师的教程之后,也根据自己的需求做了一些功能,也遇到了一些问题,也学习了很多。

我的商城模块:

<!--pages/my/index.wxml-->
<view class="upimg">

<image src="../../img/grzxt_01.jpg" class="img"></image>
<view wx:if="{{haslogin==true}}" class="icon"><image class="img2" src="{{userinfo.avatarUrl}}"></image></view>
<view wx:if="{{haslogin==true}}" class="name">{{userinfo.nickName}}</view>

</view>
<button
open-type="getUserInfo"
bindgetuserinfo="getUserInfo"
wx:if="{{haslogin==false}}"
>
授权登录
</button>
<!-- 图标 -->
<view class="lbox">
<view class="ibox" bindtap="payInfo" data-id="0"><image class="limg" src="../../img/grzxt_07.png"></image><view class="txt">未支付</view></view>
<view class="ibox" bindtap="payInfo" data-id="1"><image class="limg" src="../../img/grzxt_09.png"></image><view class="txt">已支付</view></view>
<view class="ibox" bindtap="payInfo" data-id="2"><image class="limg" src="../../img/grzxt_12.png"></image><view class="txt">已完成</view></view>
</view>

<!-- 地址信息 -->
<view class="obox" bindtap="getAdress">
<image class="aimg" src="../../img/grzxtp_06.png"/>
<view class="atxt">我的地址</view>
<image class="bimg" src="../../img/xzrqt_03.png"/>

</view>
// pages/my/index.js
var com=require("../../utils/util.js");
const app = getApp();
Page({

/**
   * 页面的初始数据
   */
data: {
userinfo:"",
haslogin:false
},

/**
   * 生命周期函数--监听页面加载
   */
onLoad: function (options) {

},

getUserInfo:function(e){
console.log(e);
this.setData({
userinfo:e.detail.userInfo
});
com.login('Api/Home/login',{
nickname: e.detail.userInfo.nickName,
imgs: e.detail.userInfo.avatarUrl,
gender: e.detail.userInfo.gender,
},'setcon',this);
},
setcon:function(e){
console.log('222');
console.log(e);
this.setData({
haslogin:true
})
app.globalData.userInfo=e;
},
payInfo:function(e){
if (app.globalData.userInfo){
wx.navigateTo({
url: 'order?id='+e.currentTarget.dataset.id,
});}else{
wx.showToast({
title: '请先登录',
icon:'none',
duration:5000,
})
}
},
getAdress:function(){
if (app.globalData.userInfo) {
wx.chooseAddress({
success(res) {
console.log(res)
}
});
}else{
wx.showToast({
title: '请先登录',
icon: 'none',
duration: 5000,
})
}
}
})

购物车模块

<!--pages/shop/list.wxml-->
<scroll-view class="scrolist" scroll-y="ture">

<checkbox-group bindchange="checkboxChange">
<block wx:for="{{lists}}" wx:key="" wx:for-index="dname">
<view class="lbox">
<checkbox class="cbox" checked="{{item.checked}}" value="{{dname}}"></checkbox>
<image class="img" src="{{item.shop.imgs}}"/>
<view class="txt">
<view class="tit">{{item.shop.title}}</view>
<view class="pri">${{item.countpri}}.00</view>
</view>
<view class="count">
<button class="btn" bindtap="neqCount" data-type="0" data-ord="{{dname}}">-</button>
<input class="cva" value='  {{item.count}}'></input>
<button class="btn" bindtap="neqCount" data-type="1" data-ord="{{dname}}">+</button>    
</view>
</view>
</block>
</checkbox-group>

</scroll-view>
<!-- 统计栏 -->
<view class="sum">
<checkbox-group class="lcbox" bindchange="selectedall">
<checkbox class="cbox2" value='1' checked='{{allselected}}' />全选
</checkbox-group>
<view class="sumpri">¥{{totalpri}}</view>
<view class="submit" bindtap="gopay">结算</view>
</view>
<!-- <view bindtap="test">测试</view> -->
// pages/shop/list.js
var com=require("../../utils/util.js");
const app = getApp();
var clist=[];
var all=0;
var value=[];
Page({

/**
   * 页面的初始数据
   */
data: {
lists:[],
price:0,
allselected:false,
totalpri:0
},

/**
   * 生命周期函数--监听页面加载
   */
onLoad: function (options) {
// console.log(app.globalData.userInfo);
},

/**
   * 生命周期函数--监听页面显示app.globalData.userInfo.uid
   */
onShow: function () {
com.post('Api/Home/car_list',{uid:1},'setcon',this)
},
setcon:function(e){
clist=e.list;
this.singlecountpri(clist)
},
checkboxChange:function(e){
// console.log(e);
// console.log(e.detail.value);
value = e.detail.value;
var arr=e.detail.value;
this.singlecountpri(clist,arr);
if (e.detail.value.length == clist.length){
this.setData({
allselected:true
})
}else{
this.setData({
allselected: false
})
}
},

singlecountpri:function(e,arr){
var allCount=0;
for (var i = 0; i <clist.length; i++) {
e[i].countpri = e[i].count * e[i].shop.price;
}
if(arr){
arr.forEach(function (v, i) {
allCount +=e[v].countpri
});
this.setData({
totalpri: allCount
});
return;
}
// console.log(e);
this.setData({
lists: e
});
},
neqCount:function(e){
// console.log(e.currentTarget.dataset);
var reslist = clist[e.currentTarget.dataset.ord].count;
// console.log(reslist);
if (e.currentTarget.dataset.type==0){
if(reslist==0){
reslist==0
}else{
reslist -= 1;
}
}else{
reslist += 1;
}
clist[e.currentTarget.dataset.ord].count=reslist;
this.singlecountpri(clist);
},
selectedall:function(e){
all+=1;
console.log(all);
if (all==1){
for(var j=0;j<clist.length;j++){
clist[j].checked='true',
value=[0,1,2,3,4,5,6]
}
}else{
for (var j = 0; j <clist.length; j++) {
clist[j].checked = '',
value = [];
}
// all=0;
}
// console.log(value);
// console.log(clist);
var res =[];
for(var d=0;d<clist.length;d++){
res[d]=d;
}
// console.log(res);
if(all==1){
this.singlecountpri(clist,res);
}else{
res=[]
this.singlecountpri(clist, res);
all = 0;
}
this.setData({
lists:clist
})
},
test:function(){
wx.switchTab({    //跳转到tabBar页面,并关闭其他所有tabBar页面
url: "/pages/my/index"
})
},
gopay:function(){
// com.post('Api/Home/car_count', { id: 1, count: 5 }, 'setcc', this);
var plist=this.data.lists;
var that=this;
var values="";
var valuess='';
// console.log(plist);
if(value.length!==0){
value.forEach(function(v,i){
values = values +plist[v].id +',',
valuess=values.substr(0,values.length-1),
console.log(valuess),
com.post('Api/Home/car_count',{id:plist[v].id,count:plist[v].count},'setcc',that)
});
wx.navigateTo({
url: 'order?id=' + valuess,
});
}else{
wx.showToast({
title: '没有选中任何产品',
icon: 'none',
duration: 2000
})
}
},

setcc:function(e){
console.log(e);
}

})

订单模块

<!--pages/shop/order.wxml-->
<view class="btm">







<!-- 地址 -->
<view class="adress">
<view class="maintap" wx:if="{{address==0}}"  bindtap="setAddress">添加收货地址</view>
<view class="maintap" wx:if="{{address.userName}}"  bindtap="setAddress">切换收货地址</view>
<view class="atxt">姓名:{{address.userName}}</view>
<view class="atxt">联系方式:{{address.telNumber}}</view>
<view class="atxt" style="height:100rpx;">详细地址:{{address.provinceName}} {{address.cityName}} {{address.detailInfo}}</view>

</view>
<!-- <待支付列表> -->
<scroll-view class="scrolist" scroll-y="true">
<block wx:for="{{orderlist}}" wx:key="">
<view class="lbox">
<image class="img" src="{{item.imgs}}"/>
<view class="txt">
<view class="tit">{{item.title}}</view>
<view class="pri">${{item.price}}  x{{item.car.count}}</view>
</view>
<view class="count">
<view class="sumpri">${{item.singlecount}}.00</view>
</view>
</view>
</block>
</scroll-view>
<view class="area">
<textarea class="txtarea" rows="3" placeholder="备注:50字以内(选填)" bindinput="desc"></textarea>
</view>

<!-- 统计栏 -->
<view class="sum">
<view class="sumpri">总金额:¥{{totalprice}}</view>
<view class="submit">结算</view>
</view>

</view>
// pages/shop/order.js
var com = require("../../utils/util.js");
const app = getApp();
Page({

/**
   * 页面的初始数据
   */
data: {
address: 0,
orderlist:[],
totalprice:0,
},

/**
   * 生命周期函数--监听页面加载
   */
onLoad: function (options) {
console.log(options);
com.post('Api/Home/car_order',{id:options.id},'getlist',this)
},

getlist:function(e){
console.log(e);
var list=e.car;
for(var i=0;i<list.length;i++){
list[i].singlecount = list[i].car.count * list[i].price;
}
console.log(list);
this.setData({
orderlist:list,
totalprice:e.total_price,

})
},

setAddress: function () {
var self = this;
wx.chooseAddress({
success: function (res) {
console.log(res);
self.setData({
address: res
});
}
})
},

desc: function (e) {
console.log(e.detail.value);
}
})


Correcting teacher:查无此人Correction time:2018-12-26 12:32:09
Teacher's summary:写的不错,有问题可以提交工单。作业加上自己的思路会更好,老师更能清楚你是否学会了

Release Notes

Popular Entries