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 相关文章推荐
IE FF OPERA都可用的弹出层实现代码
Sep 29 Javascript
浅谈document.write()输出样式
May 07 Javascript
JavaScript forEach()遍历函数使用及介绍
Jul 08 Javascript
老生常谈JavaScript数组的用法
Jun 10 Javascript
JS实现touch 点击滑动轮播实例代码
Jan 19 Javascript
作为老司机使用 React 总结的 11 个经验教训
Apr 08 Javascript
关于Vue背景图打包之后访问路径错误问题的解决
Nov 03 Javascript
AngularJs 禁止模板缓存的方法
Nov 28 Javascript
Vue封装Swiper实现图片轮播效果
Feb 06 Javascript
vue之父子组件间通信实例讲解(props、$ref、$emit)
May 22 Javascript
利用node 判断打开的是文件 还是 文件夹的实例
Jun 10 Javascript
JavaScript实现H5接金币功能(实例代码)
Feb 22 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
PHP网页游戏学习之Xnova(ogame)源码解读(十六)
2014/06/30 PHP
两个select之间option的互相添加操作(jquery实现)
2009/11/12 Javascript
Node.js实现批量去除BOM文件头
2014/12/20 Javascript
JS获取iframe中longdesc属性的方法
2015/04/01 Javascript
JavaScript中的small()方法使用详解
2015/06/08 Javascript
逻辑表达式中与或非的用法详解
2016/06/06 Javascript
Javascript中内建函数reduce的应用详解
2016/10/20 Javascript
利用hasOwnProperty给数组去重的面试题分享
2018/11/05 Javascript
Element UI框架中巧用树选择器的实现
2018/12/12 Javascript
jquery获取并修改触发事件的DOM元素示例【基于target 属性】
2019/10/10 jQuery
vue中使用WX-JSSDK的两种方法(推荐)
2020/01/18 Javascript
Python getopt模块处理命令行选项实例
2014/05/13 Python
python提取字典key列表的方法
2015/07/11 Python
python输入整条数据分割存入数组的方法
2018/11/13 Python
Python3 安装PyQt5及exe打包图文教程
2019/01/08 Python
pyqt5 QProgressBar清空进度条的实例
2019/06/21 Python
Python Numpy库datetime类型的处理详解
2019/07/13 Python
python pyenv多版本管理工具的使用
2019/12/23 Python
python实现门限回归方式
2020/02/29 Python
python传到前端的数据,双引号被转义的问题
2020/04/03 Python
Python实现初始化不同的变量类型为空值
2020/06/02 Python
python退出循环的方法
2020/06/18 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
美国正宗设计师眼镜在线零售商:EYEZZ
2019/03/23 全球购物
亚洲航空公司官方网站:AirAsia
2019/11/25 全球购物
软件测试常见笔试题
2012/02/04 面试题
市场策划求职信
2014/08/07 职场文书
2014年学校办公室工作总结
2014/12/19 职场文书
老公保证书
2015/01/17 职场文书
2015年乡镇环保工作总结
2015/04/22 职场文书
运动会宣传语
2015/07/13 职场文书
个人合作协议范本
2015/08/06 职场文书
MySQL官方导出工具mysqlpump的使用
2021/05/21 MySQL
SpringBoot整合minio快速入门教程(代码示例)
2022/04/03 Java/Android
Linux中一对多配置日志服务器的详细步骤
2022/07/23 Servers