前端vue开发连续签到功能

阳光穿透心脏的1/2处 2022-09-04 03:52 415阅读 0赞

前端vue开发连续签到功能

      • UI设计图
      • 参数说明
      • HTML部分 渲染已经签到过的天数
      • js代码
      • 签到功能前端只需要调用两个接口
      • 完整代码

UI设计图

在这里插入图片描述

参数说明

days_num:已经签到多少天
today:当日是否签到 0.否 1.是
gift_num:积分数量
day_num:当前是第几天

HTML部分 渲染已经签到过的天数

  1. <ul class="signBtnBox">
  2. <li class="signBtnOne" v-for="(item, key, index) in list" :key="index">
  3. <div if="Number(days) == index + 1 || Number(days) > index + 1"
  4. style=" width: 100%; height: 100%; border-radius: 4px; background-color: #ff9400; ">
  5. <img src="./image/2.png" />
  6. <p>{ { item.gift_num }}</p>
  7. </div>
  8. <div v-else @click="signInToday">
  9. <img src="./image/3.png" />
  10. <p>{ { item.gift_num }}</p>
  11. </div>
  12. </li>
  13. </ul>

渲染的重点在于
v-if="Number(days) == index + 1 || Number(days) > index + 1"

js代码

  1. export default {
  2. data() {
  3. return {
  4. list: [],
  5. res: "",
  6. /* 签到的总天数 */
  7. days: "",
  8. signOK:""
  9. };
  10. },
  11. methods: {
  12. // 跳转到积分历史页面
  13. goToHistory() {
  14. this.$openUrl(assetsVersionDir + "index.html?#/profile/wallet/points",1);
  15. },
  16. // 打开积分商城页面
  17. gotoPointsStore() {
  18. this.$openUrl();
  19. },
  20. // 打开我的钱包页面
  21. gotoWallet() {
  22. this.$openUrl(assetsVersionDir + "index.html?#/other/getPoints", 1);
  23. },
  24. todaySignIn() {
  25. this.$http.get(window.apis.sign_in_today).then((res) => {
  26. this.getSignIn();
  27. console.log(res);
  28. let signOK = res;
  29. this.signOK = signOK
  30. console.log(signOK);
  31. });
  32. },
  33. // 点击签到
  34. signInToday() {
  35. console.log(this.res.data.today);
  36. if (this.res.data.today == 0) {
  37. this.todaySignIn()
  38. console.log(this.res.code);
  39. if(this.res.code !== 0){
  40. this.$message.success("签到失败");
  41. }else{
  42. this.$message.error("签到成功");
  43. }
  44. } else {
  45. this.$message.error("今日已签到");
  46. }
  47. },
  48. getSignIn() {
  49. this.$http.get(window.apis.check_in_query).then((res) => {
  50. // console.log(res);
  51. this.res = res;
  52. console.log(this.res);
  53. //传值发给list[]
  54. let list = res.data.conf;
  55. this.list = list;
  56. let days = this.res.data.days_num;
  57. this.days = days;
  58. console.log(days);
  59. console.log(this.res.data.today);
  60. // console.log(this.list);
  61. });
  62. },
  63. },
  64. components: { },
  65. created() {
  66. this.getSignIn();
  67. },
  68. };

签到功能前端只需要调用两个接口

  • 查询签到接口
  • 今日签到接口

完整代码

链接: 详细代码在这里.

发表评论

表情:
评论列表 (有 0 条评论,415人围观)

还没有评论,来说两句吧...

相关阅读

    相关 使用redis bitmap实现签到功能

    1.签到功能的实现思路 最近有研究到用户的签到功能,对功能进行设计的时候想到使用msyql存储用户的签到记录,将用户的每日签到记录存储到表中,然后又想到每次签到就往表里面

    相关 利用redis实现每日签到功能

    今天给大家介绍一个简单的应用场景,我们迷你喵小程序最近新增了一个签到功能,但是每天只能签到一次,我们如何实现每日只签到一次呢? 想学习分布式、微服务、JVM、多线程、架构、j