微信小程序连续签到7天积分获得功能的示例代码


Posted in Javascript onAugust 20, 2020

每周每天签到获得积分的案例
功能设计:计算每天签到得1分,显示得到的签到积分,连续签到3天[周一二三]即得+多3分,连续签到7天[周一二三四五六日]+多7分,没有连续即不显示多余的3分或7分的提示…

微信小程序连续签到7天积分获得功能的示例代码
微信小程序连续签到7天积分获得功能的示例代码

wxml结构:

<!--pages/signIn2/signIn2.wxml-->
<view class='sign-new'>
 <view class='in'>
 <view class='new-head'>
  <view class='sig-tl'>
  <view class='tln'>已连续签到<label class='n'>{{newSignNum}}</label>天</view>
  <view class='tlf'>积分:<label class='f'>{{newSignIntegral}}</label></view>
  </view>
 
  <!-- 未签到 -->
  <view wx:if='{{!newSignBtnState}}' class='sig-qiu sig-qiu-no' bindtap='bindSignFn' >
  <label class='ti'>签到</label>
  </view>
  <!-- 已签到 -->
  <view wx:else class='sig-qiu sig-qiu-yes'>
  <label class='ti'>已签到</label>
  </view>
 </view>

 <view class='new-week' >
  <view class='we-mod'>
  <view class='mo-fen'>
   <label class='f f3' wx:if='{{continuityDays3}}'>+3积分</label>
   <label class='f f7' wx:if='{{continuityDays7}}'>+7积分</label>
  </view>
  <view class='mo-line'>
   <block wx:for="{{isNewSignedArr}}" wx:for-item="v" wx:key="k">
   <label class="q {{v.isSigned?'hover':''}}"></label>
   </block>
  </view>
  <view class='mo-ri'>
   <block wx:for="{{isNewSignedArr}}" wx:for-item="v" wx:key="k">
   <label class="t">{{v.day}}</label>
   </block>
  </view>
  </view>
 </view>
 </view>
</view>

js方法:

Page({

 /**
 * 页面的初始数据
 */
 data: {
 newSignBtnState: false, //按钮签到状态
 continuityDays7: false, //连续7
 continuityDays3: false, //连续3 
 myToday: '',   //周几
 newSignNum: 0,  //签到天数
 newSignIntegral:0, //签到积分
 //签到数组
 isNewSignedArr: [
  {
  "day": "一",
  "isSigned": false
  },
  {
  "day": "二",
  "isSigned": false
  },
  {
  "day": "三",
  "isSigned": false
  },
  {
  "day": "四",
  "isSigned": false
  },
  {
  "day": "五",
  "isSigned": false
  },
  {
  "day": "六",
  "isSigned": false
  },
  {
  "day": "日",
  "isSigned": false
  }
 ],
 },

 //-------点击签到---------
 bindSignFn(e){
 var that = this,
  newSignNum = that.data.newSignNum,
  today = that.data.myToday;
 const arr = [],
   newSignArr = [...arr, ...that.data.isNewSignedArr];
 //
 today = today - 1 > 0 ? today - 1 : 6;
 newSignArr[today].isSigned = true;
 
 //当前积分
 newSignNum++;
 var curFen = that.data.newSignIntegral + 1;

 that.setData({
  newSignBtnState: true,
  newSignNum: newSignNum,
  newSignIntegral: curFen,
  isNewSignedArr: newSignArr,
 })

 that.signAddFen();
 },

 //签到积分函数 
 //连续 天数-积分: 周三+3:周一,周二,周三(1+1+3=5); 周六+7:周日到周六(1+1+3+1+1+1+7=15)
 signAddFen(e) {
 var that = this,
  oneIsSigned = that.data.isNewSignedArr[0].isSigned,
  twoIsSigned = that.data.isNewSignedArr[1].isSigned,
  threeIsSigned = that.data.isNewSignedArr[2].isSigned,
  fourIsSigned = that.data.isNewSignedArr[3].isSigned,
  fiveIsSigned = that.data.isNewSignedArr[4].isSigned,
  sixIsSigned = that.data.isNewSignedArr[5].isSigned,
  sevenIsSigned = that.data.isNewSignedArr[6].isSigned;
  
 // 另外加分-黄色小框显示 周三+3 , 周日+7
 if (oneIsSigned && twoIsSigned && that.data.myToday == 3) {
  that.setData({
  continuityDays3: true
  })
 } else if (oneIsSigned && twoIsSigned && threeIsSigned && fourIsSigned && fiveIsSigned && sixIsSigned && that.data.myToday == 0) {
  that.setData({
  continuityDays7: true
  })
 }

 //签到后执行
 if (that.data.newSignBtnState) {
  // 周三 : 一 二 三
  if (oneIsSigned && twoIsSigned && threeIsSigned) {
  var fens = that.data.newSignIntegral + 3 - 1;
  that.setData({
   newSignIntegral: fens
  })
  }
  // 所有签了: 一 二 三 四 五 六 日
  if (oneIsSigned && twoIsSigned && threeIsSigned && fourIsSigned && fiveIsSigned && sixIsSigned && sevenIsSigned) {
  var fens = that.data.newSignIntegral + 7 - 1;
  that.setData({
   newSignIntegral: fens
  })
  }
 }
 },

 /**
 * 生命周期函数--监听页面加载
 */
 onLoad: function (options) {
 var that = this,
  myDate = new Date(),
  myToday = myDate.getDay(); //周几 0 1 2 3 4 5 6
 that.setData({
  myToday: myToday
 })
 that.signAddFen();
 },

})

有什么错误或优化的地方,可以提出来,大家一起学习研究…
完整案例可访问本人github:https://github.com/xiexikang/xcx-signIn

ps:
[微信小程序:以7天为周期,连续签到7天功能效果]

到此这篇关于微信小程序连续签到7天积分获得功能的示例代码的文章就介绍到这了,更多相关微信小程序签到功能内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Javascript 相关文章推荐
js jquery做的图片连续滚动代码
Jan 06 Javascript
js 匿名调用实现代码
Jun 19 Javascript
js获得地址栏?问号后参数的方法
Aug 08 Javascript
jQuery DOM删除节点操作指南
Mar 03 Javascript
js获取页面及个元素高度、宽度的代码
Apr 26 Javascript
Bootstrap3 Grid system原理及应用详解
Sep 30 Javascript
javascript实现Emrips反质数枚举的示例代码
Dec 06 Javascript
代码详解javascript模块加载器
Mar 04 Javascript
每天学点Vue源码之vm.$mount挂载函数
Mar 11 Javascript
Vue 中文本内容超出规定行数后展开收起的处理的实现方法
Apr 28 Javascript
vue实现浏览器全屏展示功能
Nov 27 Javascript
JavaScript链式调用原理与实现方法详解
May 16 Javascript
如何使用JavaScript实现无缝滚动自动播放轮播图效果
Aug 20 #Javascript
JavaScript 空间坐标的使用
Aug 19 #Javascript
vue插件--仿微信小程序showModel实现模态提示窗功能
Aug 19 #Javascript
jQuery实现评论模块
Aug 19 #jQuery
javaScript代码飘红报错看不懂?读完这篇文章再试试
Aug 19 #Javascript
jQuery实现简单评论功能
Aug 19 #jQuery
原生JS实现多条件筛选
Aug 19 #Javascript
You might like
十天学会php之第一天
2006/10/09 PHP
php文件扩展名判断及获取文件扩展名的N种方法
2015/09/12 PHP
PHP删除数组中指定下标的元素方法
2018/02/03 PHP
JSQL SQLProxy 的 php 版本代码
2010/05/05 Javascript
Confirmer JQuery确认对话框组件
2010/06/09 Javascript
读jQuery之四(优雅的迭代)
2011/06/20 Javascript
js弹出层之1:JQuery.Boxy (二)
2011/10/06 Javascript
jQuery中:first-child选择器用法实例
2014/12/31 Javascript
Bootstrap每天必学之进度条
2015/11/30 Javascript
基于canvas实现的绚丽圆圈效果完整实例
2016/01/26 Javascript
JS弹出窗口插件zDialog简单用法示例
2016/06/12 Javascript
vue-router路由简单案例介绍
2017/02/21 Javascript
Bootstrap实现可折叠分组侧边导航菜单
2018/03/07 Javascript
vue中使用better-scroll实现滑动效果及注意事项
2018/11/15 Javascript
node实现生成带参数的小程序二维码并保存到本地功能示例
2018/12/05 Javascript
这样回答继承可能面试官更满意
2019/12/10 Javascript
uni-app如何页面传参数的几种方法总结
2020/04/28 Javascript
浅谈MySQL中的触发器
2015/05/05 Python
详解python 字符串和日期之间转换 StringAndDate
2017/05/04 Python
matplotlib给子图添加图例的方法
2018/08/03 Python
对Python模块导入时全局变量__all__的作用详解
2019/01/11 Python
Python 中的 global 标识对变量作用域的影响
2019/08/12 Python
python 字典item与iteritems的区别详解
2020/04/25 Python
Windows 平台做 Python 开发的最佳组合(推荐)
2020/07/27 Python
中国最大的名表商城:万表网
2016/08/29 全球购物
土木工程师岗位职责
2013/11/24 职场文书
校园招聘策划书
2014/01/09 职场文书
2014年应届大学生自我评价
2014/01/09 职场文书
学期自我评价
2014/01/27 职场文书
员工考核评语大全
2014/04/26 职场文书
优质服务口号
2014/06/11 职场文书
领导干部遵守党的政治纪律情况思想汇报
2014/09/14 职场文书
2014年青年志愿者工作总结
2014/12/09 职场文书
酒店前台辞职书
2015/02/26 职场文书
2016年春节慰问信息
2015/03/25 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书