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 相关文章推荐
JavaScript中判断函数是new还是()调用的区别说明
Apr 07 Javascript
jquery插件jquery倒计时插件分享
Dec 27 Javascript
jQuery中对未来的元素绑定事件用bind、live or on
Apr 17 Javascript
javascript框架设计读书笔记之数组的扩展与修复
Dec 02 Javascript
javascript中判断json的方法总结
Aug 27 Javascript
KnockoutJS 3.X API 第四章之数据控制流component绑定
Oct 10 Javascript
JavaScript定时器setTimeout()和setInterval()详解
Aug 18 Javascript
vue-cli脚手架-bulid下的配置文件
Mar 27 Javascript
PostgreSQL Node.js实现函数计算方法示例
Feb 12 Javascript
JavaScript变量作用域及内存问题实例分析
Jun 10 Javascript
webpack的tree shaking的实现方法
Sep 18 Javascript
关于AngularJS中几种Providers的区别总结
May 17 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动态实现表格跨行跨列实现代码
2012/11/06 PHP
PHP处理Json字符串解码返回NULL的解决方法
2014/09/01 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
详解yii2实现分库分表的方案与思路
2017/02/03 PHP
javascript 函数调用的对象和方法
2010/07/01 Javascript
Window.Open如何在同一个标签页打开
2014/06/20 Javascript
jQuery+PHP实现动态数字展示特效
2015/03/14 Javascript
JavaScript仿支付宝密码输入框
2015/12/29 Javascript
jquery 中toggle的2种用法详解(推荐)
2016/09/02 Javascript
JS实现课堂随机点名和顺序点名
2017/03/09 Javascript
JavaScript mixin实现多继承的方法详解
2017/03/30 Javascript
bootstrap模态框示例代码分享
2017/05/17 Javascript
bootstrap fileinput插件实现预览上传照片功能
2018/01/23 Javascript
angularJS实现动态添加,删除div方法
2018/02/27 Javascript
vue项目中在外部js文件中直接调用vue实例的方法比如说this
2019/04/28 Javascript
七行JSON代码把你的网站变成移动应用过程详解
2019/07/09 Javascript
js计时事件实现圆形时钟
2020/03/25 Javascript
python获取指定网页上所有超链接的方法
2015/04/04 Python
用Python抢过年的火车票附源码
2015/12/07 Python
Python实现针对中文排序的方法
2017/05/09 Python
Python3 适合初学者学习的银行账户登录系统实例
2017/08/08 Python
python模块之time模块(实例讲解)
2017/09/13 Python
python使用RNN实现文本分类
2018/05/24 Python
python爬取本站电子书信息并入库的实现代码
2020/01/20 Python
Python爬虫headers处理及网络超时问题解决方案
2020/06/19 Python
python 两种方法删除空文件夹
2020/09/29 Python
如何使用 Flask 做一个评论系统
2020/11/27 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
商业融资计划书
2014/04/29 职场文书
广告艺术设计专业自荐书
2014/07/08 职场文书
党的群众路线教育实践活动批评与自我批评范文
2014/10/16 职场文书
2015年基层党支部工作总结
2015/05/21 职场文书
同事离别感言
2015/08/04 职场文书
《珍珠鸟》教学反思
2016/02/16 职场文书
护士年终工作总结不会写?各科护士模板总结
2020/01/02 职场文书