当前位置: 首页 > news >正文

element ui datePick时间日期一段时间,限制选择日期的范围

想限制只能选日期间隔为一年,联合选择器样式不好改,使用俩单独的

有两个办法限制

1.一个在外层使用form通过表单验证控制,出现错误提示(由于是两个单独的组件,触发验证的方式又为单个失去焦点,所以俩组件无法实时更新)

2.用datepick自带的属性disabledDate ,为pick-options中的函数,在js中绑定函数,通过控制区间禁选不符合条件的日期,触发方式在每次选择时间时,可以实时更新无错误提示

1.form实现

 

form-html <el-form ref="queryForm" :model="queryParams" inline><el-form-itemprop="startDate":rules="[{ required: true, message: '请选择开始日期' },{ validator: checkFinalPayTime, trigger: 'blur' },]"><el-date-pickerv-model="queryParams.startDate":clearable="false"type="date":default-value="new Date()":disabledDate="disabledStartDate":value-format="YYYY - MM - DD"placeholder="开始时间"/></el-form-item><el-form-itemprop="endDate":rules="[{ required: true, message: '请选择开始日期' },{ validator: checkFinalPayTime, trigger: 'blur' },]"><el-date-pickerv-model="queryParams.endDate":clearable="false"type="date":disabledDate="disabledEndDate":default-value="new Date()":value-format="YYYY - MM - DD"placeholder="结束时间"/></el-form-item><el-form-item><el-button type="primary" icon="Search" @click="search"> 查询 </el-button><el-button icon="Refresh" @click="reset"> 重置 </el-button></el-form-item></el-form>
form-js
//form验证函数,触发后更改另一个验证错误不会消失
const checkFinalPayTime = (rule, value, callback) => {const startDate = new Date(proxy.queryParams.startDate).getTime();const endDate = new Date(proxy.queryParams.endDate).getTime();console.log(startDate, endDate);console.log(startDate + 31536000000 > endDate);if (startDate + 31536000000 < endDate) {return callback(new Error("起止日期不能超过一年"));} else {callback();}
};

 

2.代码实现

disabledDate-html
<el-form ref="queryForm" :model="queryParams" inline><el-date-pickerv-model="queryParams.startDate":clearable="false"type="date":default-value="new Date()":disabledDate="disabledStartDate":value-format="YYYY - MM - DD"placeholder="开始时间"/><el-date-pickerv-model="queryParams.endDate":clearable="false"type="date":disabledDate="disabledEndDate":default-value="new Date()":value-format="YYYY - MM - DD"placeholder="结束时间"/></el-form>

disabledDate-js
const disabledStartDate = (time) => {const endDate = new Date(proxy.queryParams.endDate);return (//选择时间比结束时间减一年大time.getTime() < endDate.getTime() - 31536000000 ||//选择时间比结束时间小time.getTime() > endDate.getTime());
};
const disabledEndDate = (time) => {const startDate = new Date(proxy.queryParams.startDate);return (//选择时间比开始时间加一年小time.getTime() > startDate.getTime() + 31536000000 ||//选择时间比开始时间大time.getTime() < startDate.getTime());
};

http://www.lryc.cn/news/137682.html

相关文章:

  • kubernetes--技术文档-真--集群搭建-三台服务器一主二从(非高可用)-三服务器位于同交换机中
  • 高性能MySQL实战(三):性能优化
  • 198. 打家劫舍
  • Pydev·离线git包
  • Vue-12.集成postcss.config.js
  • 基于前端技术原生HTML、JS、CSS 电子病历编辑器源码
  • Linux环境下远程访问SVN服务:SVN内网穿透的详细配置与操作指南
  • 创建k8s operator
  • python模拟登入某平台+破解验证码
  • 【图像分割】理论篇(2)经典图像分割网络基于vgg16的Unet
  • vue插入重复的html内容
  • 计算机网络-物理层(三)-信道的极限容量
  • Http/Websocket协议的长连接和短连接的错误认识详细解读(史上最通俗)
  • 两两交换链表中的节点
  • HTTP与RPC的取舍
  • 微前端学习(上)
  • 【Axure视频教程】标签版多选下拉列表
  • Sharepoint2013必备软件安装路径
  • C++day4(关系运算符的重载)
  • 农业水价综合改革系统主要组成
  • 使用批处理文件(.bat)启动多个CMD窗口并执行命令
  • 开源项目-会议室预约管理系统
  • Flask路由注册route的几种方式
  • Elasticsearch 查询之Function Score Query
  • 【3D激光SLAM】LOAM源代码解析--scanRegistration.cpp
  • 解锁ChatGLM-6B的潜力:优化大语言模型训练,突破任务困难与答案解析难题
  • Apipost:提升API开发效率的利器
  • 论文解读:Image-Adaptive YOLO for Object Detection in Adverse Weather Conditions
  • springboot 基于JAVA的动漫周边商城的设计与实现64n21
  • uniapp - 全平台兼容实现上传图片带进度条功能,用户上传图像到服务器时显示上传进度条效果功能(一键复制源码,开箱即用)