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 替换Html标签实现代码
Oct 14 Javascript
JQuery Tips(3) 关于$()包装集内元素的改变
Dec 14 Javascript
Js实现当前点击a标签变色突出显示其他a标签回复原色
Nov 27 Javascript
深入理解逻辑表达式的用法 与或非的用法
Jun 06 Javascript
jQuery基本过滤选择器用法示例
Sep 09 Javascript
基于百度地图实现产品销售的单位位置查看功能设计与实现
Oct 21 Javascript
浅谈键盘上回车按钮的js触发事件
Feb 13 Javascript
ES6中Math对象新增的方法实例详解
Apr 25 Javascript
vue.js动画中的js钩子函数的实现
Jul 06 Javascript
使用webpack/gulp构建TypeScript项目的方法示例
Dec 18 Javascript
微信小程序getLocation 需要在app.json中声明permission字段
Mar 03 Javascript
js仿淘宝放大镜效果
Dec 28 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中计算中文字符串长度、截取中文字符串的函数代码
2011/08/09 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
PHP 常用的header头部定义汇总
2015/06/19 PHP
浅谈php错误提示及查错方法
2015/07/14 PHP
关于扩展 Laravel 默认 Session 中间件导致的 Session 写入失效问题分析
2016/01/08 PHP
Codeigniter里的无刷新上传的实现代码
2019/04/14 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
jquery autocomplete自动完成插件的的使用方法
2010/08/07 Javascript
js比较和逻辑运算符的介绍
2013/03/10 Javascript
Javascript改变CSS样式(局部和全局)
2013/12/18 Javascript
JS实现跟随鼠标的链接文字提示框效果
2015/08/06 Javascript
基于OL2实现百度地图ABCD marker的效果
2015/10/01 Javascript
js removeChild 方法深入理解
2016/08/16 Javascript
input 禁止输入特殊字符的四种实现方式
2016/08/24 Javascript
jQuery插件FusionCharts实现的Marimekko图效果示例【附demo源码】
2017/03/24 jQuery
很棒的vue弹窗组件
2017/05/24 Javascript
JavaScript该如何学习 怎样轻松学习JavaScript
2017/06/12 Javascript
Vue之Watcher源码解析(2)
2017/07/19 Javascript
javascript实现循环广告条效果
2017/12/12 Javascript
js数组常用最重要的方法
2018/02/04 Javascript
vue中多个倒计时实现代码实例
2019/03/27 Javascript
React 实现车牌键盘的示例代码
2019/12/20 Javascript
[40:31]Secret vs Alliacne 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/17 DOTA
python函数缺省值与引用学习笔记分享
2013/02/10 Python
Python里隐藏的“禅”
2014/06/16 Python
PyQt5每天必学之滑块控件QSlider
2018/04/20 Python
python实现DEM数据的阴影生成的方法
2019/07/23 Python
基于spring boot 日志(logback)报错的解决方式
2020/02/20 Python
Django中使用Json返回数据的实现方法
2020/06/03 Python
Python如何爬取b站热门视频并导入Excel
2020/08/10 Python
Perry Ellis官网:美国男士品味服装
2016/12/09 全球购物
工程预算与管理应届生求职信
2013/10/06 职场文书
会计毕业生求职简历的自我评价
2013/10/20 职场文书
学校党支部承诺书
2015/04/30 职场文书
热爱劳动主题班会
2015/08/14 职场文书
python开发实时可视化仪表盘的示例
2021/05/07 Python