微信小程序日历插件用法-举例为(爸妈搜日历)

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

一、添加插件

在小程序管理后台添加插件。
小程序管理后台地址:https://mp.weixin.qq.com/
设置>第三方设置>插件管理

微信小程序日历插件用法-举例为(爸妈搜日历)

添加插件,可以直接搜索名称(爸妈搜日历)或者AppID(wx23a9cef3522e4f7c)

二、在小程序app.json文件中引入插件声明

"plugins": {
    "calendar": {
      "version": "1.3.3",
      "provider": "wx23a9cef3522e4f7c"
    }
  },

三、在需要使用插件的小程序页面的JSON配置文件中,增加配置:

{
  "usingComponents": {
    "calendar": "plugin://calendar/calendar"
  }
}

四、wxml文件写入


  <calendar bindselectDate='selectDate' bindnextMonth='nextMonth' bindprevMonth='prevMonth'/>

五、js文件定义方法


  /**
    * 点击的日期
    */
  selectDate: function (e) {
    console.log(e)
    let clickDay = e.detail.date
    wx.showModal({
      title: '当前日期',
      content: '当前日期:' + clickDay 
    });
  },
  /**
    * 点击上个月
    */
   prevMonth: function (e) {
    console.log(e)
    const currentYear = e.detail.currentYear;
    const currentMonth = e.detail.currentMonth;
    wx.showModal({
      title: '当前日期',
      content: '当前年份:' + currentYear + '年\n当前月份:' + currentMonth + '月'
    });
  },
  /**
    * 点击下个月
    */
  nextMonth: function (e) {
    console.log(e)
    const currentYear = e.detail.currentYear;
    const currentMonth = e.detail.currentMonth;
    wx.showModal({
      title: '当前日期',
      content: '当前年份:' + currentYear + '年\n当前月份:' + currentMonth + '月'
    });
  },

说明:js不加,页面也可以呈现日历效果

插件api

日历

介绍:日历基本功能,自定义样式,考勤状态

使用方法:

1、 在微信小程序管理后台——设置——第三方服务,按 AppID(wx23a9cef3522e4f7c)搜索到该插件并申请授权(ps:一般不会出现拒绝的情况。如果申请被拒绝了,请重新申请,有时候管理员手抽点错了,请见谅)。

2、在要使用该插件的小程序 app.json 文件中引入插件声明。

"plugins": {
    "calendar": {
        "version": "1.3.3", (选取对应的版本号,建议使用最新版本)
        "provider": "wx23a9cef3522e4f7c"
    }
}

3、在需要使用到该插件的小程序页面的 JSON 配置文件中,做以下配置:

{
  "usingComponents": {
    "calendar": "plugin://calendar/calendar"
  }
}

4、在相应的 HTML 页面中添加以下语句即可完成插件的嵌入。

<calendar />

5、说明:默认的用法,将具备以下样式特点:

  1. 显示当前月份的日历;
  2. 显示日历标题、显示上下月按钮;
  3. 显示周标题,周标题默认为 cn 类型,即中文简写;
  4. 显示主标题 ,默认为cn-n类型
属性名 类型 默认值 说明
curYear Number 当前年份 年份
curMonth Number 当前月份 月份 (1 - 12)
day Number 当前日 日期 (1-31 若日期超过该月天数,月份自动增加)
header_show Boolean true 主标题是否显示
next Boolean true 是否显示下个月按钮
prev Boolean true 是否显示下个月按钮
remark_show Boolean false 备注是否显示
remark_style String headline 备注类型
count_num Number 0 备注类型为date 备注信息1
count_ber Number 0 备注类型为date 备注信息2
count_txt String 此处为备注信息 备注类型为headline 的备注信息
count_txt_user Array [] 属性有:count_txt和 count_ber 备注类型为userdefined的备注信息(仅支持1.0.7版及以上)具体看下面说明
weekTitle_show Boolean true 周标题是否显示
week_type String cn 周标题类型
active_type String circle 选中日期样式
circle_show Boolean true 日期下方的点是否显示(每过一天添加一个)
pitch_on String circle 日期下方的点样式
allshow Boolean false 日期下方的线是否全部显示(整个月的显示)(仅支持1.0.8版本及以上)
appear Boolean false 样式线是否显示
mystatus Array [] 想要的对应日期的状态 (仅支持1.0.4版及以上)
selectedDate String "" 一开始选中的日期、不传入默认为当天(仅支持1.0.7版及以上)
custom Boolean false 是否自定义上下月文字(仅支持1.0.7版及以上)
switchover Array ['上一月','下一月'] 自定义的上下月按钮文字 只有custom为true时有效(仅支持1.0.7版及以上)
isClick Boolean false 是否带有主标题(年月份)点击选择日期事件(仅支持1.0.7版及以上)
txt_type String cn-n 主标题类型(年月份)[en、full-en、cn、cn_n](仅支持1.0.7版及以上)
weekheight Number 120 控制单元格高度 (仅支持1.0.8版本及以上)
txtlist Array [] 自定义日期下方的文字 (仅支持1.0.8版本及以上)具体看下面文字设置说明 (1.2.0版本已废弃此属性,请使用speciallist属性)
colored String #a1a1a1 设置过去日期的字体颜色, closelaststyle为true才有效(仅支持1.1.1版本及以上)
closelaststyle Boolean false 是否设置过去日期的字体样式(仅支持1.1.1版本及以上)
speciallist Array [] 自定义日期下方的文字,或标注特殊日期的样式(仅支持1.2.0版本及以上) 具体请看下方说明
isTodaybtn Boolean false 是否显示回到今天的按钮(仅支持1.2.0版本及以上)
todaybtn_txt String 今天 回到今天的按钮显示的文字信息(仅支持1.2.0版本及以上)
ifRecordClickedDate Boolean false 是否记录点击日期 (开启多选模式)(仅支持1.3.0版本及以上)
clickedDate Array [] 记录点击日期的数组 (仅支持1.3.0版本及以上)
<calendar 
cur-year="{{curYear}}"
cur-month="{{curMonth}}" 
day="{{day}}" 
header_show='{{header_show}}' 
prev='{{prev}}' 
next='{{next}}' 
/>
data: {
    curYear: new Date().getFullYear(), // 年份
    curMonth: new Date().getMonth() + 1,// 月份 1-12
    day: new Date().getDate(), // 日期 1-31 若日期超过该月天数,月份自动增加
    header_show: true, // 主标题是否显示
    prev: true, // 上一个月按钮是否显示
    next: true, // 下一个月按钮是否显示
  },
count_txt_user说明(样式看下面样式说明):
count_txt_user:[
    { 'count_txt': '字段1:', 'count_ber': '内容1' },
    { 'count_txt': '字段2:', 'count_ber': '内容2' },
    { 'count_txt': '字段3:', 'count_ber': '内容3' },
]
remark_style 有效值
说明
headline 普通备注
date 出勤备注
userdefined 自定义备注(多字段)此时需要传count_txt_user自己定义的信息,(仅支持1.0.7版及以上)
week_type 有效值
说明
cn 显示为:日, 一, 二, 三, 四, 五, 六
en 显示为:S, M, T, W, T, F, S
full-en 显示为:Sun, Mon, Tue, Wed, Thu, Fri, Sat
active_type 有效值
说明
circle 圆形背景
square 方形背景
pitch_on 有效值
说明
circle 圆形背景
square 方形背景
txt_type 有效值(支持1.0.7版及以上)
说明
cn 显示为:二零一八-七月
cn-n 显示为:2018-07
cn-d 显示为:2018年-07月(仅1.2.0版本及以上支持)
en 显示为:2018-Jul
full-en 显示为:2018-July
speciallist属性(支持1.2.0版及以上)
说明
date 自定义的日期
background 自定义的日期的背景样式
text 自定义日期的自定义文字
color 自定义日期的颜色
textBgcolor 自定义文字的背景色
this.setData({
      speciallist: [
        { date: '2019-09-02', background: 'yellow',text:'文字1',color:'', textBgcolor: '#e19' },
        { date: '2019-09-05', background: 'red', text:'文字2'  },
      ]
    })

效果: 微信小程序日历插件用法-举例为(爸妈搜日历) 微信小程序日历插件用法-举例为(爸妈搜日历)

事件

注: 在js写方法 在html传入

事件方法 说明
bindnextMonth 点击下个月
bindprevMonth 点击上个
bindselectDate 点击日期
bindchooseDate 点击主标题(年月)(支持1.0.7版及以上)
bindgotoday 点击返回今天按钮 (支持1.2.0版及以上 )
bindrecordClickedDate 当开启多选模式时,返回已选择的日期数组(支持1.3.0版以上)
<calendar bindselectDate='selectDate'  bindnextMonth='nextMonth' bindprevMonth='prevMonth' bindchooseDate='chooseDate'/>

  /**
    * 点击上个月
    */
  nextMonth: function (e) {
    console.log(e)
    const currentYear = e.detail.currentYear;
    const currentMonth = e.detail.currentMonth;
    wx.showModal({
      title: '当前日期',
      content: '当前年份:' + currentYear + '年\n当前月份:' + currentMonth + '月'
    });
  },

事件都有一个e ,可以获取一些返回的信息

样式
类名 说明
calendar-style 日历整体样式
header-style 标题样式
weektitle-style 周标题面板样式
datatitle-style 日期面板样式
dotcolor-o 对应日期的状态为1 日期下方的点颜色变化 目前模拟出勤情况 0:未出勤 1:正常出勤 2:事假 3:病假 9:休息null:暂无数据 即为出勤样式
dotcolor-t 对应日期的状态为其他 日期下方的点颜色变化 目前模拟出勤情况 0:未出勤 1:正常出勤 2:事假 3:病假 9:休息null:暂无数据 即为缺勤样式
headline-style 备注类型为headline的备注信息样式
datefont-style 日期字体样式
restcolor-style 单独设置周六日的样式 此时需考虑优先级!important(仅支持1.0.4版及以上)
active-coloro 选中的样式 具体说明请看文档下方的说明(仅支持1.0.5版及以上)
active-colort 当前日期的样式 具体说明请看文档下方的说明(仅支持1.0.5版及以上
userdefined_style 备注样式为userdefined 有效,key:value的整体样式 (仅支持1.0.7版及以上
counttxt_style 备注样式为userdefined 有效,key的样式(仅支持1.0.7版及以上)
countber_style 备注样式为userdefined 有效,value的样式(仅支持1.0.7版及以上)
txt_style 日期下方的文字的样式设置 (仅支持1.0.8版本及以上)
todaybtn-style 返回今天的按钮的样式(仅支持1.2.0版本及以上)

注:

  1. 在wxss自定义写样式,在html传入;注意优先级!important。

例:

/* 主题面板样式  */
.header-style{
  background: #188be4 ;  
  color: #fff;
}
<calendar header-style='header-style' />
样式说明
选中样式
日历插件 有个选中样式(默认选中的是当天),如图:

选中的样式不是当天,如图:

微信小程序日历插件用法-举例为(爸妈搜日历)

点击选中其他日期时,样式会出现对应的日期上。

.active-coloro {
  color: #fff;
  background: #188be4;
}
选中样式样式二:

如果想要一下样式,及:点击其他日期时,显现当天的样式,如图:
微信小程序日历插件用法-举例为(爸妈搜日历)

此时在使用页面的wxss中写下已下代码:

 .active-colort {
    color: #fff;
    background: #b8d5eb;
  }

使用时考虑优先级,可自己改变想要的颜色

考勤下方小点的样式

样式如下:

wxss中定义样式,然后再wxml中传入:

/* 出勤  */
.dotcolor-o{
    background-color: #188be4 !mportant;  
}
/* 未出勤  */
.dotcolor-t{
    background-color: #FF7F50 !mportant;  
}
  1. 分别由dotcolor-o(正常出勤)和dotcolor-t(病假、事假) 具体区分病假、事假可以在点击事件中获取e ,有相应的的数据。
  2. 如果为null(暂无数据)圆点不会显现,circle_showtrue 也无效。
  3. circle_showtrue 日期下方对应的小点才会显现 ,样式不会显现
  4. 小点只会显示到当前的日期。每过一天多一个
备注为userdefined 的样式

样式如下:

在使用日历插件文件的wxss中:

/* 备注信息为headline样式  */
.headline-style{
  background: #ddcbf3 !important;
  display: flex;
  justify-content: space-around;
}
/*key的样式*/
.counttxt_style{
  color: #333;
}
/*vuale的样式*/
.countber_style{
  color: #f39eac;
}
考勤状态说明

由于许多项目可能涉及到考勤情况,因此加入了考勤的状态信息(仅支持1.0.4版以上)。目前考勤只支持传入数字:

0:未出勤 1:正常出勤 2:事假 3:病假 9:休息null:暂无数据;具体的对应需要前端页面做相应处理。

方法:

  1. js中定义对应的mystatus信息:

    例如:

     data: {
        mystatus: [],  // 状态  状态  0:未出勤 1:正常出勤 2:事假 3:病假 9:休息 
      },
     onLoad:function() {
         //发起状态请求,在请求成功后,定义mystatus
    
     // 例子就不写请求了,直接定义如下
     this.setData({
      mystatus: [1, 2, 1, 1, 3, 1, 1, 2, 9, 9, 1, null, 1, 2, 1, 9, 9, null, 0, 1, 0, 3, 9, 9, 1, 1, 0, 0, 1, 9]
    })
    

}

此时需要注意,如果当天无数据就为null

  • wxml中:

  • <calendar mystatus='{{mystatus}}' circle_show="{{true}}"/>
    

    circle_showtrue 日期下方对应的小点才会显现 ,同时需要注意日期所占的高度时候足够,可以通过weekheight进行设置,具体的样式说明请看上方的样式说明

    1. wxss中定义:

      /* 出勤  */
      .dotcolor-o{
          background-color: #188be4 !mportant;  
      }
      /* 未出勤  */
      .dotcolor-t{
          background-color: #FF7F50 !mportant;  
      }
      
    1. 可以在点击事件中查看考勤情况
    selectDate:function (e) {
        // console.log(e.detail.status)
        const date = e.detail.date;
        const week = e.detail.week;
        var statustext;
        if(e.detail.status == 1){
          statustext = "正常出勤"
        } else if(e.detail.status == 0) {
          statustext = "未出勤"
        } else if(e.detail.status == 2){
          statustext = "事假"
        } else if(e.detail.status == 3) {
          statustext = "病假"
        } else if(e.detail.status == 9) {
          statustext = "休息"
        } else{
          statustext = ""
        }
        wx.showModal({
            title: '信息',
            content: '当前时间:' + date + ' ' + week + ' ' + statustext
          });
      },
    

    效果:

    微信小程序日历插件用法-举例为(爸妈搜日历)

    文字设置说明

    方法1:(1.2.0版以废弃此方法,可以使用speciallist属性)

    1. js中定义对应的txtlist信息:

      例如:

       data: {
          txtlist: [], 
        },
       onLoad:function() {
           //发起状态请求,在请求成功后,定义txtlist
      
       // 例子就不写请求了,直接定义如下
       this.setData({
        txtlist: ['', '', '', '文字1', '', '', '文字2', '', '', '',] 
      })
      

    }

    此时需要注意,如果当天无数据就为' ' (空字符串)

  • wxml中:

  • <calendar txtlist='{{txtlist}}' txt_style='{{txt_style}}' />
    

    txt_style设置文字的大小颜色

    效果:

    微信小程序日历插件用法-举例为(爸妈搜日历)

    方法2:(1.2.0及以上版本支持 )

    1. js中定义对应的speciallist信息:

      例如:

       data: {
          speciallist: [], 
        },
       onLoad:function() {
           this.setData({
           speciallist: [
              { date: '2018-11-02', background: 'yellow', text:'文字1',color:'' },
              { date: '2018-11-05', background: 'red', text: '文字2'  },
              { date: '2018-11-11', background: 'bule', text: '文字' },
              { date: '2018-11-12', background: 'orange', text: '文字' },
              { date: '2018-11-06', background: 'white', text: '文字' },
            ],
          })
       }
      
    1. wxml中:
    <calendar speciallist='{{speciallist}}' txt_style='{{txt_style}}' />
    

    txt_style设置文字的大小颜色

    效果:

    微信小程序日历插件用法-举例为(爸妈搜日历)

    微信小程序日历插件用法-举例为(爸妈搜日历) 文章来源地址https://www.toymoban.com/news/detail-495987.html

    1. 可以在selectDate点击事件中得到文字信息

到了这里,关于微信小程序日历插件用法-举例为(爸妈搜日历)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

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

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

相关文章

  • 微信小程序日历组件(可滑动,可展开收缩,可标点)

    效果图 组件介绍 原生小程序编写,简单轻便,拿来即用。 推荐从代码托管地址获取代码,后续会更新功能: github地址 | gitee地址 代码部分(这里可能不是最新的,推荐去gitee克隆代码) calendar.wxml calendar.js calendar.json calendar.wxss

    2024年02月11日
    浏览(47)
  • 微信小程序使用 npm 包,举例图文详解

    下载安装,配置npm环境变量,不懂得可以上网查教程,本文不再描述 1、初始化 package.json 2、勾选允许使用 npm(新版微信小程序开发工具忽略这一步) 3、下载 npm 包 4、构建 npm 不清楚的可以往下看详解 1、初始化 package.json 在小程序开发工具\\\"终端\\\"输入: 执行命令成功后自动

    2023年04月09日
    浏览(43)
  • 微信小程序使用vant calendar日历组件 default-date 默认选中的日期无效?

    废话少说 直接贴代码 总结:  ①: 要有一个minDate 最小可选日期,要不然无法选择之前的时间 ②: defaultDate(数组): 绑定为时间戳,,[ 起始时间,截止时间 ] , 转换时间戳时要再次getTime()否则设定默认时间失败!!!重点!!!

    2024年02月02日
    浏览(58)
  • 微信小程序-key的用法

    在微信小程序中,key是用于标识列表中每个项目的唯一标识符。当使用wx:for指令渲染列表时,可以使用key属性来指定每个项目的key值。这有助于提高列表渲染的性能,并确保在列表中添加或删除项目时,只更新必要的项目。 wxml: js: 操作前: 操作后: 说明:被选中的checkbox出

    2024年02月05日
    浏览(76)
  • 微信小程序中await的用法

    在使用await的函数中,await需要被async包围,可以直接写在函数头上 在需要同步执行的语句前加await 微信开发者工具需要打开增强编译

    2024年02月11日
    浏览(44)
  • 微信小程序实时日志使用,setFilterMsg用法

    背景 为帮助小程序开发者快捷地排查小程序漏洞、定位问题,我们推出了实时日志功能。开发者可通过提供的接口打印日志,日志汇聚并实时上报到小程序后台。开发者可从We分析“性能质量-实时日志-小程序日志”进入小程序端日志查询页面,或从“性能质量-实时日志-插件

    2024年04月27日
    浏览(34)
  • 微信小程序wx.getUserProfile的用法

    接触了以前开发的一个微信小程序,发现wx.getUserInfo这个官方接口不能获取用户的信息,我重新创建了一个新的项目,发现可以用wx.getUserProfile这个官方接口来获取用户信息,具体操作如下:1.首先在xxxx.jslim里面定义初始值,isAuthorization是为了解决每次登陆都需要获取用户信息

    2024年02月14日
    浏览(38)
  • 微信小程序插件之微信同声传译

    1、在小城程序后台,点击设置-第三方设置-插件管理-添加插件。 搜索微信同声传译,添加到小程序即可。 2、基于uniapp开发的小程序,在uni项目中的的manifest.json文件中,找到 mp-weixin,添加plugins   3、添加成功之后,就可以在想要文字转语音的地方使用 示例:

    2024年01月20日
    浏览(71)
  • 微信小程序使用第三方插件

    这里是使用npm方式安装第三方插件: 1,首先新建一个微信小程序项目并找到该项目的文件地址, 如下图: 该项目中我以安装 weui插件为例进行演示。在上图中的目录中打开PowerShell窗口,先要进行npm 初始化,输入npm help init  ,默认回车下一步下一步就ok; 2,输入命令:npm in

    2024年02月08日
    浏览(63)
  • 微信小程序第三方插件申请

    记录下小程序申请插件的页面,之前自己找了很久,方便后续使用 1. 先找到自己需要的第三方插件的appid 2. 登录微信公众平台后台(mp.weixin.qq.com) 3. 打开小程序插件页面          https://mp.weixin.qq.com/wxopen/plugindevdoc?appid=插件appid         如小程序直播的页面就是:http

    2024年02月09日
    浏览(51)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包