Element UI:时间组件,支持开始结束时间任选其一

2024-01-05 18:20

本文主要是介绍Element UI:时间组件,支持开始结束时间任选其一,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一、背景

Element-UI中时间段组件el-date-picker,需要开始时间和结束时间都选择上,但是业务场景更多的是区间中可以只选择其中一个或开始时间和结束时间都选择

1.el-date-picker:开始时间与结束时间必须同时选择
在这里插入图片描述
2.业务需求:开始时间、结束时间支持全部选择的同时,还需要仅选择开始/结束时间;①开始时间往后所有;②结束时间往前所有
在这里插入图片描述

二、封装

<template><div class="date-wrapper"><el-date-picker :type="type" :placeholder="startPlaceholder" :clearable="clearable"  :value-format="valueFormat" v-model="startTime":picker-options="pickerOptions" ></el-date-picker><span style="padding: 0 3px">{{rangeSeparator}}</span><el-date-picker :type="type" :placeholder="endPlaceholder" :clearable="clearable" :value-format="valueFormat" v-model="endTime" :picker-options="pickerOptions1" ></el-date-picker></div>
</template>
<script>export default {name: "dateWrapper",props:{value:{type:Array,require:true,},rangeSeparator:{type:String,default:'-'},type:{type:String,default:'date',},valueFormat:{type:String,default:'yyyy-MM-dd',},startPlaceholder:{type:String,default:'选择开始日期'},endPlaceholder:{type:String,default:'选择结束日期'},clearable:{type:Boolean,require:false,}},computed:{startTime:{get(){console.log(this.value,'this.value');return (this.value && this.value[0]) || '';},set(value){console.log(value,'startTime');this.$emit('input',[value,this.endTime])}},endTime: {get(){return (this.value &&this.value[1]) || '';},set(value){console.log(value,'endTime');this.$emit('input',[this.startTime,value])}},pickerOptions: {get(){const that = thisreturn {disabledDate(time) {if(that.endTime && that.endTime !== ''){return time.getTime() > new Date(that.endTime).getTime()}}}},set(value){this.$emit("input", value);}},pickerOptions1:{get(){const that = thisreturn {disabledDate(time) {if(that.startTime && that.startTime !== ''){return (time.getTime()+ 3600 * 1000 * 24) < new Date(that.startTime).getTime()}}}},set(value){this.$emit("input", value);}}},data() {return {}}}
</script>
<style lang="scss">.date-wrapper{display: flex;justify-content: flex-start;vertical-align: center;.el-date-editor{// width: 102px !important;.el-input__inner{padding: 0px 0px 0 10px !important;}.el-input__prefix{display: none;}.el-input__suffix{text-align: right;}}}
</style>

三、实例

方法一:

//引入
components: {ElDateWrapper: () => import("@/components/date-wrapper/index.vue"),},
方法一:<el-date-wrapperv-model="createTime"style="width: 100%"></el-date-wrapper>

方法二:

<componentv-if="attr.is === 'el-date-wrapper'"v-bind="attr"v-model="innerValue[item.key]":source.sync="innerValue"@change="$emit('submit')"style="width: 100%"></component>// 列值---用于循环数组
const Columns = [
{item:{key: "createTimeQueue",title: "创建时间",span:12,},attr: {clearable:true,is: "el-date-wrapper",},},]

这篇关于Element UI:时间组件,支持开始结束时间任选其一的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/573740

相关文章

Golang如何对cron进行二次封装实现指定时间执行定时任务

《Golang如何对cron进行二次封装实现指定时间执行定时任务》:本文主要介绍Golang如何对cron进行二次封装实现指定时间执行定时任务问题,具有很好的参考价值,希望对大家有所帮助,如有错误... 目录背景cron库下载代码示例【1】结构体定义【2】定时任务开启【3】使用示例【4】控制台输出总结背景

k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)

《k8s上运行的mysql、mariadb数据库的备份记录(支持x86和arm两种架构)》本文记录在K8s上运行的MySQL/MariaDB备份方案,通过工具容器执行mysqldump,结合定时任务实... 目录前言一、获取需要备份的数据库的信息二、备份步骤1.准备工作(X86)1.准备工作(arm)2.手

C++ 函数 strftime 和时间格式示例详解

《C++函数strftime和时间格式示例详解》strftime是C/C++标准库中用于格式化日期和时间的函数,定义在ctime头文件中,它将tm结构体中的时间信息转换为指定格式的字符串,是处理... 目录C++ 函数 strftipythonme 详解一、函数原型二、功能描述三、格式字符串说明四、返回值五

华为鸿蒙HarmonyOS 5.1官宣7月开启升级! 首批支持名单公布

《华为鸿蒙HarmonyOS5.1官宣7月开启升级!首批支持名单公布》在刚刚结束的华为Pura80系列及全场景新品发布会上,除了众多新品的发布,还有一个消息也点燃了所有鸿蒙用户的期待,那就是Ha... 在今日的华为 Pura 80 系列及全场景新品发布会上,华为宣布鸿蒙 HarmonyOS 5.1 将于 7

从基础到进阶详解Pandas时间数据处理指南

《从基础到进阶详解Pandas时间数据处理指南》Pandas构建了完整的时间数据处理生态,核心由四个基础类构成,Timestamp,DatetimeIndex,Period和Timedelta,下面我... 目录1. 时间数据类型与基础操作1.1 核心时间对象体系1.2 时间数据生成技巧2. 时间索引与数据

Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析

《Spring组件实例化扩展点之InstantiationAwareBeanPostProcessor使用场景解析》InstantiationAwareBeanPostProcessor是Spring... 目录一、什么是InstantiationAwareBeanPostProcessor?二、核心方法解

VS配置好Qt环境之后但无法打开ui界面的问题解决

《VS配置好Qt环境之后但无法打开ui界面的问题解决》本文主要介绍了VS配置好Qt环境之后但无法打开ui界面的问题解决,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要... 目UKeLvb录找到Qt安装目录中designer.UKeLvBexe的路径找到vs中的解决方案资源

C++ RabbitMq消息队列组件详解

《C++RabbitMq消息队列组件详解》:本文主要介绍C++RabbitMq消息队列组件的相关知识,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录1. RabbitMq介绍2. 安装RabbitMQ3. 安装 RabbitMQ 的 C++客户端库4. A

利用Python实现时间序列动量策略

《利用Python实现时间序列动量策略》时间序列动量策略作为量化交易领域中最为持久且被深入研究的策略类型之一,其核心理念相对简明:对于显示上升趋势的资产建立多头头寸,对于呈现下降趋势的资产建立空头头寸... 目录引言传统策略面临的风险管理挑战波动率调整机制:实现风险标准化策略实施的技术细节波动率调整的战略价

QT6中绘制UI的两种方法详解与示例代码

《QT6中绘制UI的两种方法详解与示例代码》Qt6提供了两种主要的UI绘制技术:​​QML(QtMeta-ObjectLanguage)​​和​​C++Widgets​​,这两种技术各有优势,适用于不... 目录一、QML 技术详解1.1 QML 简介1.2 QML 的核心概念1.3 QML 示例:简单按钮