加入购物车的功能wepy
1.先有一个加入购物车的按钮
              <view wx:if="{{(detaildata.boughtNum < detaildata.buy_limit) && detaildata.stock_num > 0}}">
                    <button class="nav-detail add-car" open-type="getUserInfo"  bindgetuserinfo="addcar" plain="true">加入购物车</button>
                    <button open-type="getUserInfo" class="nav-detail go-buy" bindgetuserinfo="toBuy" plain="true">马上购买</button>
                </view>
2.点击之后的操作
     async addcar(){
            var self = this;
            let result = await api.shoppingCardList({}).then(res=>res)
            if(result.data.code == 200){
                self.carlist = result.data.data.onsale
                self.carlistnum = result.data.data.onsale.length > 0?String(result.data.data.onsale.length):0
                self.$apply();
                if(self.carlist.length > 0){  //当购物车列表有数据,判断购物车是否有该商品
                    for(var i=0;i < self.carlist.length;i++){
                        if(self.carlist[i].prdId == self.prdId){ //当购物车已有该商品
                            if(parseInt(self.carlist[i].buy_num) >= self.detaildata.buy_limit_remain || parseInt(self.carlist[i].buy_num) >= self.detaildata.buy_limit){
                                //判断购物车该商品的购买量是否已达上限
                                self.$parent.toasttips('你已达到每人限购的数量', 'none')
                                return;
                            }
                        }
                    }
                }
                // 没达到上限,可继续购买
                self.addincar();
            }else if(result.data.code == 204){
                // 无记录
                self.carlist = []
                self.$apply();
                self.addincar();
            }else if(result.data.code == 401){
                // 存储触发登录的来源
                wx.setStorageSync('prodetailsource','addbuy')
                // 未登录
                self.$broadcast('userLogin')
            }
        }
3.添加到购物车的一个功能
  // 添加购物车
        addincar(){
            var self = this;
            const add2ShoppingCard = api.add2ShoppingCard(self.prdId,1);
                add2ShoppingCard.then((result) => {
                    if(result.data.code == 200){
                        this.$parent.globalData.is_shoppingCard_update = true;
                        self.$parent.toasttips('添加成功,在购物车等亲', 'none')
                        self.getcarlist()
                    }else if(result.data.code == 401){
                        // 存储触发登录的来源
                        wx.setStorageSync('prodetailsource','addbuy')
                        // 未登录
                        self.$broadcast('userLogin')
                    }
                }).catch((err) => {
                });
        }
页面效果可以搜 放心购小程序
加入购物车的功能wepy的更多相关文章
- 原生JS实现购物车结算功能代码+zepto版
		
html <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3 ...
 - python实现简单的循环购物车小功能
		
python实现简单的循环购物车小功能 # -*- coding: utf-8 -*- __author__ = 'hujianli' shopping = [ ("iphone6s&quo ...
 - python3 练习题(用函数完成登录注册以及购物车的功能)
		
''' 用函数完成登录注册以及购物车的功能 作业需求: 1,启动程序,用户可选择四个选项:登录,注册,购物,退出. 2,用户注册,用户名不能重复,注册成功之后,用户名密码记录到文件中. 3,用户登录, ...
 - JS实现购物车动态功能
		
整理了一下当时学js写的一些案例,觉得购物车功能在一般网站比较常见且基础,现在把它整理出来,需要的小伙伴可以参考一下. 该案例购物车主要功能如下: 1. 商品单选.全选.反选功能 2. 商品添加.删除 ...
 - spring boot:用rocketmq消息订阅实现删除购物车商品功能(spring boot 2.3.3)
		
一,为什么要使用消息队列实现删除购物车商品功能? 消息队列主要用来处理不需要立刻返回结果的业务, 常见的例子: 用户在下单后,要清除原购物车中的商品, 这个处理过程不需要马上实现也不需要返回结果给用户 ...
 - 非node环境下的vue.js  实现简单的购物车计算功能  样式请无视
		
都说vue的双向数据绑定好用,自己用了下,感觉做购物车没想象中好用.自己的实现如下: <!DOCTYPE html> <html lang="en"> &l ...
 - 【SSH网上商城项目实战17】购物车基本功能的实现
		
转自:https://blog.csdn.net/eson_15/article/details/51418350 上一节我们将商品的详细页面做完了,并使用了Hibernate的二级缓存加载详细页面来 ...
 - jq实现简单购物车增删功能
		
https://www.cnblogs.com/sandraryan/ jq实现购物车功能 点击+- 增减数量,计算价格: 点击删除,删除当前行(商品) 点击- ,减到0 询问是否删除商品 点击全选 ...
 - JavaWeb学习记录(十四)——商城购物之字符串拼接实现最近浏览商品和购物车的功能
		
一.字符串拼接的工具类 package blank.util; import java.util.Iterator;import java.util.Map;import java.util.Set; ...
 
随机推荐
- 【kubernetes】通过rancher2部署k8s
			
1. K8S相关介绍 十分钟带你理解Kubernetes核心概念 2. 部署rancher # 更新操作系统软件包 yum update -y # 删除历史容器及数据 docker rm -f $(d ...
 - Spring Boot 实战 —— MyBatis(注解版)使用方法
			
原文链接: Spring Boot 实战 -- MyBatis(注解版)使用方法 简介 MyBatis 官网 是这么介绍它自己的: MyBatis 是一款优秀的持久层框架,它支持定制化 SQL.存储过 ...
 - “http”和“https”的区别是什么?优缺点是什么?
			
1. http 的URL 以http:// 开头,https以https:// 开头. 2. http 标准端口是80 ,https是443. 3.https 协议需要到ca申请证书,http不需要. ...
 - Java 之 方法引用
			
方法引用 一.冗余的Lambda场景 来看一个简单的函数式接口以应用Lambda表达式: @FunctionalInterface public interface Printable { void ...
 - iOS ANE植入流程
			
来源:http://www.adsmogo.com/help/iosANE 一.iOS ANE植入流程 Step 1:创建Flex工程 1.1 启动Flash Builder 4.6.0, 选择“Fi ...
 - JSP页面嵌套c:forEach
			
做java web项目有时候会需要在页面使用嵌套<c:forEach>遍历一个List,但是嵌套很容易忽略一些东西导致出错 后台代码: List<Map<String, Obj ...
 - Needham-Schroeder Scyther工具形式化过程
			
1.Needham-Schroeder Public key Protocol 协议的通信认证的过程 顺序图的 1. A-> S : A, B 2. S->A: {Ks, ...
 - 批处理引擎MapReduce编程模型
			
批处理引擎MapReduce编程模型 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. MapReduce是一个经典的分布式批处理计算引擎,被广泛应用于搜索引擎索引构建,大规模数据处理 ...
 - python处理yml
			
#pip install pyyamlimport yaml #yaml文件转成字典 with open('a.yml','rb')as f: res = yaml.load(f,Loader=yam ...
 - 1211  BBS后台管理文章添加
			
目录 昨日内容回顾 侧边栏inclusion_tag inclusion_tag的响应 使用 自定义inclusion_tag,标签,过滤器 文章的点赞点踩 前端 后端 校验规则 文章的评论功能 1. ...