打卡程序的完整流程如下:
- 安装和配置开发环境
- 下载和安装微信开发者工具
- 注册微信开发者账号并绑定小程序
- 配置小程序的基本信息,如名称、头像等
2.设计小程序界面
- 设计小程序的页面布局和功能组件
- 确定小程序的交互流程和逻辑
3.编写代码
- 使用微信小程序提供的 WXML 和 WXSS 编写页面布局代码
- 使用 JavaScript 编写小程序的交互逻辑和业务处理代码
wxml
<view class="container"> <view>打卡</view> <view> {{time}}</view> <view> {{name}}</view> <view> <button class="btn" bindtap="submit">提交</button> </view> <view> <view>今日已打卡</view> <view>{{todayCount}}</view> </view> <view> <view>累计打卡 {{totalCount}}</view> <view>次</view> </view> </view>
js
Page({ data: { time: '', name: '', status: 'idle', todayCount: 0, totalCount: 0 }, onLoad: function() { // 初始化数据 this.setData({ time: new Date().toLocaleString(), name: '张三' }); // 获取今日已打卡数量和累计打卡数量 this.getCount(); }, submit: function() { // 处理提交逻辑 if (this.data.status === 'idle') { this.setData({ status: 'submitting' }); // 模拟提交过程 setTimeout(() => { this.setData({ status: 'success', todayCount: this.data.todayCount + 1 }); // 保存打卡记录 this.saveRecord({ name: this.data.name, time: this.data.time }); }, 2000); } }, getCount: function() { // 获取今日已打卡数量和累计打卡数量 this.setData({ todayCount: 0, totalCount: 0 }); // 模拟已打卡记录 const records = [ { name: '李四', time: '2022-02-22 09:00:00' }, { name: '王五', time: '2022-02-22 09:30:00' }, { name: '张三', time: '2022-02-22 10:00:00' } ]; // 统计今日已打卡数量和累计打卡数量 records.forEach(record => { const date = new Date(record.time).toLocaleDateString(); if (date === new Date().toLocaleDateString()) { this.setData({ todayCount: this.data.todayCount + 1 }); } this.setData({ totalCount: this.data.totalCount + 1 }); }); }, saveRecord: function(record) { // 保存打卡记录 const records = [...this.data.records, record]; this.setData({ records: records }); } })
wxss
.container { display: flex; flex-direction: column; align-items: center; margin-top: 50rpx; } .time { font-size: 32rpx; color: #333; } .name { font-size: 48rpx; color: #333; margin-top: 30rpx; } .btn { display: flex; justify-content: center; align-items: center; width: 600rpx; height: 80rpx; margin-top: 30rpx; background-color: #4cd964; color: #fff; border-radius: 10rpx; font-size: 28rpx; cursor: pointer; } .todayCount { font-size: 32rpx; color: #333; margin-top: 30rpx; } .totalCount { font-size: 32rpx; color: #333; margin-top: 30rpx; }
实现了一个打卡小程序,用户可以在页面中输入姓名和打卡时间,并点击提交按钮进行打卡。如果提交成功,页面会显示提交成功的提示信息,并且今日已打卡数量和累计打卡数量会相应增加。此外,还实现了保存打卡记录的功能,可以在用户提交打卡后将打卡信息保存到本地存储中。