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 相关文章推荐
Jquery 动态添加按钮实现代码
May 06 Javascript
基于jquery的button默认enter事件(回车事件)。
May 18 Javascript
jquery实现按Enter键触发事件示例
Sep 10 Javascript
javascript中的事件代理初探
Mar 08 Javascript
javascript中Number对象的toString()方法分析
Dec 20 Javascript
javascript数据结构之双链表插入排序实例详解
Nov 25 Javascript
vue开发心得和技巧分享
Oct 27 Javascript
js微信扫描二维码登录网站技术原理
Dec 01 Javascript
ES6 javascript中class静态方法、属性与实例属性用法示例
Oct 30 Javascript
JavaScript享元模式原理与用法实例详解
Mar 09 Javascript
vue中实现拖动调整左右两侧div的宽度的示例代码
Jul 22 Javascript
javascript运行机制之执行顺序理解
Aug 03 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 文件上传代码(限制jpg文件)
2010/01/05 PHP
php下安装配置fckeditor编辑器的方法
2011/03/02 PHP
php基于Snoopy解析网页html的方法
2015/07/09 PHP
php使用preg_match()函数验证ip地址的方法
2017/01/07 PHP
Laravel框架中队列和工作(Queues、Jobs)操作实例详解
2020/04/06 PHP
jquery实现input输入框实时输入触发事件代码
2014/01/28 Javascript
让jQuery Mobile不显示讨厌loading界面的方法
2014/02/19 Javascript
《JavaScript DOM 编程艺术》读书笔记之JavaScript 简史
2015/01/09 Javascript
javascript实现计时器的简单方法
2016/02/21 Javascript
javascript表单处理具体实现代码(表单、链接、按钮)
2016/05/07 Javascript
浅谈时钟的生成(js手写简洁代码)
2016/08/20 Javascript
JS实现的添加弹出层并完成锁屏操作示例
2017/04/07 Javascript
layui框架table 数据表格的方法级渲染详解
2018/08/19 Javascript
vue引入axios同源跨域问题
2018/09/27 Javascript
[01:27:43]VGJ.S vs TNC Supermajor 败者组 BO3 第三场 6.6
2018/06/07 DOTA
easy_install python包安装管理工具介绍
2013/02/10 Python
简单介绍Python下自己编写web框架的一些要点
2015/04/29 Python
python 判断网络连通的实现方法
2018/04/22 Python
Python实现的根据IP地址计算子网掩码位数功能示例
2018/05/23 Python
python输出带颜色字体实例方法
2019/09/01 Python
Python 余弦相似度与皮尔逊相关系数 计算实例
2019/12/23 Python
Python基于paramunittest模块实现excl参数化
2020/04/26 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
使用HTML和CSS实现的标签云效果(附demo)
2021/02/03 HTML / CSS
白色公司:The White Company
2017/10/11 全球购物
全球最大最受欢迎的旅游社区:Tripadvisor
2017/11/03 全球购物
美国嘻哈文化生活方式品牌:GLD
2018/04/15 全球购物
早晨薰衣草在线女性精品店:Morning Lavender
2021/01/04 全球购物
了解AppleShare protocol(AppleShare协议)吗
2015/08/28 面试题
CNC数控操作工岗位职责
2013/11/19 职场文书
社区七一党员活动方案
2014/01/25 职场文书
经营管理策划方案
2014/05/22 职场文书
教师评职称工作总结2015
2015/04/20 职场文书
元旦联欢晚会主持词
2015/07/01 职场文书
《兰兰过桥》教学反思
2016/02/20 职场文书
「回转企鹅罐」10周年纪念展「輪るピングドラム展」海报公开
2022/03/22 日漫