el-date-picker 有效时间精确到时分秒 且给有效时间添加标记

el-date-picker实现有效日期做标记且时分秒限制选择范围


在这里插入图片描述
代码如下:

// html部分
<el-date-picker
    v-model="dateTime"
    type="datetime"
    :picker-options="pickerOptions"
>
</el-date-picker>


// js部分
/**
 * 回放有效日期开始时间
 */
@Prop({
    default: function() {
        return null
    },
    required: false
})
recordStartTime!: Date

/**
 * 回放有效日期结束时间
 */
@Prop({
    default: function() {
        return null
    },
    required: false
})
recordStopTime!: Date

// el-date-picker绑定的值
dateTime: number = new Date().getTime()

get choosedDate() {
   let dateObj = {
        year: new Date(this.dateTime).getFullYear(),
        month: new Date(this.dateTime).getMonth(),
        date: new Date(this.dateTime).getDate()
    }
    return JSON.stringify(dateObj)
}

@Watch('choosedDate', { immediate: true })
watchChoosedDate(newVal) {
    let dateObj = JSON.parse(newVal)
    /**
     * 开始时间限制
    */
    if (
        dateObj.year == new Date(this.recordStartTime).getFullYear() &&
        dateObj.month == new Date(this.recordStartTime).getMonth() &&
        dateObj.date == new Date(this.recordStartTime).getDate()
    ) {
        this.pickerOptions = {
            cellClassName: (time) => {
                let that = this
                if(time.getTime() > new Date(that.recordStartTime).getTime() - 8.64e7 && time.getTime() < new Date(that.recordStopTime).getTime()){
                    return 'custom_date_class';
                }
            },
            selectableRange: `${new Date(this.recordStartTime).format('hh:mm:ss')} - 23:59:59`
        }
    } 
    /**
     * 结束时间限制
     */
    else if (
        dateObj.year == new Date(this.recordStopTime).getFullYear() &&
        dateObj.month == new Date(this.recordStopTime).getMonth() &&
        dateObj.date == new Date(this.recordStopTime).getDate()
    ) {
        this.pickerOptions = {
            cellClassName: (time) => {
                let that = this
                if(time.getTime() > new Date(that.recordStartTime).getTime() - 8.64e7 && time.getTime() < new Date(that.recordStopTime).getTime()){
                    return 'custom_date_class';
                }
            },
            selectableRange: `00:00:00 - ${new Date(this.recordStopTime).format('hh:mm:ss')}`
        }
    } 
    /**
     * 其他时间
     */
    else {
        this.pickerOptions = {
            cellClassName: (time) => {
                let that = this
                if(time.getTime() > new Date(that.recordStartTime).getTime() - 8.64e7 && time.getTime() < new Date(that.recordStopTime).getTime()){
                    return 'custom_date_class';
                }
            },
            selectableRange: `00:00:00 - 23:59:59`
        }
    }
}

// css部分 给有效日期下面添加标记
<style lang="less">
.custom_date_class {
    &::after {
        content: "";
        display: block;
        position: absolute;
        width: 4px;
        height: 4px;
        border-radius: 100%;
        background-color: var(--mb-main-color);
        left: 50%;
        transform: translateX(-2px);
    }
}
</style>

相关推荐

  1. elementUi el-date-picker时间控件精确分秒

    2024-06-15 08:36:05       12 阅读
  2. el-date-picker时间戳单位

    2024-06-15 08:36:05       43 阅读
  3. el-date-picker(日期时间选择)那些事

    2024-06-15 08:36:05       27 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-06-15 08:36:05       16 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-06-15 08:36:05       16 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-06-15 08:36:05       15 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-06-15 08:36:05       18 阅读

热门阅读

  1. 找工作小项目:day15-macOS支持、完善逻辑

    2024-06-15 08:36:05       6 阅读
  2. 自动化机械臂喷涂生产线方案五

    2024-06-15 08:36:05       8 阅读
  3. AWD攻防比赛流程手册

    2024-06-15 08:36:05       7 阅读
  4. 公链常用的共识算法

    2024-06-15 08:36:05       8 阅读
  5. 探索 Spring Boot 集成缓存功能的最佳实践

    2024-06-15 08:36:05       8 阅读
  6. 第十三章:huggingface的resume训练源码内容

    2024-06-15 08:36:05       7 阅读
  7. 用python写一个企业知识库算法

    2024-06-15 08:36:05       8 阅读
  8. ADBMS1818驱动程序解析

    2024-06-15 08:36:05       7 阅读
  9. 浏览器无痕模式和非无痕模式的区别

    2024-06-15 08:36:05       6 阅读
  10. MySQL + Keepalived自动切换

    2024-06-15 08:36:05       6 阅读
  11. 2024年考什么证书值钱?着急提升看过来!

    2024-06-15 08:36:05       9 阅读
  12. Mybatis面试系列六

    2024-06-15 08:36:05       6 阅读
  13. C语言——指针

    2024-06-15 08:36:05       6 阅读