vue3+ts封装Date-Picker时间插件

Date-Picker时间插件封装:

<template>
    <div class="date-picker">
        <div class="date-picker-box">
            <div class="date-picker-box-header">
                <div class="date-picker-box-header-prev" @click="preMon">{
   {
    '<<' }}</div>
                <div class="date-picker-box-header-year">{
   {
    year }}{
   {
    month }}</div>
                <div class="date-picker-box-header-next" @click="nextMon">{
   {
    '>>' }}</div>
            </div>
            <div class="date-picker-box-content">
                <div class="date-picker-box-content-week">
                    <div class="date-picker-box-content-weekday"></div>
                    <div class="date-picker-box-content-weekday"></div>
                    <div class="date-picker-box-content-weekday"></div>
                    <div class="date-picker-box-content-weekday"></div>
                    <div class="date-picker-box-content-weekday"></div>
                    <div class="date-picker-box-content-weekday"></div>
                    <div class="date-picker-box-content-weekday"></div>
                </div>
                <div class="date-picker-box-content-cont">
                    <div class="date-picker-box-content-cont-day" v-for="(item, index) in pickerDate" :key="index" :class="{ outfocus: item.outfocus, today: item.showday, start: showStartEnvfun(item.dateNum, item.outfocus), end: showEndEnvfun(item.dateNum, item.outfocus), black: showBlack(item.dateNum, item.outfocus), half: showHalffun(item.dateNum, item.outfocus) }" @click="checkDay(item.dateNum, item.outfocus)">
                        {
   {
    item.dateNum }}
                    </div>
                </div>
            </div>
            <div class="date-picker-box-footer">
                <div class="date-picker-box-footer-today">今天</div>
                <div class="date-picker-box-footer-start">开始</div>
                <div class="date-picker-box-footer-end">结束</div>
            </div>
            <div class="confim">确定</div>
        </div>
    </div>
</template>

<script setup lang="ts">
import {
    ref, reactive } from 'vue';
type Pinks = {
   
    dateNum: number;
    outfocus: boolean;
    showday?: boolean;
};
let year = ref<number>(0); // 展示的年
let month = ref<number>(0); // 展示的月
let startEnv = ref<string>(''); // 开始日期
let endEnv = ref<string>(''); // 结束日期
let today = ref<number>(0); // 当天
let pickerDate = reactive<Pinks[]>([]); // 选择日期

// 两个日期之间间隔多少天
const getDatePeriod = (sDate1: string, sDate2: string) => {
   
    // 获得两个时间的时间戳
    let oDate1 = new Date(sDate1)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Hoki802

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

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

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

打赏作者

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

抵扣说明:

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

余额充值