ant design vue中日期选择框混合时间选择器的用法说明


Posted in Javascript onOctober 27, 2020

首先时间格式化用到moment方法,需要在页面中引入moment组件

import moment from 'moment'

结构代码:

<a-date-picker
   style="width:100%"
   :getCalendarContainer="(triggerNode) => triggerNode.parentNode"
   format="YYYY-MM-DD HH:mm:ss"
   v-decorator="[
   'pushtime',
   {
   rules: [{ required: true, message: '请输入发布时间!' }]
   }
   ]"
   :showTime="{ defaultValue: moment('00:00:00', 'HH:mm:ss') }"
   :disabledDate="disabledDate"
   :disabledDateTime="disabledDateTime"
   placeholder="请选择时间"
   @change="onChange"
   @ok="onOk" />

其中,showTime.defaultValue是设置的默认展示时间,disabledDate为禁用日期,disabledDataTime为禁用时间,详细属性说明可查阅官方文档

下面是方法代码:

methods: {
 moment,
 onChange (value, dateString) {
 console.log('Selected Time: ', value)
 console.log('Formatted Selected Time: ', dateString)
 },
 onOk (value) {
 console.log('onOk: ', value)
 },
 range (start, end) {
 const result = []
 for (let i = start; i < end; i++) {
 result.push(i)
 }
 return result
 },
 disabledDate (current) {
 // Can not select days before today and today
 return current && current < moment().endOf('day')
 },
 
 disabledDateTime () {
 return {
 disabledHours: () => this.range(0, 24).splice(4, 20),
 disabledMinutes: () => this.range(30, 60),
 disabledSeconds: () => [55, 56]
 }
 }
}

补充知识:初始化antDesign RangePicker默认选择日期及限制日期可选范围

主要做了两个设置:

1、初始化默认选择日期;

2、限制日期可选范围(限制最大可选范围是最近6个月)

具体实现代码出下:

import React, { PureComponent } from 'react';
import moment from 'moment';
import { 
 Form, 
 Modal,
 DatePicker,
} from 'antd';
 
const FormItem = Form.Item;
const { RangePicker } = DatePicker;
 
@Form.create()
class ExportModal extends PureComponent {
 
 // 表单提交
 okHandle = () => {
 const { handleExportByTime, form } = this.props;
 form.validateFields((err, fieldsValue) => {
 const rangeValue = fieldsValue['range-picker'];
 if (err) return;
 const values ={
 ...fieldsValue,
 'date': [rangeValue[0].format('YYYY-MM-DD'), rangeValue[1].format('YYYY-MM-DD')],
 }
 // 重置表单
 form.resetFields();
 handleExportByTime(values);
 });
 };
 
 // 不可选择的时间段
 disabledDate = current => current && current > moment().endOf('day') || current < moment().subtract(6, 'months');
 
 render() {
 const {
 form: { getFieldDecorator },
 handleModalVisible,
 submitting,
 modalVisible,
 } = this.props;
 
 const formItemLayout = {
 labelCol: { span: 4 },
 wrapperCol: { span: 14 }
 };
 
 // 初始化日期显示 
 const defaultSelectDate = {
 startDate: moment().subtract(1, 'weeks'),
 endDate: moment().endOf('day')
 }
 
 return (
 <Modal
 destroyOnClose
 title='按时间段导出'
 centered
 keyboard={false}
 maskClosable={false}
 visible={modalVisible}
 confirmLoading={submitting}
 onOk={this.okHandle}
 onCancel={() => handleModalVisible()}
 >
 <FormItem {...formItemLayout} label='时间段' extra='最长可导出最近6个月数据'>
  {getFieldDecorator('range-picker',{
  initialValue: [defaultSelectDate.startDate, defaultSelectDate.endDate]
  })(
  <RangePicker disabledDate={this.disabledDate} />
  )}
 </FormItem>
 </Modal>
 );
 }
}
export default ExportModal;

以上这篇ant design vue中日期选择框混合时间选择器的用法说明就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
利用WebBrowser彻底解决Web打印问题(包括后台打印)
Jun 22 Javascript
js select常用操作控制代码
Mar 16 Javascript
JQuery中$.ajax()方法参数详解及应用
Dec 12 Javascript
jsp网页搜索结果中实现选中一行使其高亮
Feb 17 Javascript
JS返回iframe中frameBorder属性值的方法
Apr 01 Javascript
基于javascript html5实现多文件上传
Mar 03 Javascript
基于jQuery的AJAX和JSON实现纯html数据模板
Aug 09 Javascript
JavaScript实现星星等级评价功能
Mar 22 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
Jul 21 Javascript
js实现一个简单的MVVM框架示例
Jan 15 Javascript
jQuery+koa2实现简单的Ajax请求的示例
Mar 06 jQuery
原生JavaScript实现拖动校验功能
Sep 29 Javascript
vue-cli3配置favicon.ico和title的流程
Oct 27 #Javascript
Electron+vue从零开始打造一个本地播放器的方法示例
Oct 27 #Javascript
解决vue数据不实时更新的问题(数据更改了,但数据不实时更新)
Oct 27 #Javascript
js实现自定义滚动条的示例
Oct 27 #Javascript
vue移动端下拉刷新和上滑加载
Oct 27 #Javascript
Element-UI 使用el-row 分栏布局的教程
Oct 26 #Javascript
解决vue项目运行npm run serve报错的问题
Oct 26 #Javascript
You might like
用PHP制作静态网站的模板框架(一)
2006/10/09 PHP
杏林同学录(七)
2006/10/09 PHP
PHP的Yii框架中创建视图和渲染视图的方法详解
2016/03/29 PHP
修改Laravel自带的认证系统的User类的命名空间的步骤
2019/10/15 PHP
JavaScript判断两种格式的输入日期的正确性的代码
2007/03/25 Javascript
Ext面向对象开发实践(续)
2008/11/18 Javascript
JavaScript 事件的一些重要说明
2009/10/25 Javascript
一个简单的弹性返回顶部JS代码实现介绍
2013/06/09 Javascript
可选择和输入的下拉列表框示例
2013/11/05 Javascript
JQuery实现绚丽的横向下拉菜单
2013/12/19 Javascript
javascript引擎长时间独占线程造成卡顿的解决方案
2014/12/03 Javascript
JavaScript 过滤关键字
2017/03/20 Javascript
jquery.guide.js新版上线操作向导镂空提示jQuery插件(推荐)
2017/05/20 jQuery
vue+element创建动态的form表单及动态生成表格的行和列
2019/05/20 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
如何在JavaScript中正确处理变量
2020/12/25 Javascript
vue实现简易的双向数据绑定
2020/12/29 Vue.js
了不起的11个JavaScript代码重构最佳实践小结
2021/01/11 Javascript
python获取本机mac地址和ip地址的方法
2015/04/29 Python
python字符类型的一些方法小结
2016/05/16 Python
Python数据分析之获取双色球历史信息的方法示例
2018/02/03 Python
python将控制台输出保存至文件的方法
2019/01/07 Python
python实现爬山算法的思路详解
2019/04/09 Python
python 三元运算符使用解析
2019/09/16 Python
SNIDEL官网:日本VIVI杂志人气少女第一品牌
2020/03/12 全球购物
初中生期末考试的自我评价
2013/12/17 职场文书
体育教学随笔感言
2014/02/24 职场文书
2014学习优秀共产党员先进事迹思想汇报
2014/09/14 职场文书
2014年终个人工作总结
2014/11/07 职场文书
2014年财务工作总结范文
2014/11/11 职场文书
2014年医院后勤工作总结
2014/12/06 职场文书
求职自荐信该如何书写?
2019/06/24 职场文书
Python中使用subprocess库创建附加进程
2021/05/11 Python
还在手动盖楼抽奖?教你用Python实现自动评论盖楼抽奖(一)
2021/06/07 Python
Nginx配置之禁止指定IP访问
2022/05/02 Servers
使用CSS实现百叶窗效果示例代码
2023/05/07 HTML / CSS