uni-calendar日历组件没有自定义禁用时间以及禁止今天之前的日期

uni-calendar日历组件没有自定义禁用时间以及禁止今天之前的日期

在uni-app uni-calendar组件内无法提供用户自定义选择固定时间点禁用, 根据其他大佬提供的思路来进行修改.

第一步: 修改util.js

在这里插入图片描述

constructor({
	// 禁止日期
	disabledDay,
	// 禁止今天之前日期
	disabledBefore
} = {}) {
	// 禁止日期
	this.disabledDay = disabledDay || []
	// 禁止今天之前日期
	this.disabledBefore = disabledBefore
}

在这里插入图片描述

let dayDisable = true
for (let dj = 0; dj < this.disabledDay.length; dj++) {
	if (this.disabledDay[dj] == nowDate) {
		dayDisable = false
	}
}
let time_l = new Date();
let year_l = time_l.getFullYear();
let month_l = time_l.getMonth() + 1;
let date_l = time_l.getDate();
function add0(m) {
	return m < 10 ? '0' + m : m
}
let disabledBeforeTime = year_l + '-' + add0(month_l) + '-' + add0(date_l)
let time_1 = new Date(nowDate).getTime() / 1000
let time_2 = new Date(disabledBeforeTime).getTime() / 1000
let disableB = true;
if (this.disabledBefore) {
	if (time_1 < time_2) {
		disableB = false;
	}
}

第二步: 修改uni-calendar.vue

在这里插入图片描述

disabledDay: {
	type: Array,
	default () {
		return []
	}
},
disabledBefore: {
	type: Boolean,
	default: false,
},

在这里插入图片描述

created() {
	this.cale = new Calendar({
		disabledDay: this.disabledDay,
		disabledBefore: this.disabledBefore,
	})
},

在这里插入图片描述

<calendar-item
class="uni-calendar-item--hook"
:weeks="weeks"
:calendar="calendar"
:selected="selected"
:lunar="lunar"
@change="choiceDate"
:disabledDay="disabledDay"
:disabledBefore="disabledBefore">
</calendar-item>

第三步: 修改uni-calendar-item.vue

在这里插入图片描述

disabledDay: {
	type: Array,
	default () {
		return []
	}
},
disabledBefore: {
	type: Boolean,
	default: false,
},

第四步: 使用

<uni-calendar
disabledBefore
:disabledDay="disabledDay"
insert :showMonth="false"
:selected="selected"
@change="getDateTime"
@monthSwitch="getDateMonth" />
// 不能选中的日期
const disabledDay = ref([])

大功告成!

引用: 原文

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值