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 相关文章推荐
encode脚本和normal脚本混用的问题与解决方法
Mar 08 Javascript
JavaScript 对象链式操作测试代码
Apr 25 Javascript
js setTimeout()函数介绍及应用以倒计时为例
Dec 12 Javascript
jquery 提示信息显示后自动消失的具体实现
Dec 18 Javascript
js通过location.search来获取页面传来的参数
Sep 11 Javascript
c#程序员对TypeScript的认识过程
Jun 19 Javascript
JavaScript实现解析INI文件内容的方法
Nov 17 Javascript
基于Vue2.0的分页组件
Mar 16 Javascript
ES6正则表达式的一些新功能总结
May 09 Javascript
微信小程序使用navigateTo数据传递的实例
Sep 26 Javascript
原生JS实现列表内容自动向上滚动效果
May 22 Javascript
vue计算属性+vue中class与style绑定(推荐)
Mar 30 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
第九节 绑定 [9]
2006/10/09 PHP
php引用计数器进行垃圾收集机制介绍
2012/09/19 PHP
PHP中功能强大却很少使用的函数实例小结
2016/11/10 PHP
Laravel中encrypt和decrypt的实现方法
2017/09/24 PHP
PHP实现腾讯短网址生成api接口实例
2020/12/08 PHP
jquery实现网站超链接和图片提示效果
2013/03/21 Javascript
javascript无刷新评论实现方法
2015/05/13 Javascript
JavaScript中的getTime()方法使用详解
2015/06/10 Javascript
jQuery实现网页抖动的菜单抖动效果
2015/08/07 Javascript
JS+CSS实现简单滑动门(滑动菜单)效果
2015/09/19 Javascript
AngularJS整合Springmvc、Spring、Mybatis搭建开发环境
2016/02/25 Javascript
JS中的hasOwnProperty()和isPrototypeOf()属性实例详解
2016/08/11 Javascript
详解Angular 4 表单快速入门
2017/06/05 Javascript
ReactNative短信验证码倒计时控件的实现代码
2017/07/20 Javascript
使用vue-infinite-scroll实现无限滚动效果
2018/06/22 Javascript
javascript中如何判断类型汇总
2019/05/14 Javascript
jquery简易手风琴插件的封装
2020/10/13 jQuery
python实现类的静态变量用法实例
2015/05/08 Python
Python内置函数—vars的具体使用方法
2017/12/04 Python
python3 requests中使用ip代理池随机生成ip的实例
2018/05/07 Python
Python实现繁?转为简体的方法示例
2018/12/18 Python
Python I/O与进程的详细讲解
2019/03/08 Python
PyQt5创建一个新窗口的实例
2019/06/20 Python
python如何删除文件中重复的字段
2019/07/16 Python
解决在pycharm运行代码,调用CMD窗口的命令运行显示乱码问题
2019/08/23 Python
python3连接MySQL8.0的两种方式
2020/02/17 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
国际贸易专业个人鉴定
2014/02/22 职场文书
学雷锋志愿服务月活动总结
2014/03/09 职场文书
学习交流会主持词
2014/04/01 职场文书
作风建设演讲稿
2014/05/23 职场文书
新学期开学标语
2014/06/30 职场文书
办公室主任岗位职责范本
2015/03/31 职场文书
导游词之沈阳植物园
2019/11/30 职场文书
教你怎么用Python监控愉客行车程
2021/04/29 Python
MongoDB日志切割的三种方式总结
2021/09/15 MongoDB