小程序日期日历选择组件及调用

本文介绍了如何在小程序中创建一个名为selcalendar的自定义日期日历选择组件。详细讲解了组件的js、wxml和wxss代码实现,并阐述了在实际页面中调用该组件的方法。
摘要由CSDN通过智能技术生成

      

新建小程序组件 selcalendar

js代码:

// pages/components/selcalendar.js
Component({
  /**
   * 组件的属性列表
   */
  properties: {
    //星期数组
    weekText: {
      type: Array,
      value: ['日', '一', '二', '三', '四', '五', '六']
    }
  },

  /**
   * 组件的初始数据
   */
  data: {
    showstate:false,
    selspace:1,/*0 单选 1 选择时间段*/
    //当月格子
    thisMonthDays: [],
    //上月格子
    empytGridsBefore: [],
    //下月格子
    empytGridsAfter: [],

    allgrid:[],

    selmonth:'',
    year: 2020,
    month: 1,
    
    datestart:'',
    dateend:'',
    selflag:0 /* 0 未选择 ,1 选择开始 2 选择结束 */
  },

  /**
   * 组件的方法列表
   */
  methods: {
     /*
     selspace:0 单选 1 选择日期段
     */
    funinit:function(selspace){
      this.setData({selspace:selspace,selflag:0,datestart:'',dateend:''});
        this.today();
        //this.display();
    },

    /*选择时间段*/
    selday:function(e){
      var index = e.currentTarget.dataset.index;

      if(this.data.selspace == 0){
        /*选择日期*/
        this.setData({
          selflag:1,
          datestart:this.data.allgrid[index].rq,
          dateend:this.data.allgrid[index].rq
        });

        return;
      }

      /*选择日期段*/
      var selflag = this.data.selflag;
      if(selflag == 2){
        selflag = 0;
        this.setData({
          datestart:'',
          dateend:''
        })
      }

      

      if(selflag ==0){
        this.setData({
          selflag:1,
          datestart:this.data.allgrid[index].rq
        })
      }
      else if(selflag ==1){
        var datestart = this.data.datestart;
        var dateend = this.data.allgrid[index].rq;
        var tmprq = dateend;

        if(datestart > dateend){
          dateend = datestart;
          datestart = tmprq;
        }

        this.setData({
          selflag:2,
          datestart:datestart,
          dateend:dateend
        })
      }

    },
    funhide:function(){
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值