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

相关文章

element-ui下拉输入框+resetFields无法回显的问题解决

《element-ui下拉输入框+resetFields无法回显的问题解决》本文主要介绍了在使用ElementUI的下拉输入框时,点击重置按钮后输入框无法回显数据的问题,具有一定的参考价值,感兴趣的... 目录描述原因问题重现解决方案方法一方法二总结描述第一次进入页面,不做任何操作,点击重置按钮,再进行下

如何用Java结合经纬度位置计算目标点的日出日落时间详解

《如何用Java结合经纬度位置计算目标点的日出日落时间详解》这篇文章主详细讲解了如何基于目标点的经纬度计算日出日落时间,提供了在线API和Java库两种计算方法,并通过实际案例展示了其应用,需要的朋友... 目录前言一、应用示例1、天安门升旗时间2、湖南省日出日落信息二、Java日出日落计算1、在线API2

如何使用 Bash 脚本中的time命令来统计命令执行时间(中英双语)

《如何使用Bash脚本中的time命令来统计命令执行时间(中英双语)》本文介绍了如何在Bash脚本中使用`time`命令来测量命令执行时间,包括`real`、`user`和`sys`三个时间指标,... 使用 Bash 脚本中的 time 命令来统计命令执行时间在日常的开发和运维过程中,性能监控和优化是不

python中的与时间相关的模块应用场景分析

《python中的与时间相关的模块应用场景分析》本文介绍了Python中与时间相关的几个重要模块:`time`、`datetime`、`calendar`、`timeit`、`pytz`和`dateu... 目录1. time 模块2. datetime 模块3. calendar 模块4. timeit

Java将时间戳转换为Date对象的方法小结

《Java将时间戳转换为Date对象的方法小结》在Java编程中,处理日期和时间是一个常见需求,特别是在处理网络通信或者数据库操作时,本文主要为大家整理了Java中将时间戳转换为Date对象的方法... 目录1. 理解时间戳2. Date 类的构造函数3. 转换示例4. 处理可能的异常5. 考虑时区问题6.

HarmonyOS学习(七)——UI(五)常用布局总结

自适应布局 1.1、线性布局(LinearLayout) 通过线性容器Row和Column实现线性布局。Column容器内的子组件按照垂直方向排列,Row组件中的子组件按照水平方向排列。 属性说明space通过space参数设置主轴上子组件的间距,达到各子组件在排列上的等间距效果alignItems设置子组件在交叉轴上的对齐方式,且在各类尺寸屏幕上表现一致,其中交叉轴为垂直时,取值为Vert

JS常用组件收集

收集了一些平时遇到的前端比较优秀的组件,方便以后开发的时候查找!!! 函数工具: Lodash 页面固定: stickUp、jQuery.Pin 轮播: unslider、swiper 开关: switch 复选框: icheck 气泡: grumble 隐藏元素: Headroom

服务器集群同步时间手记

1.时间服务器配置(必须root用户) (1)检查ntp是否安装 [root@node1 桌面]# rpm -qa|grep ntpntp-4.2.6p5-10.el6.centos.x86_64fontpackages-filesystem-1.41-1.1.el6.noarchntpdate-4.2.6p5-10.el6.centos.x86_64 (2)修改ntp配置文件 [r

如何在页面调用utility bar并传递参数至lwc组件

1.在app的utility item中添加lwc组件: 2.调用utility bar api的方式有两种: 方法一,通过lwc调用: import {LightningElement,api ,wire } from 'lwc';import { publish, MessageContext } from 'lightning/messageService';import Ca

MiniGPT-3D, 首个高效的3D点云大语言模型,仅需一张RTX3090显卡,训练一天时间,已开源

项目主页:https://tangyuan96.github.io/minigpt_3d_project_page/ 代码:https://github.com/TangYuan96/MiniGPT-3D 论文:https://arxiv.org/pdf/2405.01413 MiniGPT-3D在多个任务上取得了SoTA,被ACM MM2024接收,只拥有47.8M的可训练参数,在一张RTX