【实训项目】消费账单记录小程序

1.项目说明

背景:

着网络技术的不断发展,人们的消费观念在不断变化,消费手段也变得错综复杂。很多人都在困扰,钱到底花在了那里。

目的:

为了解决很多人的钱花在哪了的困扰,我们组决定制作一个消费账单记录小程序,用户可以随时随地的记录自己的所有花费情况,并以列表的形式进行展示,同时用户可以查看自己的余额以便对自己的以后的消费计划进行制定。

2.详细功能

2.1首页

(1)消费支出:直接显示今日支出 红色字体显示本月总支出 明显字体显示本年总支出

(2)今日账单:详细列出今日花费情况包括:交通费用、网购、娱乐、房租、饮食、其他,基本包含生活的全部消费内容

(3)额外功能:我又花钱了(记账功能) 查看历史账单

2.2我又花钱了

(1)记账功能:随时记录生活中的各类消费信息

(2)可记账类别:交通费用、网购、娱乐、房租、饮食、其他

(3)可记账内容:在对应记账类别中,可记录消费的日期及金额,最后可自动生成备注信息

2.3查看历史账单

(1)历史账单:该功能详细记录了记录开始时间、结束时间,记录日期、花费金额、主要用途等信息,以列表的形式进行展示,方便使用者查看以往消费记录。

2.4我的

(1)个人中心:该功能主要记录使用者的收入及可用余额,直观的展现现有资产,有助于使用者以后的消费计划的制定

3.小组工作安排

同学1:主要负责首页及我的两个页面的制作,同时负责页面图案的编辑处理

同学2:主要负责“我又花钱了” 及“查看历史账单” 两个页面的制作

同学3:负责每个页面图案的提供、编辑、处理、美化

同学4:主要负责优化组合其他人的工作成果,并在随时提供技术支持

4.成果展示

5.PPT效果展示及代码目录结构

6.核心代码

index页面

wxml文件
<!--index.wxml-->
<view class="content-view">
  <view class="ui-flex  ui-p20">
    <text>今日</text>
    <text class="text-expend">总支出:</text>
    <text class="text-today-expend-num">¥{{todayExpend}}</text>
  </view>
  <view class="ui-flex  ui-p20">
    <text>本月</text>
    <text class="text-expend">总支出:</text>
    <text class="text-month-expend-num">¥{{monthExpend}}</text>
  </view>
  <view class="ui-flex  ui-p20">
    <text>本年</text>
    <text class="text-expend">总支出:</text>
    <text class="text-year-expend-num">¥{{yearExpend}}</text>
  </view>
  <view class=" ui-p20">
    <button class="blue-button" hover-class="blue-button-p" bindtap="recodeExpend">我又花钱了</button>
  </view>
  <view class=" ui-p20">
    <button class="blue-button" hover-class="blue-button-p" bindtap="historyBill">查看历史账单</button>
  </view>
  <view class="today-bill">
    今日账单
  </view>
  <view wx:for="{{todayRecord}}" catchlongtap="onTodayBillItemClick" catchlongtap="ononTodayBillLongItemClick" data-index="{{index}}">
    <view class="line"></view>
    <view class="ui-flex ui-p20">
      <image class="spend-way-icon" src="{{item.spendWayImg}}"></image>
      <text class="item-remarks">{{item.remarks}}</text>
      <text>{{item.spendMoney}}</text>
    </view>
  </view>
</view>

js文件

//index.js
//获取应用实例
var util = require('../../utils/util.js')
var app = getApp()
Page({
  data: {
    todayExpend: "0",
    monthExpend: "0",
    yearExpend: "0",
    todayRecord:[],

  },
  //事件处理函数
  recodeExpend: function () {
    wx.navigateTo({
      url: '../../pages/record-expend/record-expend',
    })
  },
  historyBill: function () {
    wx.navigateTo({
      url: '../../pages/history-bill/history-bill',
    })
  },
//今日账单item点击
onTodayBillItemClick:function(e){
  let index = e.currentTarget.dataset.index;
  
},
//今日账单item长按
ononTodayBillLongItemClick:function(e){

},

  onLoad: function () {

  },
  onShow: function () {
    let bill;
    const todayDate = util.formatTime(new Date(), "yyyy-MM-dd");
    try {
      bill = wx.getStorageSync('Bill');
    } catch (e) {
    }
    if (bill != "") {
      let todayMoney = 0;
      let monthMoney = 0;
      let yearMoney = 0;
      let todayRecord = [];
      for (let key of bill) {
        //同一天
        if (util.dateIsDifference(key.date, todayDate, "d")) {
          todayMoney += key.spendMoney;
          todayRecord.push(key);
        };
        //同一月
        if (util.dateIsDifference(key.date, todayDate, "n")) {
          monthMoney += key.spendMoney;
        };
        //同一月
        if (util.dateIsDifference(key.date, todayDate, "y")) {
          yearMoney += key.spendMoney;
        };
      }
      this.setData({
        todayExpend: todayMoney,
        monthExpend: monthMoney,
        yearExpend: yearMoney,
        todayRecord:todayRecord,
      });
    };

  },

 onShareAppMessage: function () {
    return {
      title: '账单',
      path: 'pages/index/index',
      success: function (res) {
        // 分享成功
      },
      fail: function (res) {
        // 分享失败
      }
    }
  },

})
json文件

{
    "backgroundTextStyle":"light",
    "navigationBarBackgroundColor": "#10AEFF",
    "navigationBarTitleText": "首页",
    "navigationBarTextStyle":"black"
  }

wxss文件:

page{
  background-color: #ddd;
}
.content-view{
  background-color: white;
}
.text-expend{
  color: grey;
  font-size: 28rpx;
  text-align: center;
}
.text-today-expend-num{
  color: #10AEFF;
  font-size: 34rpx;
  text-align: center;
}
.text-month-expend-num{
  color: #e64340;
  font-size: 34rpx;
  text-align: center;
}
.text-year-expend-num{
  color: goldenrod;
  font-size: 34rpx;
  text-align: center;
}
.today-bill{
  color: #10AEFF;
}
.spend-way-icon{
  width: 64rpx;
  height: 64rpx;
}
.item-remarks{
  flex: 1;
  text-overflow: ellipsis;
  padding-left: 10rpx;
}

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/239321.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【原理图PCB专题】原理图图纸锁定/解锁与PCB文件加密方式

在工作中我们会遇到需要冻结原理图进行评审和加密图纸防止被他人盗用的需求。那么在OrCAD Capture中如何对图纸进行锁定与解锁,如何在Allegro中对PCB工程进行加密呢? 原理图锁定与解锁 打开原理图,在图纸中单击右键,选择lock/unlock就可以进行锁定与解锁。 锁定时图纸图…

xml 可扩展标记语言

我是南城余&#xff01;阿里云开发者平台专家博士证书获得者&#xff01; 欢迎关注我的博客&#xff01;一同成长&#xff01; 一名从事运维开发的worker&#xff0c;记录分享学习。 专注于AI&#xff0c;运维开发&#xff0c;windows Linux 系统领域的分享&#xff01; 本…

【CF闯关练习】—— 900分段

&#x1f30f;博客主页&#xff1a;PH_modest的博客主页 &#x1f6a9;当前专栏&#xff1a;cf闯关练习 &#x1f48c;其他专栏&#xff1a; &#x1f534;每日一题 &#x1f7e1; C跬步积累 &#x1f7e2; C语言跬步积累 &#x1f308;座右铭&#xff1a;广积粮&#xff0c;缓…

java定义三套场景接口方案

一、背景 在前后端分离开发的背景下&#xff0c;后端java开发人员现在只需要编写接口接口。特别是使用微服务开发的接口。resful风格接口。那么一般后端接口被调用有下面三种场景。一、不需要用户登录的接口调用&#xff0c;第二、后端管理系统接口调用&#xff08;需要账号密…

WEB渗透—PHP反序列化(七)

Web渗透—PHP反序列化 课程学习分享&#xff08;课程非本人制作&#xff0c;仅提供学习分享&#xff09; 靶场下载地址&#xff1a;GitHub - mcc0624/php_ser_Class: php反序列化靶场课程&#xff0c;基于课程制作的靶场 课程地址&#xff1a;PHP反序列化漏洞学习_哔哩…

loki-日志

一、loki Github ELK虽然功能丰富&#xff0c;但规模复杂&#xff0c;资源占用高&#xff0c;操作苦难&#xff0c;很多功能往往用不上&#xff0c;loki 受 prometheus 启发的水平可扩展、高可用、多租户日志聚合系统&#xff0c;它的设计非常经济高效且易于操作&#xff0c;…

使用【OpenI启智平台】进行模型训练

前言 启智平台OpenI是一个人工智能开源开放平台&#xff0c;提供免费GPU算力可以进行模型训练。模式是git进行项目管理&#xff0c;可以创建调试任务调试代码以及保存镜像&#xff0c;创建训练任务训练模型&#xff0c;也提供推理和评测&#xff0c;我没用过就不讲述了。后来我…

Sketch软件免费中文版在线使用教程及下载安装指南

什么是Sketch&#xff1f; Sketch是一款专为设计量身定制的矢量绘图软件&#xff0c;广泛应用于UI/UX设计和原型制作。 Sketch由荷兰Bohemiancoding公司开发&#xff0c;并于2010年首次发布。当时&#xff0c;AdobePhotoshop、AdobeIlustrator等主流设计工具虽然功能强大&…

MySQL-1

1 数据库基础概念 Data数据 对客观事物的符号表示&#xff0c;如图形符号、数字、字母等&#xff0c;数据是数据库中存储的基本对象。2. DB数据库数据库(Database,简称DB)的定义&#xff1a;“按照数据结构来组织、存储和管理数据的仓库” 3. DBMS数据库管理系统概念&#xff…

Java实现异步的原因、场景、实现异步的方式

文章目录 实现异步的原因&#xff1a;异步使用的场景实现异步的方式&#xff1a;实现异步的20种实现方式 异步&#xff0c;作为性能调优核心方式之一&#xff0c;经常被用于各种高并发场景。 实现异步的原因&#xff1a; Java 中实现异步的主要原因是为了提高程序的性能和响应…

Qt WebAssembly开发环境配置

目录 前言1、下载Emscripten SDK2、 安装3、环境变量配置4、QtCreator配置5、运行示例程序总结 前言 本文主要介绍 Qt WebAssembly 开发环境的配置。Qt for Webassembly 可以使Qt应用程序在Web上运行。WebAssembly&#xff08;简称Wasm&#xff09;是一种能够在虚拟机中执行的…

FFmpeg 简单文档

一、播放器框架 常用音视频术语 容器&#xff0f;文件&#xff08;Conainer/File&#xff09;&#xff1a;即特定格式的多媒体文件&#xff0c;比如mp4、flv、mkv等。媒体流&#xff08;Stream&#xff09;&#xff1a;表示时间轴上的一段连续数据&#xff0c;如一段声音数据、…

【圣诞】极安云科赠书活动第①期:CTF实战:从入门到提升

【圣诞】极安云科赠书活动第①期&#xff1a;CTF实战:从入门到提升 9787111724834 9787121376955 9787302556275 ISBN编号&#xff1a;9787111724834 书名&#xff1a;CTF实战:从入门到提升 定&#xff1a;99.00元 开本&#xff1a;184&#xff4d;&#xff4d;260&#xff…

Stable-diffusion-webui本地部署和简要介绍

Stable Diffusion 是一款基于人工智能技术开发的绘画软件&#xff0c;它可以帮助艺术家和设计师快速创建高品质的数字艺术作品。是2022年发布的深度学习文本到图像生成模型。它主要用于根据文本的描述产生详细图像&#xff0c;同时也可以应用于其他任务&#xff0c;如内补绘制、…

提示“由于找不到mfc140u.dll,无法继续执行代码”如何解决?

在计算机使用过程中&#xff0c;我们经常会遇到一些错误提示&#xff0c;其中之一就是找不到某个动态链接库文件&#xff0c;比如mfc140u.dll。这个问题可能会导致某些应用程序无法正常运行或打开。 一、关于找不到mfc140u.dll文件造成会的问题 mfc140u.dll是Visual C中的一个…

【Amazon 实验①】Amazon WAF功能增强之实验环境准备

文章目录 1. 实验介绍2. 实验环境准备 1. 实验介绍 在真实的网络空间中&#xff0c;攻击者会使用大量广泛分布的僵尸网络、肉机等发起对目标的攻击。 其来源分布一般比较分散&#xff0c;因此难以简单防范。 本实验联合使用有多种AWS服务&#xff1a;Cloudfront、 Lambdaedge…

VPN理论入门及GRE、L2TP、IPsec(HCIP)

一、VPN概述 IPsec-VPN&#xff1a; 1、应用范围&#xff1a;用于分公司和总部之间。 2、作用&#xff1a;机密性、证书&#xff08;身份认证&#xff09; VPN概述 VPN概述&#xff1a;VPN&#xff08;Virtual Private Network&#xff09;是指依靠Internet服务提供商ISP&a…

压力测试(超详细总结)

压力测试 压力测试是一种软件测试&#xff0c;用于验证软件应用程序的稳定性和可靠性。压力测试的目标是在极其沉重的负载条件下测量软件的健壮性和错误处理能力&#xff0c;并确保软件在危急情况下不会崩溃。它甚至可以测试超出正常工作点的测试&#xff0c;并评估软件在极端…

一文读懂Java中的设计模式——代理模式,以翻译场景举例,特别通俗易懂!

代理模式概念 在代理模式&#xff08;Proxy Pattern&#xff09;中&#xff0c;一个类代表另一个类的功能。这种类型的设计模式属于结构型模式。在代理模式中&#xff0c;我们创建具有现有对象的对象&#xff0c;以便向外界提供功能接口。目的&#xff1a;为其他对象提供一种代…

Mysql配置主从同步流程

一、设置主服务器&#xff1a; 1、在主数据库中打开MySQL配置文件&#xff08;my.cnf或my.ini&#xff09;&#xff0c;找到并编辑以下配置项&#xff1a; [mysqld] server-id1 log-binmysql-bin binlog-formatrow PS: linux服务器的MySQL配置文件要么在安装目录下&#x…