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 setTimeout()传递函数参数(包括传递对象参数)
Apr 07 Javascript
js function使用心得
May 10 Javascript
js获取和设置属性的方法
Feb 20 Javascript
jQuery页面加载初始化常用的三种方法
Jun 04 Javascript
Javascript基础教程之argument 详解
Jan 18 Javascript
javascript中的正则表达式使用指南
Mar 01 Javascript
动态加载jQuery的两种方法实例分析
Jul 17 Javascript
JS操作COOKIE实现备忘记录的方法
Apr 01 Javascript
javascript 小数乘法结果错误的处理方法
Jul 28 Javascript
Vue-resource拦截器判断token失效跳转的实例
Oct 27 Javascript
基于react后端渲染模板引擎noox发布使用
Jan 11 Javascript
vue路由跳转传参数的方法
May 06 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代码判断设备是手机还是平板电脑(两种方法)
2015/10/19 PHP
PHP使用反向Ajax技术实现在线客服系统详解
2019/07/01 PHP
PHP xpath提取网页数据内容代码解析
2020/07/16 PHP
javascript 限制输入脚本大全
2009/11/03 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
如何用javascript计算文本框还能输入多少个字符
2015/07/29 Javascript
jQuery如何解决IE输入框不能输入的问题
2016/10/08 Javascript
AngularJS报错$apply already in progress的解决方法分析
2017/01/30 Javascript
微信JS-SDK选取手机照片上传功能
2017/04/21 Javascript
vuejs使用FormData实现ajax上传图片文件
2017/08/08 Javascript
在vue中给列表中的奇数行添加class的实现方法
2018/09/05 Javascript
vue通过style或者class改变样式的实例代码
2018/10/30 Javascript
JavaScript中变量提升机制示例详解
2019/12/27 Javascript
Element-ui el-tree新增和删除节点后如何刷新tree的实例
2020/08/31 Javascript
[58:59]完美世界DOTA2联赛PWL S3 access vs CPG 第一场 12.13
2020/12/16 DOTA
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
Python操作Word批量生成文章的方法
2015/07/28 Python
[原创]教女朋友学Python3(二)简单的输入输出及内置函数查看
2017/11/30 Python
mac系统安装Python3初体验
2018/01/02 Python
Python Cookie 读取和保存方法
2018/12/28 Python
英国袜子店:Sock Shop
2017/01/11 全球购物
日期和时间问题
2015/01/04 面试题
英语专业学子个人的自我评价
2013/10/02 职场文书
酒店司机岗位职责
2013/12/14 职场文书
高考寄语大全
2014/04/08 职场文书
房地产公司见习自我鉴定
2014/04/28 职场文书
企业文化宣传标语
2014/06/09 职场文书
师范生求职自荐信
2014/06/14 职场文书
关于青春的演讲稿500字
2014/08/22 职场文书
上课说话检讨书
2015/01/27 职场文书
公司员工违法违章行为检讨书
2019/06/24 职场文书
如何在centos上使用yum安装rabbitmq-server
2021/03/31 Servers
Java实现斗地主之洗牌发牌
2021/06/14 Java/Android
HTML5页面音频自动播放的实现方式
2021/06/21 HTML / CSS
使用pipenv管理python虚拟环境的全过程
2021/09/25 Python
MySQL常用慢查询分析工具详解
2022/08/14 MySQL