微信小程序开发初试实例结算小助手

微信小程序实战 购物车功能 今天在分享个微信小程序实战 购物车功能案例。今天我们就分享这样的小教程。希望对大家有所帮助 立即下载

本着自己参加过学校组织的微信小程序云开发培训,就抱着尝试的心理去参加今年的高校微信小程序开发大赛,基本上应该算是去当炮灰ㄟ( ▔, ▔ )ㄏ。自己一个人组队,做了个结算小助手,就是使用手机实现类似超市中扫码枪的功能,扫描商品条形码或者二维码进行结算。

小程序码

大家可以扫一扫试一试,好像有个缺陷是那个没有让用户要先授权再进入,但是功能基本上都实现成功,一些细节处理不是很好,见谅。
在这里插入图片描述

界面展示:

在这里插入图片描述

创作背景

手机已经融入我们的生活,生活中越来越多的问题都能通过手机来解决。由于自己家里是开百货店的,商品结算只能通过计算器或者口算进行结算,如果购买扫码枪又需要显示屏等配置,会消耗一定的费用。自己想到了设计一个小程序实现类似超市中扫码枪的功能,即通过连续扫描商品的条形码或者二维码进行结算,这样既能省下购买扫码枪等配置的费用,又能实现结算的功能。

小程序功能

结算小助手主要有五个功能,分别为扫描商品结算、导入商品信息、查询商品信息、修改商品信息、收入历史记录。其中扫描商品结算、导入商品信息、收入历史记录为主要功能,查询商品信息、修改商品信息为辅助功能。

小程序实现

结算小助手实现主要步骤:

  1. 通过导入商品信息的功能,将所拥有的商品条形码/二维码、商品名称和商品价格存入到云数据库;
  2. 通过扫描商品结算的功能,连续扫描客户购买的商品的条形码,然后点击查看详细账单,检测扫描商品是否有遗漏或者重复等问题,如果出现问题,可以通过数量旁边的“+”、“-”进行修改。如果无误,即可点击结算。(个人想法是点击结算后能够弹出自己(即店长)的收款码,让客户进行扫码付款,付款成功后将账单详细信息存入云数据库。但是还未实现前半部分内容,只是实现点击结算按钮将账单的内容存入云数据库。)
  3. 通过收入历史记录的功能,可以查看某时间收入总额,点击相应的部分,可以查看完整的账单信息。
  4. 通过查询商品信息和修改商品信息的功能,实现对商品信息的查找和修改,即这两个功能为辅助功能。

小程序开发方案(想看源代码,直接看这一项)

只把一些关键代码给贴上来了,需要代码交流的可以联系或者评论区评论。
开发模式:小程序
后端服务:小程序·云开发(主要用到了云数据库来存储货物信息。)
主要功能实现:
1.扫描条形码区
a. 扫描动画效果:
通过onShow页面显示调用,通过js定义move函数实现一根线的上下移动,从而达到扫描的效果。

  onShow(){
    this.move()
  },

  move(){
    var that = this;
    // 控制向上还是向下移动
      let m = true
      setInterval(function () {
        if (m) {
          animation.translateY(235).step({ duration: 3000 })
          m = !m;
        } else {
          animation.translateY(0).step({ duration: 3000 })
          m = !m;
        }
        that.setData({
          animation: animation.export()
        })
      }.bind(this), 3000)
  },

b. 连续扫描获取条形码的数据:
通过定义camera组件自定义扫码功能(bindscancode=‘takecode’),js定义takecode函数,通过setTimeout实现连续扫描。

  takeCode(e) {
    if (this.data.scanFunctionIsUseAble){
      this.setData({
        scanFunctionIsUseAble: false,
        code:e.detail.result,
      })
      var fileCode = e.detail.result;
      setTimeout(()=>{this.setData({scanFunctionIsUseAble:true,})},2000)
    }
  },

c. 扫码条形码区前端:

<camera class='scan-camera' mode="scanCode" binderror="error" bindscancode='takeCode'>
      <cover-image class='cover-corner cover-left-top' src='/images/left-top.png'></cover-image>
      <cover-image class='cover-corner cover-right-top' src='/images/right-top.png'></cover-image>
      <cover-image class='cover-corner cover-left-bottom' src='/images/left-bottom.png'></cover-image>
      <cover-image class='cover-corner cover-right-bottom' src='/images/right-bottom.png'></cover-image>  
      <cover-view class='scan-animation' animation="{{animation}}"></cover-view>
</camera>

2.数据在云数据库操作:
在app.js完成相关参数填写,使得该小程序云开发调用到自己需要的云环境资源。
云开发数据库有两个集合,一个wares存放商品的信息;一个sum存放历史收入总额、账单详细信息等。两个权限设置都是仅创建者可读写。
在这里插入图片描述
其中涉及集合的功能有:
a. 通过button组件bindtap绑定addData事件,将扫描商品的条形码、输入的商品名称、价格信息存入wares集合。

  addData:function(){
    db.collection("wares").add({
      data: {
        w_name:this.data.name,
        w_price:this.data.price,
        w_code:this.data.code,
      },
    }).then(res => {
      wx.showToast({
        title: '保存成功',
        icon: 'success',
        duration: 1000
      })
    }).catch(res => {
      wx.showToast({
        title: '保存失败!',
        icon: 'none',
        duration: 1000
      })
    })}

b. 通过button组件bindtap绑定getinfo事件,将输入商品名称与wares集合进行比较,如果相同则提取出条形码/二维码、商品名称、商品价格。

  getinfo:function(e){
    db.collection("wares").where({
      w_name:e.detail.value
    }).get().then(res=>{
      wx.showToast({
        title: '商品信息如下',
        icon: 'loading',
        duration: 1000
      })
      this.setData({
        code:res.data[0].w_code,
        name:res.data[0].w_name,
        price:res.data[0].w_price,
      });
    }).catch(res => {
      wx.showToast({
        title: '无该商品!',
        icon: 'none',
        duration: 1000
      })
    })
  },

c. 通过button组件bindtap绑定correctData事件,将原来商品的信息根据修改后的商品条形码/二维码信息、商品名称、商品价格进行更新。

  correctData:function(){
    //如果未修改则复原原来的名字
    if(this.data.name=="")
    this.setData({name:this.data.old_name})
    //如果未修改则复原原来的价格
    if(this.data.price=="")
    this.setData({price:this.data.old_price})
    db.collection("wares").where({
      w_name:this.data.old_name
    }).update({
      data:{
        w_code:this.data.code,
        w_name:this.data.name,
        w_price:this.data.price
      }
    }).then(res => {
      console.log(this.data.name)
      wx.showToast({
        title: '修改成功',
        icon: 'success',
        duration: 1000
      })
    }).catch(res => {
      wx.showToast({
        title: '修改失败',
        icon: 'none',
        duration: 1000
      })
    })
  },

d. 通过button组件bindtap绑定sumup事件,将结算账单中全部商品名称、价格、数量、小计以及总计、日期信息存入sum集合:

  sumup:function(){
    db.collection("sum").add({
      data: {
        namelist:this.data.namelist,
        pricelist:this.data.pricelist,
        numlist:this.data.nlist,
        subsumlist:this.data.subsumlist,
        sum:this.data.sum,
        time:this.data.time,
      },
    }).then(res => {
      wx.showToast({
        title: '结算成功',
        icon: 'success',
        duration: 1000
      })
    }).catch(res => {
      wx.showToast({
        title: '结算失败!',
        icon: 'none',
        duration: 1000
      })
    })
  },

e. 通过bindtap绑定lookUp事件,根据日期对在sum集合进行匹对,将该日期结算账单中商品名称、价格、数量、小计以及总计、日期信息提取出来:

  db.collection("sum").where({
      time:this.data.time
    }).get().then(res=>{
      this.setData({
        namelist:res.data[0].namelist,
        pricelist:res.data[0].pricelist,
        numlist:res.data[0].numlist,
        subsumlist:res.data[0].subsumlist,
        sum:res.data[0].sum,
      });
    }).catch(res => {
      wx.showToast({
        title: '账单不存在!',
        icon: 'none',
        duration: 1000
      })
    })

3.各个页面的前端:
主要由index(主页面)、calculateData(扫描结算页面)、bill(详细账单页面)、addData(导入商品信息页面)、findData(查找商品信息页面)、correctData(修改商品信息页面)、history(收入历史记录页面)、bill2(收入历史中详细账单)组成,其中内容基本上就由组件和wxss形成良好的界面、js做后端数据处理。

微信小程序-记账统计小程序项目源码-原生开发框架-含效果截图示例.zip 微信小程序,作为腾讯倾力打造的一款轻量级应用,凭借其独特的优势在移动开发领域崭露头角。它无需下载安装,用户扫一扫或搜一下即可打开应用,体验上更加便捷高效。小程序不仅拥有近似原生App的用户体验,还完美支持微信生态内的社交功能,如微信支付、公众号关联等,为用户提供一站式服务。 微信小程序-项目源码-原生开发框架 源码特色: 原生体验:基于微信原生框架开发,流畅不卡顿。 功能丰富:集成微信支付、分享等核心功能,满足多种业务需求。 易上手:提供详细文档和示例,快速入门。 可定制:源码开放,可根据项目需求进行定制开发。 源码下载:即刻获取这份强大而灵活的微信小程序源码资源,开启您的微信小程序之旅! 立即下载

相关推荐

nginx配置视频流加密防盗链(一)安装nginx插件

前段时间研究了一下视频流的简单加密防盗链,参考了很多文章,最后总算搞出来了。现在自己总结了一下。

u013294657的博客 1864

基于springboot在线闪送外卖订餐点餐管理系统+vue(源码+lw+部署文档+讲解等)

💗博主介绍:✌全网粉丝10W+,优快云特邀作者、博客专家、优快云新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗👇🏻 精彩专栏 推荐订阅👇🏻🌟文末获取源码+数据库🌟。

全网粉丝10W+、全栈领域优质创作者、掘金、阿里云等社区博客专家、专注于全栈领域和毕业项目实战 1392

SAP S4 MM模块自动记账全流程解析:从评估范围到科目分组的实战配置

本文深入解析SAP S4 MM模块自动记账的全流程,从核心概念评估范围与评估控制入手,详细阐述了评估类、科目分组等关键配置的逻辑关系。通过实战配置步骤,指导如何建立从物料移动(如收货、发料)到自动生成准确财务凭证的完整体系,确保库存价值与总账实时同步,为企业构建可靠的财务业务一体化基石。

weixin_29313547的博客 424

进销存小程序源码

大等于jdk1.8,大于mysql5.5,idea(eclipse),微信开发者工具。代码注释齐全,没有多余代码,适合学习(毕设),二次开发,包含论文技术相关文档。springboot mybatis 小程序。统计分析:统计采购和销售数据。客户管理:客户信息增删改查。分类管理:产品分类增删改查。供应商管理:供应商增删改查。产品管理:产品增删改查。采购管理:产品采购数据。销售管理:产品销售数据。

wfuhui的博客 573

MatterPort3D 数据集下载

【代码】MatterPort3D 数据集下载。

qq_44106838的博客 6785

从零构建智能ai语音助手:ESP32s3+Python+大语言模型实战指南

本文详细介绍了基于ESP32S3硬件和Python后端的智能语音助手系统开发指南。系统采用ESP32S3采集语音,通过WebSocket实时传输到Python后端处理,利用大语言模型实现自然语言理解和意图识别,再通过TTS合成语音返回。文章从系统架构、工作流程、技术实现(包括OPUS编码、WebSocket通信、ESP32音频处理)等方面进行了详细讲解,并提供了分阶段学习路线和常见问题解决方案。该项目展示了物联网技术与AI技术的融合应用,相比传统语音系统具有更高的灵活性和智能性,为开发者提供了完整的实现方案

Despacito0o的博客 2630

【黑马苍穹外卖】个人小程序模拟实现微信支付

② 在项目课程中,PayNotifyController原本是通过微信小程序后端进行请求的,现在通过使用httpClient进行请求。① 在这个API中可以使用反回类型的builder进行属性值的赋值 (这里面展示的是谁便赋的值)1. 在个人学习的特殊情况的局限下,没有办法实现真正的微信支付功能!这样以后,我们就可以在商户系统看到用户提交过来的支付订单了。① 在项目pay包下的pay.js文件下,将原来的。3. java需要修改的后台代码。2. 微信小程序代码。

Lucas的博客 2176

STM32+ESP8266接入OneNet的MQTT嵌入式实现

MQTT是一种轻量级发布/订阅模式的消息传输协议,广泛应用于资源受限的物联网终端设备通信。其基于TCP/IP栈构建,具备低带宽占用、小代码体积和高可靠性等技术优势,特别适合STM32等MCU与Wi-Fi模组协同工作的边缘节点场景。在实际工程中,需结合AT指令集控制ESP8266完成Wi-Fi连接、TCP建链及MQTT会话管理,并通过环形缓冲区、空闲中断检测等机制保障UART异步通信稳定性。本文围绕STM32F103与ESP8266硬件协同、OneNet平台对接、JSON消息解析与OLED状态反馈等关键环节,

yhn456789的博客 1037

小程序实现完整购物车[全选/反选计算金额/加减计算数量跟金额]

代码注释很容易理解 <!-- 最外层视图pages --> <view class="pages"> <view wx:if="{{hasList}}"> <!-- 编辑 --> <view class='edit'> <label class='edit_btn' bindtap...

菜鸟老五 2万+

Ubuntu22.04 apt 安装 ROS1 ROS Noetic Ninjemys

ubuntu 22.04 apt-get 安装 ros1 ros Noetic 最新版

autolabor的博客 5万+

VIPER22A实战:从零搭建15W非隔离电源,附BUCK电路调试心得

本文详细介绍了使用VIPER22A芯片从零搭建15W非隔离电源的全流程,重点解析BUCK电路设计与调试技巧。通过核心参数计算、PCB布局优化和效率提升方案,帮助工程师快速掌握DC-DC电源设计要点,实现高效稳定的电源转换。

redis7keeper的博客 669

微信小程序 实现购物车结算

微信小程序实现商品总价结算动态变化

白瑕 的博客 5454

YOLO11实战优化:长尾分布解决 | 引入Seesaw Loss配合YOLO11分类头,完美应对类别极其不平衡的现实业务场景

摘要: YOLO11在工业缺陷检测等长尾分布场景中面临尾部类别检测失效的问题,根源在于头部类别样本的负样本梯度压制了尾部类别的学习。传统方法如重采样、Focal Loss等效果有限。Seesaw Loss通过动态调整缓解因子和补偿因子,平衡类别间的梯度分布,结合YOLO11的解耦分类头、Anchor-Free设计和C2PSA/C3K2模块,显著提升尾部类别识别能力。文章详细解析了Seesaw Loss的数学原理,并提供了可直接集成到YOLO11的PyTorch实现代码,为长尾分布下的目标检测提供了实用解决方

2601_95807009的博客 253

微信小程序使用建行支付

微信小程序使用建行支付

zxl2016的博客 5172

复分析 阿尔福斯(Ahlfors) 第三版答案 英文

答案分为十章,有部分习题没有答案,全英文复分析阿尔福斯(Ahlfors) 第三版答案

霍尼韦尔SoftMaster使用说明

霍尼韦尔SoftMaster使用说明

微信小程序之用camera实现类似扫码枪连续扫码

微信小程序之用camera实现类似扫码枪连续扫码 搜了优快云里面的文章,除了有一篇有关微信小程序(用微信小程序里面代码实现)扫码的功能,其它都是用别的(原博文是:小程序连续扫码实现但是他只是实现了一次扫码后就不能再继续扫码了,在js代码部分出现了错误。博主讲得很详细,我只是在js部分进行了修改。),自己在想做一个小程序时就进行了修改尝试,结果还行! 首先是,camera组件中需要知道mode=“scanCode” 是扫码的模式,bindscancode='takeCode’是在扫码识别成功时触发,仅在 m

hell_orld的博客 7184

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

小程序支付的款项流转与到账时间

这意味着今天收的款,将在明天才能进行结算,明天的时间点通常是在凌晨5点左右。商家可以在微信支付平台的商户后台(pay.weixin.qq.com)或者“微信支付商家助手”小程序,查看小程序支付的款项流转和到账情况。当用户在小程序内完成支付后,款项并不会直接到达商家的银行账户,而是首先进入商家的微信支付商户号中。这是因为小程序支付是基于微信支付平台提供的支付接口实现的,用户支付的款项会先经过微信支付平台进行处理。商家做小程序,最关心的是客户通过小程序下单支付的钱,是怎么样的流转状态以及最终到哪里。

weixin_43096382的博客 4482

win10 跳过U8环境检测的IE WebControls.rar

win10 安装u8的时候 提示IE WebControls 不通过,这个工具可以欺骗u8的检查。 跳过U8环境检测的IE WebControls。提示导入失败后,重新检测通过。

微信小程序 - 实现购物车结算

      示例源码下载:小程序-实现购物车结算

weixin_34310127的博客 3819

javawed商店商品结算_微信小商店开通助手(商家小助手申请)

-❶-小商店要怎么开通?开通后怎么使用呢?怎么去拓客引流留存客户呢?(文章下方可联系客服申请免费开通)微信小商店是小程序团队提供的一项新能力,无需开发、免费开店,帮助商家快速生成卖货小程序。如果你是小商店经营者,除需全部遵守以上小程序的运营规范外,你还应同时遵守以下小商店特别规范内容。一、微信小商店开放类目与资质要求企业店开放类目企业店行业资质要求企业店商品资质要求个人店开放类目个人店行...

weixin_30573089的博客 770

小程序云开发实现微信支付完整代码

老规矩,先看本节效果图 我们实现这个支付功能完全是借助小程序云开发实现的,不用搭建自己的服务器,不用买域名,不用备案域名,不用支持https。只需要一个简单的云函数,就可以轻松的实现微信小程序支付功能。 核心代码就下面这些 一,创建一个云开发小程序 关于如何创建云开发小程序,这里我就不再做具体讲解。不知道怎么创建云开发小程序的同学,可以去翻看我之前的文章,或者看下我录制的视频:https://edu.youkuaiyun.com/course/play/9604/204528 创建云开发小程序有几点注意的 1,

a_靖的博客 6110

微信小程序简单实现购物车功能

实现在微信小程序中对每一个购物车界面的商品订单,进行勾选结算和取消结算的功能,相关界面截图如下: 具体实现示例代码为: 1、js代码: 2、wxml代码: 3、wxss代码: 本示例代码较为简单,适合初学的友友们借鉴,编写不易,关注博主,分享更多实用好用示例代码给大家,谢谢大家的支持和指导。

蒜鸟编程的博客 6789

实现小程序微信支付功能

实现小程序微信支付功能 后台 若依 微服务版

一个全栈小菜鸟的博客 3497

微信小程序商城15天从零实战课程

讲解微信商城小程序界面设计和程序设计所涉及的所有知识点,包括其中用到的组件知识,API函数知识点,微信小程序前端开发基础知识点,实战将所学的知识点应用到商城小程序中;包括商城首页、轮播广告、产品菜单、产品列表、产品详细页面、产品分类、产品下单、产品收藏、购物车、下单、订单处理、收货地址处理、用户登录等涉及到上百个知识点,我们在课程中都会一一详细讲解

【微信小程序|Demo】订单结算页面

前言 Hello!小伙伴! 非常感谢您阅读海轰的文章,倘若文中有错误的地方,欢迎您指出~   自我介绍 ଘ(੭ˊᵕˋ)੭ 昵称:海轰 标签:程序猿|C++选手|学生 简介:因C语言结识编程,随后转入计算机专业,有幸拿过国奖、省奖等,已保研。目前正在学习C++/Linux(真的真的太难了~) 学习经验:扎实基础 + 多做笔记 + 多敲代码 + 多思考 + 学好英语! 效果展示 Demo代码 wxml wxss 结语 文章仅作为学习笔记,记录从0到1的一个过程 希望对您有所帮助,如有错误欢迎

海到无边天作岸 山登绝顶我为峰 6602

表单-微信小程序前端制作切片演示

小程序前端制作-表单切片,内含服务器端、小程序所有文件、切片文件(可以用小程序切片软件打开再次编辑)、效果图内含以下栏目:新增校园经历组织/公司名称职位开始时间结束时间经历描述资源下载:视频地址(优酷):http://v.youku.com/v_show/id_XMzQ5NjQxMjAzMg==.html视频地址(腾讯):https://v.qq.com/x/page/t0615mh1359.ht...

cddxwfl1的博客 1453

微信小程序开发日结算

好习惯 要开发一个小程序的项目,实现可以准备一个空的模板,也就是在使用一次微信开发者工具创建的模板之后,拷贝一份,然后将内容清空,这样在开发小程序的时候就省了要删除模板内容的操作了; 如果存在两个或者两个以上页面的布局、样式有比较大面积重复的,可以考虑先写好一个页面的布局、样式,再复制这个页面的文件夹,重命名,然后再在复制页面的基础上做修改; 一般一个小程序会有多个页面,那就需要创建多个文件夹,目前

qq_32900483的博客 814

微信小程序实战篇-购物车

哈喽,大家好,快半个月没写了,现在提笔都有点生硬了,一直没更新的原因,一个是代码君也要上班,加上最近工作比较忙,还有就是写文章一直未被认可,所以没什么动力再创作了,那时真的坚持不下去,打算放弃了,感谢读者曹明,一个韩国的研究生读者,支持我,并给我鼓励,期待我更新下一篇,我非常感动,瞬间战斗力恢复,其实你们简单的点赞,评论,都是给我最大的支持,好了,煽情完毕,该讲今天的重点了,购物车,购物车的界面实现

代码君 5万+
上一篇: 微信小程序之用camera实现类似扫码枪连续扫码
下一篇: XCTF-web新手区(1)
土、拨鼠
博客等级 码龄8年 60粉丝 21原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值