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

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;

}

相关推荐
尘浮生16 分钟前
Java项目实战II基于微信小程序的校运会管理系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
旦沐已成舟2 小时前
DevOps-Jenkins-新手入门级
服务器
软件技术员3 小时前
Let‘s Encrypt SSL证书:acmessl.cn申请免费3个月证书
服务器·网络协议·ssl
一条晒干的咸魚4 小时前
【Web前端】创建我的第一个 Web 表单
服务器·前端·javascript·json·对象·表单
东华果汁哥4 小时前
【linux 免密登录】快速设置kafka01、kafka02、kafka03 三台机器免密登录
linux·运维·服务器
尘浮生4 小时前
Java项目实战II基于微信小程序的电影院买票选座系统(开发文档+数据库+源码)
java·开发语言·数据库·微信小程序·小程序·maven·intellij-idea
mengao12345 小时前
centos 服务器 docker 使用代理
服务器·docker·centos
C-cat.5 小时前
Linux|进程程序替换
linux·服务器·microsoft
怀澈1225 小时前
高性能服务器模型之Reactor(单线程版本)
linux·服务器·网络·c++
腾科张老师5 小时前
如何进行Apache的配置与调试?
apache