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",},},]

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/323671.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

计算机创新协会冬令营——暴力枚举题目06

我给大家第一阶段的最后一道题就到这里了&#xff0c;下次得过段时间了。所以这道题简单一点。但是足够经典 下述题目描述和示例均来自力扣&#xff1a;两数之和 题目描述 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target …

R2 + PicGo:教你搭建免费图床并实现快速上传和压缩图片

图片是网站中的重要元素&#xff0c;它们可以增加视觉效果&#xff0c;吸引读者的注意力&#xff0c;传达信息和情感。但是&#xff0c;图片也会占用很多的存储空间和流量&#xff0c;如果您使用传统的图床服务&#xff0c;可能会遇到以下问题&#xff1a;费用高昂、速度慢、容…

雨课堂作业整理2

第十九次作业 1.设 G G G 为无环图&#xff0c;如果把 G G G 的每条边都染上颜色&#xff0c;使得相邻的边的颜色不同&#xff0c;则这种染法为边着色。该说法&#xff08; &#xff09;。 A.正确 B.错误 2.设 G G G 如下图所示&#xff0c;则 G G G 是 3 3 3 边可着色的…

电商要怎么学?企业如何进行数字化转型打破市场僵局?

电商要怎么学&#xff1f;企业如何进行数字化转型打破市场僵局&#xff1f; 电商的学习需要从多个方面入手&#xff0c;首先需要了解电商的基本概念和原理&#xff0c;包括电商平台的运营模式、商品推广、客户服务等。此外&#xff0c;还需要掌握电商平台的操作技能&#xff0c…

[ABAP] 修改SAP网页端登录界面

文章目录 前言一、配置服务二、Class实现1. 创建类2. 重写方法 三、测试四、附 - 自动登录 前言 我们在SICF配置一些HTTP服务使用之后使用时&#xff0c;打开网页会提示输入账号密码&#xff0c;但是这个会以弹窗形式出现。 这对客户体验是很不友好的&#xff0c;这篇文章将会…

经典目标检测YOLO系列(一)YOLOV1的复现(1)总体架构

经典目标检测YOLO系列(一)实现YOLOV1网络(1)总体架构 实现原版的YOLOv1并没有多大的意义&#xff0c;因此&#xff0c;根据《YOLO目标检测》(ISBN:9787115627094)一书&#xff0c;在不脱离YOLOv1的大部分核心理念的前提下&#xff0c;重构一款较新的YOLOv1检测器&#xff0c;来…

web学习笔记(九)

目录 1.初识JS(JavaScript) 1.1什么是JavaScript&#xff1f; 1.2HTML5 CSS3 javaScript三者的关系 1.3 JAVAScript的作用 1.4JAVAScript的组成部分 1.5JS注释 1.6补充知识 2.JS的引入方法 2.1行内式 2.2嵌入式&#xff08;内嵌式&#xff09; 2.3外链式 3.输入和…

支持API文档生成,API管理工具:Apipost

随着数字化转型的加速&#xff0c;API&#xff08;应用程序接口&#xff09;已经成为企业间沟通和数据交换的关键。而在API开发和管理过程中&#xff0c;API文档、调试、Mock和测试的协作显得尤为重要。Apipost正是这样一款一体化协作平台&#xff0c;旨在解决这些问题&#xf…

LeetCode(31) 下一个排列

整数数组的一个 排列 就是将其所有成员以序列或线性顺序排列。 例如&#xff0c;arr [1,2,3] &#xff0c;以下这些都可以视作 arr 的排列&#xff1a;[1,2,3]、[1,3,2]、[3,1,2]、[2,3,1] 。 整数数组的 下一个排列 是指其整数的下一个字典序更大的排列。更正式地&#xf…

centos 7.9安装RocketMQ4.6.1版本

1.先下载二进制文件 下载 | RocketMQ 2.下载后&#xff0c;进行解压 unzip rocketmq-all-4.6.1-bin-release.zip 3.修改JVM配置 进到/datadrive/rocketmq-all-4.6.1-bin-release/bin下编辑runserver.sh 与 runbroker.sh文件 根据个人虚拟机大小进行修改 vi runserver.sh J…

ubuntu 22 virt-manger(kvm)安装winxp

安装 、启动 virt-manager sudo apt install virt-manager sudo systemctl start libvirtdsudo virt-manager安装windowsXP 安装过程截图如下 要点1 启用 “包括寿终正寝的操作系统” win_xp.iso 安装过程 &#xff1a; 从winXp.iso启动, 执行完自己重启从硬盘重启&#xff0c…

【银行测试】银行放款测试点+提现测试点+保险测试(超细)

目录&#xff1a;导读 前言一、Python编程入门到精通二、接口自动化项目实战三、Web自动化项目实战四、App自动化项目实战五、一线大厂简历六、测试开发DevOps体系七、常用自动化测试工具八、JMeter性能测试九、总结&#xff08;尾部小惊喜&#xff09; 前言 1、银行放款测试点…