从头开始制作打孔卡小程序

2020-12-24
来源:

很久以前,我自学了一些html / css / javascript。碰巧的是,微信小程序开发的主要知识储备也在这里。在此期间,联盟学会的一位学生问我是否可以为大学赚钱小程序。主要是大学论坛和提早入住两部分。我答应当时尝试这样做。我没想到它会失控。经过一个星期的夜晚,我终于制作了小程序的原型。以下是小程序界面渲染图,源代码已开源至我的github,此处仅发布了主要代码


一个类似论坛的社区,可发帖、评论、回复。    打卡可换算积分,一天只能打卡一次,且有今日打卡排行榜实时展示。    跑步也可换算积分,换算的规则男女有别。   

在此处插入图片描述

在此处插入图片描述

打卡小程序开发

图片

小程序的成本相对较高,需要获得营业执照,并且由于存在论坛,因此在线后需要获得工业和信息化部的注册资格,否则该代码将尚未更新,因此我已停止对其进行维护。开源该项目的代码:github地址,欢迎之星,叉子!!!

今天,我主要讨论早期签到部分的制作。为了以后进行维护,我将这部分分别制成了小程序,小程序称为“一见钟情”,现已在线上,欢迎体验。

核心代码

通话便宜,显示代码。

核心代码punch.js


var app = getApp(); var date; var allowlog = 1; var Bmob = require('../../utils/bmob.js'); Page({      /**    * 页面的初始数据    */    data: {    newList: [],    },    btn_click: function(e){     if (allowlog == 1){       allowlog = 0;       wx.getStorage({         key: 'user_id',         success: function (res) {           var user_id = new Bmob.User();           user_id.id = res.data;           wx.getStorage({             key: 'my_nick',             success: function (ress) {               var mydate = new Date();               var year = mydate.getFullYear();               var month = mydate.getMonth() + 1;               var day = mydate.getDate();               var date = year + "年" + month + "月" + day + "日";               var hour = mydate.getHours(); //获取当前小时数(0-23)               var minute = mydate.getMinutes(); //获取当前分钟数(0-59)               var second = mydate.getSeconds(); //获取当前秒数(0-59)               var time = hour + "时" + minute + "分" + second + "秒";               var avatar = wx.getStorageSync("my_avatar");               var Punch = Bmob.Object.extend("punch");               var punch = new Punch();               var me = ress.data;               var query = new Bmob.Query(Punch);               query.equalTo("nickname", me);               query.equalTo("date", date);               // 查询所有数据               query.find({                 success: function (results) {                   console.log("共查询到 " + results.length + " 条记录");                   if (results.length == 0) {                     if (hour >= 6) {                       if (hour < 8) {                         var intger;                         if (hour < 7) {                           if (minute <= 20) {                             intger = 3;                           }                           else if (minute <= 40) {                             intger = 2.5;                           }                           else {                             intger = 2;                           }                         }                         else if (hour < 8) {                           if (minute <= 20) {                             intger = 1.5;                           }                           else if (minute <= 40) {                             intger = 1;                           }                           else {                             intger = 0.5;                           }                         }                         wx.showToast({                           title: '打卡成功+' + intger + "分",                           icon: 'success'                         })                         wx.getStorage({                           key: 'my_username',                           success: function (ress) {                             if (ress.data) {                               var my_username = ress.data;                               wx.getStorage({                                 key: 'user_openid',                                 success: function (openid) {                                   var openid = openid.data;                                   var user = Bmob.User.logIn(my_username, openid, {                                     success: function (users) {                                       var score = users.get('score');                                       score = score + intger;                                       users.set('score', score);                                       users.save(null, {                                         success: function (user) {                                         },                                         error: function (error) {                                           console.log(error)                                         }                                       });                                     }                                   });                                 }, function(error) {                                   console.log(error);                                 }                               })                             }                           }                         })                         punch.set('nickname', me);                         punch.set('user_id', user_id);                         punch.set('date', date);                         punch.set('avatar', avatar)                         punch.set('time', time);                         console.log(me, user_id);                         punch.save(null, {                           success: function (result) {                             console.log('success');                             allowlog = 1;                           },                           error: function (result, error) {                             console.log(result, error, "failure")                           }                         })                       }                       else {                         wx.showToast({                           title: '已过打卡时间',                           icon: 'loading'                         })                       }                     }                     else {                       wx.showToast({                         title: '还没到打卡时间',                         icon: 'loading'                       })                     }                   }                   else {                     allowlog = 1;                     wx.showToast({                       title: '重复打卡',                       icon: 'loading'                     })                   }                 },                 error: function (error) {                   console.log("查询失败");                 }               });             }           })         },       })     }     else{       wx.showToast({         title: '点的太快了',         icon: 'loading'       })     }        },    tempData: function () {     var that = this;     var Punch = Bmob.Object.extend("punch");     var query = new Bmob.Query(Punch);     var mydate = new Date();     var year = mydate.getFullYear();     var month = mydate.getMonth() + 1;     var day = mydate.getDate();     var date = year + "年" + month + "月" + day + "日";     query.equalTo("date", date);     query.limit(100);     var results = [];     query.find({       success: function (result) {         for (var i = 0; i < result.length; i++) {           console.log('共有打卡记录:', result.length)           var object = result[i];           object.set('time', object.createdAt.substring(11, 19));           object.set('rank', i + 1);           results[i] = object;         }         console.log(results);         that.setData({           list: results         });       }     })    },    onLoad: function () {     this.tempData();    },      /**    * 生命周期函数--监听页面初次渲染完成    */    onReady: function () {      },      /**    * 生命周期函数--监听页面显示    */    onShow: function () {      },      /**    * 生命周期函数--监听页面隐藏    */    onHide: function () {      },      /**    * 页面相关事件处理函数--监听用户下拉动作    */    onPullDownRefresh: function () {     this.tempData();     wx.stopPullDownRefresh();    },    onShareAppMessage: function () {     return {       title: '快来打卡赢积分',       imageUrl: '../../static/images/tao.png'     }    },      /**    * 页面上拉触底事件的处理函数    */    onReachBottom: function () {      } })

分享