【分享】小程序购物车demo演示实例(全选与不全选、数量加减、价格汇总、删除提示)

 最近由于项目开发需要用到多选、单选、多个数量加减控制,就利用小程序做了个购物车demo,仅供参考。

要点:

加减商品数量(可自定义商品数量)、汇总价格、全选与全不选、删除商品弹窗提示

思路:

一、本地模拟Json数据格式的数组(1.购物车商品id:cid   2.标题title   3.图片地址   4.数量num   5.价格price   6.小计   7.是否选中selected)

二、点击复选框操作 如已经选中的,经点击变成未选中,反之而反之 点击依据index作为标识,而不用cid,方便遍历

三、全选操作 首次点击即为全部选中,再次点击为全不选。

四、bindCartNum加减运算函数,加减运算都使用这一个函数控制,同样依据index作为标识,点完写回num值。

五、删除购物车商品:carts.splice(index, 1); 同样依据index作为标识

wxml布局页面结构:

<!--pages/shopCart/shopCart.wxml-->
<!-- 小程序购物车demo -->

<view class="body">
  <!-- <>购物车列表 -->
  <view class="carts-list">
    <view wx:for="{{carts}}" class="carts-item" data-title="{{item.title}}" data-url="{{item.url}}" bindtap="bindViewTap">
      <!-- //复选框 -->
      <view class="carts-radio">
        <icon wx:if="{{item.selected}}" type="success_circle" size="20" bindtap="bindCheckbox" data-index="{{index}}" />
        <icon wx:else type="circle" size="20" bindtap="bindCheckbox" data-index="{{index}}" />
      </view>
      <!-- //商品信息 -->
      <view class="carts-cnt">
        <image class="carts-image" src="{{item.image}}" mode="aspectFill" />
        <view class="carts-info">
          <view class="carts-title clamp2">{{item.title}}</view>
          <view class="carts-subtitle">
            <text class="carts-price c--f60">¥{{item.price}}</text>
          </view>
        </view>
      </view>
      <!-- //数量加减 -->
      <view class="carts-num">
        <text class="minus {{minusStatuses[index]}}" data-index="{{index}}" data-type="-" bindtap="bindCartNum">-</text>
        <input type="number" data-index="{{index}}" bindinput="bindIptCartNum" value="{{item.num}}" />
        <text class="plus normal" data-index="{{index}}" data-type="+" bindtap="bindCartNum">+</text>
      </view>
      <!-- //删除 -->
      <icon class="carts-del" type="clear" size="16" color="#ccc" data-index="{{index}}" bindtap="bindCartsDel" />
    </view>
  </view>

  <!-- //加载提示 -->
  <block wx:if="{{showLoading}}">
    <view class="page-loading">
      <text class="weui-loading" />
      <text class="loading-text">加载中</text>
    </view>
  </block>

  <view class="carts-footer">
    <view class="bottomfixed">
      <view class="inner">
        <view class="chkAll" bindtap="bindSelectAll">
          <icon wx:if="{{selectedAllStatus}}" type="success_circle" size="20" />
          <icon wx:else type="circle" size="20" />
          <text>全选</text>
        </view>
        <view class="total">合计:¥{{totalPrice}}</view>
        <view wx:if="{{selectedNum != 0}}" class="btn-pay">去结算({{selectedNum}})</view>
        <view wx:else class="btn-pay disabled">去结算({{selectedNum}})</view>
      </view>
    </view>
  </view>

</view>

wxss样式:

/* …… 小程序购物车 {{{ …… */
.c--f60{color: #f60;}
.clamp1, .clamp2, .clamp3{display: -webkit-box!important; overflow: hidden; -webkit-box-orient: vertical;}
.clamp1{-webkit-line-clamp:1;}
.clamp2{-webkit-line-clamp:2;}
.clamp3{-webkit-line-clamp:3;}

.carts-list{padding: 0 20rpx;}
.carts-list .carts-item{border-top: 1rpx solid #e3e3e3; box-sizing: border-box; display: flex; align-items: center; justify-content: space-between; padding: 20rpx 10rpx; width: 100%; position: relative;}
.carts-list .carts-item:nth-child(1){border-top: 0;}
.carts-item .carts-cnt{flex: 1; padding: 0 20rpx;}
.carts-cnt .carts-image{float:left; margin-right: 20rpx; height: 150rpx; width: 150rpx;}
.carts-cnt .carts-info{display: flex; flex-direction: column; justify-content: space-between; min-height: 150rpx;}
.carts-cnt .carts-title{font-size: 28rpx;}
.carts-cnt .carts-subtitle{display: flex; flex-direction: row; font-size: 28rpx;}
.carts-list .carts-item .carts-del{position: absolute; top: 20rpx; right: 10rpx;}

/*数量加减*/
.carts-num{border: 1rpx solid #aaa; border-radius: 5rpx; display: flex; align-items: center; align-self: flex-end; text-align: center; height: 50rpx;}
.carts-num input{border-left: 1rpx solid #aaa; border-right: 1rpx solid #aaa; font-size: 30rpx; font-family: arial; height: 50rpx; line-height: 50rpx; width: 80rpx;}
.carts-num .minus, .carts-num .plus{color: #000; text-align: center; line-height: 50rpx; width: 40rpx;}
.carts-num .minus{font-size: 30rpx;}
.carts-num .minus.disabled{color: #ccc;}
.carts-num .plus{font-size: 34rpx;}

===主张原创设计,拒绝数量、追求质量!
===独特的设计风格,体现企业品牌文化。
===建立营销型网站,全新清新风格,协助每个用户更加高效的工作。
===追求完美是我们一贯的信念。我们重视每一个细节,每个作品都细心雕琢,精确到像素级。

——>>> QQ:282310962    微信:xy190310

时间: 2024-08-17 05:28:13

【分享】小程序购物车demo演示实例(全选与不全选、数量加减、价格汇总、删除提示)的相关文章

为什么你搜不到想要的小程序?【附带最全小程序名单】

想必各位的朋友圈已经被微信小程序刷屏了,然而细心的观众可能发现了一些问题: 1.小程序名字怎么都奇奇怪怪的? 2.怎么也搜不到自己想要的小程序? 比如下面,简直惨不忍睹,如果不是提前知道完整全名,几乎搜不出来. 于是,犀利的网友开始吐槽: 对于一个APP重度使用者来说,小程序意味着一早上起来就解英格玛密码 然而雷锋网(公众号:雷锋网)发现,有的小程序只有通过全文才能搜索出来,然而搜索「京东」却能出来「京东购物」.搜索「滴滴」也能出来「滴滴出行DiDi」.搜索「携程」也能出来「携程酒店机票火车票」

jquery实现文本框数量加减功能的例子分享_jquery

下面是使用jquery实现的代码. 效果图: 源码: 复制代码 代码如下: <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"><html xmlns="http://www.w3.org/1999/xhtml"><head>

微信小程序开发实例详解_其它综合

"小程序"破解IDE + Demo:https://github.com/gavinkwoe/weapp-ide-crack.git 资源汇总:https://github.com/Aufree/awesome-wechat-weapp 官方简易教程·MINA:http://wxopen.notedown.cn/ Hello小程序 - 非官方:http://www.helloxcx.com 微信应用号开发教程:https://my.oschina.net/wwnick/blog/750

微信小程序第一手实践分享

本文讲的是微信小程序第一手实践分享,今天是微信小程序正式上线的第一天,从小程序公布.内测到今天,市面上对于小程序众说纷纭,小程序的到来给我们(微信开发)带来了什么,仅仅是又多了一种推广渠道吗?又或者是真的像外界说的那样它将取代APP?今天就和大家分享我个人对小程序的理解以及开发过程中的一些体会. 一.如何理解小程序 张小龙是基于他对未来服务场景--所见即所得的信息交互过程提出的小程序,他认为微信新形式的服务不应当只是停留在原有公众号订阅.推送的基础上:而应当更类似于APP支持一些扩展开发的能力但

微信小程序分享支持自定义封面图

微信小程序又发布更新了,刚好昨天支付宝也发布小程序,不能让它抢了风头的节奏.微信小程序主要更新如下:"小程序分享支持自定义封面图,公众号及小程序客服可发送小程序卡片.同时,我们还开放了获取发票抬头,指纹识别等更多能力." 1.小程序可自定义分享配图 为帮助开发者给用户呈现最合适的小程序分享效果,我们开放了自定义分享卡片配图的能力.未定义分享卡片配图的,仍将由微信截屏,作为小程序分享卡片配图. 2.客服消息支持发送小程序卡片 为便于用户使用小程序服务,客服接口能力升级: 公众号及小程序客

移动开发之微信小程序——资料集合

本文转载自:知乎 有需要下载的客官可可以点击知乎去下载相关资料 一:官方地址集合:1:官方工具:https://mp.weixin.qq.com/debug/wxadoc/dev/devtools/download.html?t=14764346784612:简易教程:https://mp.weixin.qq.com/debug/wxadoc/dev/?t=14764346775993:设计指南:https://mp.weixin.qq.com/debug/wxadoc/design/index

微信小程序学习之初探小程序_相关技巧

前言 9月21日,传言已久的微信应用号正式以"微信公众平台小程序"的名义发布,依然采取了内测制度,目前只有少部分开发者可使用."微信之父"张小龙在朋友圈介绍,这种小程序是一种不需要下载安装即可使用的应用,用户扫一扫或者搜一下即可打开应用,对用户来说应用触手可及,对微信来说体现了用完即走的理念.应用号出来之后,有人说微信这次要颠覆AppStore了,开发者直接基于微信开发小程序就可以了,不用开发什么App了.更有人说微信就是一个操作系统,真的如此吗?不管怎样,我们下面

微信公众平台小程序新增扫一扫等能力

近期,微信公众平台对小程序进行了公测,为了让商户开发出功能更加丰富的小程序,现新增相关能力,具体如下:新增分享.模板消息.客服消息.扫一扫.带参数二维码(当前仅限开发者和体验者使用)等功能:新增 4 个新 API, 2个新组件:拓展了 10 个组件属性,新增 6 个组件事件:修复数十个 API 以及组件 bug,优化部分交互体验:开发者工具增加新 API 及组件的调试支持:开发者工具增加微信支付的调试支持 1.分享 可以分享小程序的任何一个页面给好友或群聊. 2.模板消息 商户可以将模板消息发送

上线两个月,微信小程序给那些用身体支持它的人带来了什么?

刚过了尝鲜期就被唱衰,究竟是小程序的尴尬还是围观群众的尴尬? 1 月 9 日,微信小程序上线.从上线之初的刷爆朋友圈到被尝鲜用户打入冷宫,从一夜之间小程序微信讨论群暴增到群活跃度明显下降,似乎创意不是很多,也没找到盈利方式,成为了大家对小程序的普遍感受. 据艾瑞咨询 2 月 10 日发布的<2017 年中国网民针对微信小程序使用与开发状况调查报告>,有 42.1% 的用户添加了 6-10 个小程序,体验后选择继续使用的用户占调查用户的 11.5% ,选择继续开发小程序的应用开发者占 9.2%,