700字范文,内容丰富有趣,生活中的好帮手!
700字范文 > python flask实战订餐系统微信小程序-54删除购物车以及下单页面跳转功能实现

python flask实战订餐系统微信小程序-54删除购物车以及下单页面跳转功能实现

时间:2022-10-25 15:48:43

相关推荐

python flask实战订餐系统微信小程序-54删除购物车以及下单页面跳转功能实现

B站配套视频教程观看

动态计算价格

index.js

,totalPrice: function () {var list = this.data.list;var totalPrice = 0.00;for (var i = 0; i < list.length; i++) {if ( !list[i].active) {continue;}totalPrice = totalPrice + parseFloat( list[i].price ) * list[i].number;}return totalPrice;},

购物车数量的添加(写入到后端)

定义setCart方法实现数据的统一提交:

,setCart:function( food_id, number ){var that = this;var data = {"id": food_id,"number": number};wx.request({url: app.buildUrl("/cart/set"),header: app.getRequestHeader(),method: 'POST',data: data,success: function (res) {}});}

调用setCart方法

//加数量jiaBtnTap: function (e) {var that = this;var index = e.currentTarget.dataset.index;var list = that.data.list;list[parseInt(index)].number++;that.setPageData(that.getSaveHide(), that.totalPrice(), that.allSelect(), that.noSelect(), list);this.setCart( list[parseInt(index)].food_id,list[parseInt(index)].number );},//减数量jianBtnTap: function (e) {var index = e.currentTarget.dataset.index;var list = this.data.list;if (list[parseInt(index)].number > 1) {list[parseInt(index)].number--;this.setPageData(this.getSaveHide(), this.totalPrice(), this.allSelect(), this.noSelect(), list);this.setCart( list[parseInt(index)].food_id,list[parseInt(index)].number );}},

调用成功后member_cart数据库中的购物车数量就会变化了

购物车删除功能

pages/cart/index.js添加deleteSelected函数处理

//选中删除的数据deleteSelected: function () {var list = this.data.list;var goods = [];list = list.filter(function ( item ) {if( item.active ){goods.push( {"id":item.food_id} )}return !item.active;});this.setPageData( this.getSaveHide(), this.totalPrice(), this.allSelect(), this.noSelect(), list);//发送请求到后台删除数据wx.request({url: app.buildUrl("/cart/del"),header: app.getRequestHeader(),method: 'POST',data: {goods: JSON.stringify( goods )},success: function (res) {}});},

后端添加/cart/del请求,处理后台购物车数据的删除

Cart.py添加

from common.libs.member.CartService import CartServiceimport json@route_api.route("/cart/del", methods=["POST"])def delCart():resp = {'code': 200, 'msg': '添加购物车成功~', 'data': {}}req = request.valuesparams_goods = req['goods'] if 'goods' in req else Noneitems = []if params_goods:items = json.loads(params_goods)if not items or len( items ) < 1:return jsonify(resp)member_info = g.member_infoif not member_info:resp['code'] = -1resp['msg'] = "删除购物车失败-1~~"return jsonify(resp)ret = CartService.deleteItem( member_id = member_info.id, items = items )if not ret:resp['code'] = -1resp['msg'] = "删除购物车失败-2~~"return jsonify(resp)return jsonify(resp)

CartService.py添加deleteItem删除购物车数据

# -*- coding: utf-8 -*-import hashlib,requests,random,string,jsonfrom application import app,dbfrom common.models.member.MemberCart import MemberCartfrom common.libs.Helper import getCurrentDateclass CartService():@staticmethoddef deleteItem( member_id = 0,items = None ):if member_id < 1 or not items:return Falsefor item in items:MemberCart.query.filter_by( food_id = item['id'],member_id = member_id ).delete()mit()return True

去结算下单功能的实现

购物车里去结算商品跳转

pages/cart/index.js添加去结算的跳转,跳转到下单页面后,就需要展示传递过去的json数据

,//去结算toPayOrder: function () {var data = {type:"cart",goods: []};var list = this.data.list;for (var i = 0; i < list.length; i++) {if ( !list[i].active) {continue;}data['goods'].push({"id": list[i].food_id,"price": list[i].price,"number": list[i].number});}wx.navigateTo({url: "/pages/order/index?data=" + JSON.stringify(data)});},

pages/food/info.js添加立即购买下单页面跳转

,buyNow: function () {var data = {goods: [{"id": this.data.info.id,"price": this.data.info.price,"number": this.data.buyNumber}]};this.setData({hideShopPopup: true});wx.navigateTo({url: "/pages/order/index?data=" + JSON.stringify(data)});},

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。