微信小程序签到页面的日历实现

这篇具有很好参考价值的文章主要介绍了微信小程序签到页面的日历实现。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

日历demo下载https://download.csdn.net/download/rookie_toy/87721449

业务需求:签到页面用日历展示签到情况,只显示当月的。

过期未签的显示灰色字,已签的显示橙色字,当天显示白色字加一个背景图。

微信小程序签到页面的日历实现

 1、新建日历组件(取名:calendar)

 

 2、calendar.wxml代码

<!--components/calendar/calendar.wxml-->
<view class="calendar-box">
  <view class="calendar-day">
    <view class="day-item" wx:for="{{day}}" wx:key="index">
      {{item}}
    </view>
  </view>
  <view class="calendar-date-box">
    <view class="date-item" wx:for="{{calendarList}}" wx:key="num">
      <image wx:if="{{item.type=='day'}}" class="curbg" src="/static/img/qiandaobg.png" mode="aspectFill"/>
      <view class="date-text {{item.type=='day'?'fontcur':''}} {{item.type=='before'?item.sign=='1'?'fontbf':'fontbfnos':''}} {{item.type=='after'?'fontaf':''}}">
        {{item.num=='0'?'':item.num}}
      </view>
    </view>
  </view>
</view>

3、calendar.wxss

/* components/calendar/calendar.wxss */
/* 日历 */
.calendar-box{
  /* width: 100%; */
  box-sizing: border-box;
  padding:20rpx 30rpx 30rpx;
  background-color: #ffffff;
  border-radius: 8rpx;
  box-shadow: #f5f5f5 0 0 12rpx;
  font-size: 28rpx;
  font-weight: 500;
}
.calendar-day{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  height: 80rpx;
  line-height: 80rpx;
}
.day-item{
  width: 14.2%;
  color: #C5C5C5;
}
.calendar-date-box{
  width: 100%;
  display: flex;
  align-items: center;
  justify-content: flex-start;
  flex-wrap: wrap;
  text-align: center;
}
.date-item{
  width: 14.2%;
  height: 80rpx;
  position: relative;
}
.date-text{
  z-index: 9;
  line-height: 48rpx;
}
.fontbf{
  color: #FF5800;
}
/* 过期未签到的 */
.fontbfnos{
  color: #d6d6d6;
}
.fontcur{
  color: #ffffff;
}
.fontaf{
  color: #6E6E6E;
}
.curbg,.date-text{
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%,-50%);
  width: 48rpx;
  height: 48rpx;
}

4、calendar.js(组件只需要传入当前月签到的日期列表  2023-3-1格式,格式可以自己改,但是这里要统一格式,要不然相同日期匹配不了:

微信小程序签到页面的日历实现文章来源地址https://www.toymoban.com/news/detail-496369.html

)

// components/calendar/calendar.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    list:{
      type:Array,
      default:[]
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    curDate:'',//当天日期
    calendarList:[],//日历列表
    day:['S','M','T','W','T','F','S']
  },
  attached(){
    this.getCalendar(); //初始化日历
  },
  /**
   * 组件的方法列表
   */
  methods: {
    getCalendar(){
      // 获取当前月签到日期列表
      let signlist=this.data.list
      let curTime=new Date()
      let curYear=curTime.getFullYear()//当前年份
      let curMonth=curTime.getMonth()+1//当前月份
      let curDate=curTime.getDate()//当前日期
      
      // 获取当月第一天日期  当获取第一天的时候,月份是0~11,0代表获取1月1日
      let curFirstDate=new Date(curYear,curMonth-1,1)
      // 第一天周几
      let firstDay=curFirstDate.getDay()
      // 第一天日期
      let firstDate=curFirstDate.getFullYear()+'-'+(curFirstDate.getMonth()+1)+'-'+curFirstDate.getDate()
      // 获得当月最后一天是几号==本月有多少天  当获取最后一天的时候,月份需要加1
      let lastdate=new Date(curYear,curMonth,0).getDate()
      let bigarr=[]
      // 1号前面空格补上
      for(let d=0;d<firstDay;d++){
        bigarr[d]={num:0}
      }
      // 循环得到本月日历列表详情
      for(let i=1;i<=lastdate;i++){
        let dateitem=curYear+'-'+curMonth+'-'+i
        let type=''//before当前日期之前 day当天 after之后
        let sign='0'//表示没签到
        if(i<curDate){
          type='before'
        }else if(i==curDate){
          type='day'
        }else if(i>curDate){
          type='after'
        }
        // 看看当前日期是否在签到日期列表里面
        let samearr=signlist.filter(v=>v==dateitem)
        if(samearr.length==1){
          sign='1'
        }
        let obj={
          date:dateitem,
          num:i,
          type:type,
          sign:sign
        }
        bigarr.push(obj)
      }
      this.setData({
        curDate:curDate,
        calendarList:bigarr
      })
    },
  }
})

5、签到页面  index.json  

 "usingComponents": {
    "calendar":"/components/calendar/calendar"
  },

6、签到页面应用(list是当前月签到日期列表)放在使用日历的wxml页面里面

//list:['2023-3-1','2023-3-3'] //已签的日期
<calendar list="{{list}}"></calendar>

到了这里,关于微信小程序签到页面的日历实现的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 微信小程序向系统日历添加事件(提醒)实现

    直接上代码 使用 wx.addPhoneCalendar 需要满足以下前置条件: 微信版本支持:wx.addPhoneCalendar 是微信小程序的 API,只有在微信版本号大于等于 6.6.6 的环境下才能使用。 用户授权:在用户手机的日历中添加日程需要获取用户授权,用户需要在小程序中点击授权按钮才能进行操作。

    2024年02月12日
    浏览(87)
  • 微信小程序也可以实现定位打卡/签到打卡了(附源码)

    ✅作者简介:大家好我是瓜子三百克,一个非科班出身的技术程序员,还是喜欢在学习和开发中记录笔记的博主小白! 📃个人主页:瓜子三百克的主页 🔥系列专栏:OC语法 🤟格言:作为一个程序员都应该认识到,好的代码是初级工程师都可以理解的代码, 伟大的代码是可

    2023年04月19日
    浏览(38)
  • 【开题报告】基于微信小程序的签到打卡系统的设计与实现

    考勤管理是企业日常管理的重要内容之一。随着企业规模的扩大和员工数量的增加,传统的考勤管理方式已经不能满足需求。而基于微信小程序的签到打卡系统可以提供方便快捷的签到打卡服务,为企业管理人员提高工作效率和员工考勤管理提供了方便。因此,开发一款基于

    2024年02月04日
    浏览(53)
  • 基于Java+SSM+Vue+uniapp实现微信小程序的学生签到系统小程序

    文末获取源码 开发语言:Java 框架:SSM JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7/8.0 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包:Maven3.3.9 浏览器:谷歌浏览器 小程序框架:uniapp 小程序开发软件:HBuilder X 小程序运行软件:微信开发者 社会发展日新月异,用

    2024年02月03日
    浏览(81)
  • 基于SpringBoot+Vue+uniapp微信小程序的学生签到系统的详细设计和实现

    💗 博主介绍 :✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅 👇🏻 2023-2024年最值得选的微信小程序毕业设

    2024年04月08日
    浏览(51)
  • 基于微信小程序的学生签到系统设计与实现(源码+lw+部署文档+讲解等)

    💗 博主介绍 :✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌💗 👇🏻 精彩专栏 推荐订阅 👇🏻 2023-2024年最值得选的微信小程序毕业设

    2024年03月21日
    浏览(58)
  • 基于微信小程序的课程点名签到系统设计与实现 报告+项目源码及数据库文件

    题目:微信点名系统小程序 目录 第一节 系统分析与设计 1.1 需求分析 1.2 数据库设计 1.2.1 数据库模型图(初步设计) 1.3 系统功能设计 第二节 系统开发及实现 2.1 系统开发平台及工具 2.2 系统页面及使用说明 2.1.2 学生签到页面(首页) 2.1.3 学生查询页面(课程、我的) 2.

    2024年02月12日
    浏览(48)
  • 课堂签到微信小程序的设计与实现 服务器Java+MySQL(附源码 调试 文档)

    摘要 本文介绍了一种《课堂签到微信小程序的设计与实现》。该系统分为三种用户角色,分别是管理员、教师和学生。管理员主要负责班级管理、学生管理、教师管理、课程管理、签到管理、请假管理和系统管理;教师用户主要进行注册登录、学生信息查看、课程信息查看、

    2024年02月05日
    浏览(46)
  • 微信小程序 课程签到系统

    登录页面: 账号是:用户名或者手机号 密码是:(初始密码)123456 主页主要用于展示,没有可以实际使用的按钮可以点击,后期可以添加一些活动等放置在这里。 这是我的课程页面,该页面主要展示自己的课程情况,可以点击查看,来获取课程详情 这是课程详细页面,在

    2024年02月20日
    浏览(34)
  • 微信小程序日历插件用法-举例为(爸妈搜日历)

    一、添加插件 在小程序管理后台添加插件。 小程序管理后台地址:https://mp.weixin.qq.com/ 设置第三方设置插件管理 添加插件,可以直接搜索名称(爸妈搜日历)或者AppID(wx23a9cef3522e4f7c) 二、在小程序app.json文件中引入插件声明 三、在需要使用插件的小程序页面的JSON配置文件中,增

    2024年02月10日
    浏览(75)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包