abstract:作业总结:这次练习学得内容比较多,要好好消化。自己看了一次老师的教程之后,也根据自己的需求做了一些功能,也遇到了一些问题,也学习了很多。我的商城模块:<!--pages/my/index.wxml--> <view class="upimg"> <image src="../../img/grzxt_01.jpg&q
作业总结:
这次练习学得内容比较多,要好好消化。
自己看了一次老师的教程之后,也根据自己的需求做了一些功能,也遇到了一些问题,也学习了很多。
我的商城模块:
<!--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:写的不错,有问题可以提交工单。作业加上自己的思路会更好,老师更能清楚你是否学会了