element-ui中日期区间组件

2023-11-19

elementui中日期组件使用,最长只能选择3个月,不限制禁用日期

描述

点击【确定】按钮进行验证,点击【清空】按钮,清空输入框中的数据,
时间范围不能超过3个月,并添加快捷选择今天、最近一周、最近一月、最近3个月,以下为代码。

tips:1、点击确定按钮之前,点击非组件table,可以收起日期选择框。
2、点击确定按钮之后,只要不满足条件,点击任何区域都不会收起日期选择组件,除非关闭浏览器。
3、如果要完善第一条,点击确定按钮之前,只要不满足条件,点击任何区域都不会收起日期选择组件,除非关闭浏览器这一操作方法,日期组件上添加change方法(没有尝试过,用change方法和用blur方法的区别是,blur方法满足第二条,用change方法的话,点击确定按钮会校验一次,再次点击确定按钮会校验通过,对于我的需求有bug,所以用了blur方法,有兴趣的朋友可以尝试一下两个方法,本人比较懒不想尝试)

时间组件代码

 <el-date-picker
              ref="datePickRef"
              v-model="searchForm.queryTime"
              clearable
              type="datetimerange"
              value-format="yyyy-MM-dd HH:mm"
              format="yyyy-MM-dd HH:mm"
              range-separator="至"
              start-placeholder="开始日期"
              end-placeholder="结束日期"
              :picker-options="pickerOptions"
              :validate-event="true"
              @blur="handleTimeRange"
            />

pickerOptions放在data中

            pickerOptions: {
        shortcuts: [{
          text: '今天',
          onClick(picker) {
            const startTime = _this.$moment().format('YYYY-MM-DD 00:00');
            const endTime = _this.$moment().format('YYYY-MM-DD HH:mm');
            _this.searchForm.queryTime = [startTime, endTime];
            _this.$refs.datePickRef.handleClose();
          }
        }, {
          text: '最近一周',
          onClick(picker) {
            const end = _this.$moment()._d;
            const start = new Date();
            const time1 = _this.$moment(end).subtract(7, 'days').unix() * 1000;
            start.setTime(time1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近一个月',
          onClick(picker) {
            const end = _this.$moment()._d;
            const start = new Date();
            const time1 = _this.$moment(start).subtract(1, 'months').unix() * 1000;
            start.setTime(time1);
            picker.$emit('pick', [start, end]);
          }
        }, {
          text: '最近三个月',
          onClick(picker) {
            const end = _this.$moment()._d;
            const start = new Date();
            const time1 = _this.$moment(start).subtract(3, 'months').unix() * 1000;
            start.setTime(time1);
            picker.$emit('pick', [start, end]);
          }
        }]
    }

handleTimeRange方法放在methods中

// 判断开始时间和结束时间的区间长度
    handleTimeRange() {
      if (!this.searchForm.queryTime) {
        this.searchForm.queryTime = [];
      } else {
        const startTime = this.$moment(this.searchForm.queryTime[0]);
        const endTime = this.$moment(this.searchForm.queryTime[1]);
        const rangeMonth = endTime.diff(startTime, 'month', true);
        if (rangeMonth > 3) {
          this.$message.error('时间范围,时长必须小于等于3个月!');
          this.$refs.datePickRef.focus();
        } else {
          this.$refs.datePickRef.handleClose();
        }
      }
    },
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

element-ui中日期区间组件 的相关文章

  • 将 next.js 与纱线工作区结合使用

    今天遇到了这样的项目结构的复杂情况 packages app pages package json ui kit pages package json shared babelrc package json root lvl 包 json
  • JS 在两个或多个点之间画线

    我需要在两个标签或标签之间画一条线 Example http caitriona github io connect the dots http caitriona github io connect the dots 我需要做这样的事情
  • 使用 Gmail 上下文小工具访问附件

    我想将电子邮件及其附件从 Gmail Google Apps 保存到另一个数据库以实现类似 CRM 的功能 然而 根据docs http code google com apis gmail gadgets contextual 提取器无法
  • Javascript 制作音频 blob

    我正在测试 html 音频标签 我想制作音频 blob url 就像 youtube 或 vimeo 那样 并将其添加到 src 开始播放音频 我一直在测试new Blob and URL createObjectURL 但我不知道如何使用
  • 光标:IE 8 和 9 中的自动行为

    我想要的是为整个正文标记指定cursor pointer 这样页面的背景是可点击的 但我也希望页面的其余部分像以前一样工作 所以我尝试为div设置cursor auto 其中包含这一页 在 FF Chrome 和 safari 中 它工作得
  • 使用 jquery 更改锚文本和图标

    我有一个隐藏或显示 div 的锚标记 但我无法更改它的文本和图标 如何更改文本和图标标签 因为目前它将图标标签解析为常规文本 锚标记 a class collapse info btn i class icon arrow up icon
  • 如何检查侧边栏视图是否已经在主干中渲染?

    通常 用户通过主页进入网站 然后我在那里渲染侧边栏视图 接下来 用户单击链接 路由器呈现另一个视图并替换原始内容视图 侧边栏视图不会重新渲染 当用户在子页面上单击刷新时 侧边栏不会呈现 如何检查视图是否存在并且已渲染 划分责任并坚持下去 不
  • 如何获取 Spotify API 的访问令牌?

    我已经研究 Spotify api 和示例源代码几天了 但我仍然不知道如何获取访问令牌来访问用户的播放列表数据 我已经到达了拉起登录窗口 用户登录 然后收到授权码的地步 此时 我尝试做这样的事情 window open https acco
  • 将屏幕宽度获取到 javascript 变量中并通过 ajax 将其发送到 php 页面以避免页面加载

    这是JS检测我的页面命名上的屏幕分辨率index html并将其发送到 php 以便可以使用以下方式检索值 GET 这是我的PHP文件命名的内容process php
  • Flask 和 Reactjs 抛出 JSX 转换错误

    我已经开始将 ReactJS 与 Python Flask 后端结合使用 通过 Flask 渲染模板时 我在 Chrome 控制台中收到以下客户端错误 错误 找不到模块 jstransform visitors es6 templates
  • 如何使用 Node.js 解析 JSON? [关闭]

    Closed 这个问题需要多问focused help closed questions 目前不接受答案 我应该如何使用 Node js 解析 JSON 是否有一些模块可以安全地验证和解析 JSON 你可以简单地使用JSON parse h
  • Intern JS - 如何在链式 Command 方法中使用 Promise.all()?

    我是用 Intern JS 编写测试的新手 并且一直在遵循他们的文档来使用对象接口 https theintern github io intern interface object and 页面对象 https theintern git
  • IE9 中的无效字符 DOM 异常

    以下这段 JS 曾经在 IE8 中工作 现在在 IE9 中失败 document createElement 我收到以下异常 SCRIPT5022 DOM 异常 INVALID CHARACTER ERR 5 上面这段代码是不是不符合标准呢
  • 如何获取从 Express (Node.js) 中的表单传递的数据

    我想获取使用表单从页面传递的数据 并在重定向的页面中使用该数据 我的客户端有这个表格
  • 如何使用 API 中的数据填充选择的下拉元素 - ReactJS

    我对 React 还很陌生 我正在从 API 获取数据 当我检查控制台日志时可以看到数据 但是我不知道如何使用 map 创建一个新数组 然后选项元素可以使用该数组来显示货币代码 目前它填充下拉列表 但选项元素全部为空 结果显示为 NaN 下
  • javascript 闭包和对象引用

    我的情况有点晦涩难懂 主要是因为我认为我已经掌握了闭包 所以基本上我想要的是将集合重置为默认值 假设我有一个集合 它具有带有对象参数数组的构造函数 var c new collection x y z 然后集合定期更新 因为我没有保留数组的
  • javascript从字符串创建不区分大小写的正则表达式

    我试图通过以不区分大小写的方式将输入与正则表达式匹配来进行验证 正则表达式作为对象上的字符串从服务中下来 我可能会得到类似的东西 regex ane 我可以执行以下操作 var rx new RegExp object regex The
  • “memset”没有 DLL 那么如何 ctype 它

    如何使用memset在 jsc 类型中 没有对应的 DLL 我搜索 搜索了 js ctype 代码 但找不到要破解的示例 如果你只是想memset一个数组为零字节 然后我有 好消息 大家 js ctypes 会将新数组初始化为零 否则 最简
  • 文件和目录条目 API 在 Chrome 中损坏?

    我正在尝试使用文件和目录条目 API 创建一个文件上传器工具 该工具允许我将文件和目录的任意组合放入浏览器窗口中 以供读取和上传 我完全意识到 可以通过使用文件输入元素来实现类似的功能webkitdirectory已启用 但我正在测试一个用
  • 用于替换前 5 个数字的正则表达式,无论它们之间有什么?

    我正在努力实现以下匹配 Input 123 45 6789 123456789 1234 正则表达式尝试输出 d 5 123 45 6789 123456789 1234 d 2 3 123 45 6789 123456789 1234 d

随机推荐

  • Android 拍摄照片后返回缩略图的两种方法详解

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 如果简单地拍照片并非您应用的主要目标 那么您可能希望从相机应用中获取图片并对该图片执行一些操作 一 这就是第一种方法 比较简单 不
  • 【深度学习】 Python 和 NumPy 系列教程(十三):Matplotlib详解:1、2d绘图(上):折线图、散点图、柱状图、直方图、饼图

    目录 一 前言 二 实验环境 三 Matplotlib详解 0 绘图风格 1 2d绘图类型 0 设置中文字体 1 折线图 Line Plot 2 散点图 Scatter Plot 3 柱状图 Bar Plot 4 直方图 Histogram
  • pyqt5讲解12:自定义参数 (给信号传入参数)

    在pyqt编程过程中 经常会遇到给槽函数传递自定义参数的情况 比如有一个信号与槽函数的连接是 button1 clicked connect shou page 对于clicked 信号来说 是没有参数的 对于shou page 是可以有参
  • SemanticKitti数据集的使用

    简单介绍 SemanticKitti数据集是在Kitti数据集上进行语义分割等操作的结果 主要任务包括点云的语义预测等 Kitti的点云里程计数据集一共有00 21这22个序列 每个序列都是一段录制的点云包 SemanticKitti为所有
  • ER模型详解

    ER 实体联系 模型中有三个主要的概念 实体集 属性 联系集 实体集对应的是数据库中的一个表 一个实体则对应数据库表中的一行 一个属性则对应数据库表中的一列 则就是一个字段 联系集就是表与表之间的关联关系 一对一关联 两个表的实体是一一对应
  • QT信号和槽的链接问题

    QT中常用的连接信号和槽的方式为以下两种 方法1 connect ui btnClose SIGNAL clicked Widget SLOT close 方法2 connect ui btnClose QPushButton clicke
  • R语言学习笔记:分析学生的考试成绩

    孩子上初中时拿到过全年级一次考试所有科目的考试成绩表 正好可以用于R语言的统计分析学习 为了不泄漏孩子的姓名 就用学号代替了 感兴趣可以下载测试数据进行练习 num class chn math eng phy chem politics
  • splunk 之 搜索(Searching)

    Let s Searching Results Example Results Example 注意 在结果之上 有一个菜单项允许您更改页面上显示的事件的数量 默认情况下 这个选项是每页20个 但是您可以单击这个选项来增加或减少这个数字 t
  • hooks中useEffect()使用总结

    常见使用 获取数据案例 import React useState useEffect from react import axios from axios function App const data setData useState
  • 非线性控制3.0——常用镇定算法之Lyapunov 直接法与间接法

    一 非线性系统镇定方法 Lyapunov 直接法与间接法 俄国学者李雅普诺夫提出的稳定性定理采用了状态向量来描述 适用于单变量 线性 非线性 定常 时变 多变量等系统 该方法称为李雅普诺夫法 有两种分类 1 李氏第一法 间接法 求解特征方程
  • css 实现相关案例

    css 实现相关案例 抽屉案例 带吸附箭头
  • ES删除数据

    ES删除数据 注意 删除数据请谨慎执行 删除大于 日期的 其他场景可参照执行 DeleteQuery deleteQuery new DeleteQuery deleteQuery setIndex es中 index deleteQuer
  • ORACLE数据库备份管理-rman备份到NFS

    1 相关案例 1 df h无法正常显示文件系统挂载情况 使用如下命令进行处理 umount f nfsdir 2 节点启动出现问题 询问是否包含nfs服务 将分享节点nfs服务重启 1 案例1从linux linux 实施脚本如下 mkdi
  • LeetCode 237. 删除链表中的节点

    题目链接 点击这里 Definition for singly linked list public class ListNode int val ListNode next ListNode int x val x class Solut
  • 深度学习(一)深度学习的概念

    什么是深度学习 深度学习是机器学习与神经网络 人工智能 图形化建模 优化 模式识别和信号处理等技术融合后产生的一个领域 深度学习网路是神经网络革命性的发展 人们甚至认为可以用它来创建更加强大的预测模型 深度学习的分类 深度学习使用多层机器学
  • CMakeLists中条件判断: if()-endif()成对出现

    缺少endif 时提示代码块opening is not closed 1 if if xxx 要缩进 endif 2 if else if xxx 要缩进 else xxx 要缩进 endif
  • Windows RuntimeError: Distributed package doesn‘t have NCCL built in问题

    问题描述 python在windows环境下dist init process group backend rank world size 处报错 RuntimeError Distributed package doesn t have
  • Serilog + SQL Server 动态分表记录日志

    Serilog SQL Server 分表记录日志 Serilog SQL Server 动态分表记录日志 依赖包 安装依赖包 配置 appsettings json 配置 Program cs Serilog SQL Server 动态分
  • visio 科学图形包_Gnuplot科学绘图(三十九)——地图及圆圈数据图

    Gnuplot科学绘图 系列内容Gnuplot科学绘图 三十一 曲线色彩填充 Gnuplot科学绘图 三十二 填充风格Gnuplot科学绘图 三十三 柱状图Gnuplot科学绘图 三十四 阶梯图Gnuplot科学绘图 三十五 数据平滑Gnu
  • element-ui中日期区间组件

    elementui中日期组件使用 最长只能选择3个月 不限制禁用日期 描述 时间组件代码 描述 点击 确定 按钮进行验证 点击 清空 按钮 清空输入框中的数据 时间范围不能超过3个月 并添加快捷选择今天 最近一周 最近一月 最近3个月 以下