uni-app 自定义选择日期1(2021-09-16)

效果图:

 组件:ren-calendar.vue

<template>
    <view class="calendar-wrapper">
        <view class="header" v-if="headerBar">
            <view class="pre" @click="changeMonth('pre')">上个月</view>
            <view>{ {y+'年'+formatNum(m)+'月'}}</view>
            <view class="next" @click="changeMonth('next')">下个月</view>
        </view>
        <view class="week">
            <view class="week-day" v-for="(item, index) in weekDay" :key="index">{ { item }}</view>
        </view>
        <view :class="{ hide: !monthOpen }" class="content" :style="{ height: height }">
            <view :style="{ top: positionTop + 'rpx' }" class="days">
                <view class="item" v-for="(item, index) in dates" :key="index">
                    <view class="day" @click="selectOne(item, $event)" :class="{
                            choose: choose == `${item.year}-${item.month}-${item.date}`&&item.isCurM,
                            nolm: !item.isCurM,
                            today: isToday(item.year, item.month, item.date),
                            isWorkDay: isWorkDay(item.year, item.month, item.date)
                        }">
                        { { Number(item.date) }}
                    </view>
                    <view class="markDay" v-if="isMarkDay(item.year, item.month, item.date)&&item.isCurM"></view>
                    <!-- <view class="today-text" v-if="isToday(item.year, item.month, item.date)">今</view> -->
                </view>
            </view>
        </view>
        <image src="https://i.loli.net/2020/07/16/2MmZsucVTlRjSwK.png" mode="scaleToFill" v-if="collapsible"
            @click="toggle" class="weektoggle" :class="{ down: monthOpen }"></image>
    </view>
</template>

<script>
    export default {
        name: 'ren-calendar',
        props: {
            // 星期几为第一天(0为星期日)
            weekstart: {
                type: Number,
                default: 0
            },
            // 标记的日期
            markDays: {
                type: Array,
                default: () => {
                    return [];
                }
            },
            //是否展示月份切换按钮
            headerBar: {
                type: Boolean,
                default: true
            },
            // 是否展开
            open: {
                type: Boolean,
                default: true
            },
            //是否可收缩
            collapsible: {
                type: Boolean,
                default: true
            },
            //未来日期是否不可点击
            disabledAfter: {
                type: Boolean,
                default: false
            }
        },
        data() {
            return {
                weektext: ['日', '一', '二', '三', '四', '五', '六'],
                y: new Date().getFullYear(), /

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

yyxhzdm

你的鼓励是我创作的最大动力!!

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值