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格式化日期时间的方法和自定义格式化函数示例
Apr 04 Javascript
深入理解JavaScript系列(25):设计模式之单例模式详解
Mar 03 Javascript
JavaScript实现复制内容到粘贴板代码
Mar 31 Javascript
JS中判断字符串中出现次数最多的字符及出现的次数的简单实例
Jun 03 Javascript
js 截取或者替换字符串中的数字实现方法
Jun 13 Javascript
Javascript缓存API
Jun 14 Javascript
Vue表单验证插件Vue Validator使用方法详解
Apr 07 Javascript
Angularjs Promise实例详解
Mar 15 Javascript
Vue高版本中一些新特性的使用详解
Sep 25 Javascript
js replace替换字符串同时替换多个方法
Nov 27 Javascript
vue基于v-charts封装双向条形图的实现代码
Dec 09 Javascript
javascript实现京东快递单号的查询效果
Nov 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
在windows服务器开启php的gd库phpinfo中未发现
2013/01/13 PHP
使用Appcan客户端自动更新PHP版本号(全)
2015/07/31 PHP
让getElementsByName适应IE和firefox的方法
2007/09/24 Javascript
用js来定义浏览器中一个左右浮动元素相对于页面主体宽度的位置的函数
2012/01/21 Javascript
基于jquery的时间段实现代码
2012/08/02 Javascript
javascript实现数字验证码的简单实例
2014/02/10 Javascript
ie8模式下click无反应点击option无反应的解决方法
2014/10/11 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
javascript实现汉字转拼音代码分享
2015/04/20 Javascript
JavaScript实现自动消除按钮功能的方法
2015/08/05 Javascript
JavaScript中var关键字的使用详解
2015/08/14 Javascript
基于jQuery通过jQuery.form.js插件实现异步上传
2015/12/13 Javascript
JS组件Bootstrap Table使用方法详解
2016/02/02 Javascript
详解React Native开源时间日期选择器组件(react-native-datetime)
2017/09/13 Javascript
ES6 系列之 Generator 的自动执行的方法示例
2018/10/19 Javascript
JS实现前端路由功能示例【原生路由】
2020/05/29 Javascript
Python实现的金山快盘的签到程序
2013/01/17 Python
Python 通过打码平台实现验证码的实现
2019/05/13 Python
Python人工智能之路 之PyAudio 实现录音 自动化交互实现问答
2019/08/13 Python
Jupyter打开图形界面并画出正弦函数图像实例
2020/04/24 Python
一款纯css3实现的颜色渐变按钮的代码教程
2014/11/12 HTML / CSS
详解移动端html5页面长按实现高亮全选文本内容的兼容解决方案
2016/12/03 HTML / CSS
浅谈HTML5 FileReader分布读取文件以及其方法简介
2017/11/09 HTML / CSS
马来西亚最好的婴儿商店:Motherhood
2017/09/14 全球购物
一些关于MySql加速和优化的面试题
2014/01/30 面试题
幼儿如何来做好自我评价
2013/11/05 职场文书
大学生个人事迹材料
2014/01/21 职场文书
企业管理毕业生求职信范文
2014/03/07 职场文书
审计专业自荐信范文
2014/04/21 职场文书
人事文员岗位职责
2015/02/04 职场文书
焦裕禄纪念馆观后感
2015/06/09 职场文书
小学校本教研总结
2015/08/13 职场文书
CSS巧用渐变实现高级感背景光动画
2021/12/06 HTML / CSS
HTTP中的Content-type详解
2022/01/18 HTML / CSS
分享MySQL常用 内核 Debug 几种常见方法
2022/03/17 MySQL
HTML页面点击按钮关闭页面的多种方式
2022/12/24 HTML / CSS