uniapp小程序日历自定义文案,日期上下滑动方式

1、先展示效果图
在这里插入图片描述在这里插入图片描述在这里插入图片描述

2、接下来上代码,样式的话自行修改(直接去文件内修改,不影响),将calendar文件下载后导入到自己的components目录下,文件下载放在最后面

<template>
	<view class="calendar-page">
	  <calendar type="single" :lunar="false" :showTitle="false" :showButton="false" :btnTitle="btnTitle" :formatter="formatter" :interfaceData="dateAfter" @change="changeDate"></calendar>
	</view>
</template>

<script>
import calendar from "../../components/calendar/calendar.vue"
export default {
    components: {
      calendar
    },
	data() {
		return {
		btnTitle: "选择日期",
        dateAfter: [{date: '2023-02-27',count: 123},{date: '2023-03-01',count: 456},{date: '2023-02-20',count: 77},{date: '2023-02-21',count: 33},{date: '2023-02-23',count: 55},{date: '2023-03-02',count: 12}]
		}
	},
	methods: {
	  // 需要将对应的文案渲染到日历上
      formatter(day){
        let year = day.date.getFullYear();
        let month = day.date.getMonth() + 1; //js从0开始取
        month > 9 ? month = month : month = '0' + month
        let date1 = day.date.getDate();
        date1 > 9 ? date1 = date1 : date1 = '0' + date1
        let compareDay = year + '-' + month + '-' + date1
        this.interfaceData.forEach(item => {
          if(compareDay == item.date){
            day.bottomTitle = item.count + '个'
          }
        })
        return day
      },
      // 点击某个日期,返回选中的日期
      changeDate(e){
        let year = e.getFullYear();
        let month = e.getMonth() + 1; //js从0开始取
        month > 9 ? month = month : month = '0' + month
        let date1 = e.getDate();
        date1 > 9 ? date1 = date1 : date1 = '0' + date1
        let compareDay = year + '-' + month + '-' + date1
        console.log(compareDay)
      }
	}
}
</script>

<style lang="scss" scoped>
</style>

3、常用api

参数说明类型默认值
typesingle表示选择单个日期、multiple表示选择多个日期、range表示选择日期区间stringsingle
color主题色,对底部按钮和选中日期生效string#2471d3
title标题,日期面板顶部标题string日期选择
btnTitle按钮文案,底部按钮文案string确定
isMask是否开启遮罩层booleantrue
isMarkClick是否开启遮罩层关闭booleantrue
btnColor按钮颜色,底部按钮颜色stringundefined
minDate可选择的最小日期Date当前时间
maxDate可选择的最大日期Date比当前时间多一年
show是否显示日历弹窗booleanfalse
position弹出位置,可选值为 top / right / left / bottomstringbottom
lunar是否显示农历,可选值为 true / falsebooleantrue
showButton是否显示底部按钮,可选值为 true / falsebooleantrue
fullScreen是否全屏日历,可选值为 true / false (左侧和右侧弹出时只能全屏)booleanfalse
showClose是否显示关闭按钮,可选值为 true / falsebooleantrue
closeImg右上角关闭按钮图标string
poppable是否以弹层的形式展示日历booleantrue
formatter日期格式化函数function-
interfaceData用于指定哪些日期需要显示文案Array[]
change返回选中的日期function-

formatter 里面的内容

参数作用类型
text中间显示的文字string
topTitle上方的提示信息string
bottomTitle下方的提示信息string

下载链接:calendar.zip

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值