vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件


Posted in Vue.js onFebruary 20, 2021

需求背景简介

最近打算使用vue并结合前端工程化体系重构之前的一个Demo,其中有一个功能是使用bootstrap的datepicker插件选择查询日期。在网上找到了一个基于vue扩展的datepicker插件:vue-bootstrap-datepicker。这篇博客主要介绍在使用vue-cli 3创建的项目中如何使用该插件。项目地址:https://gitlab.com/JiaoXN/vuecli3usedatetimepicker.git

安装插件及其依赖项

这个插件有两个版本:一个是基于bootstrap 3.x开发的,一个是基于bootstrap 4.x开发的。本篇博客将会介绍后一种插件的安装及使用方法。

首先呢,需要安装插件的依赖项,包括bootstrap 4.x、jquery >= 1.8.3、moment.js 2.22以及pc-bootstrap4-datetimepicker。

  • 安装bootstrap
npm install bootstrap@4.0.0 --save-dev
  • 安装jquery
npm install jquery@3.3.1 --save-dev
  • 安装moment
npm install moment@2.22.2 --save-dev
  • 安装pc-bootstrap4-datetimepicker
npm install pc-bootstrap4-datetimepicker@4.17.50 --save-dev

或者直接设置package.json,然后通过npm install安装。 package.json配置如下:

...
"devDependencies": {
	"pc-bootstrap4-datetimepicker": "^4.17.50",
	"moment": "^2.22.2",
	"jquery": "^3.3.1",
	"bootstrap": "4.0.0"
}

然后安装vue-bootstrap-datetimepicker,安装方法与上述依赖项安装一致。

插件配置

由于vue-bootstrap-datetimepicker这个插件的原始版本是基于Bootstrap 3.x版本开发的,后来为了适应Bootstrap 4.x,有人对其进行了拓展(此时pc-bootstrap4-datetimepicker可以看做Bootstrap 4.x的补丁),但是如果直接使用这个插件默认的图标(类似于时间图标或者日期图标)均显示不出来,因此还需要一下配置。

出现上述问题的原因在于Bootstrap 4.x删除了glyphicon图标,所以呢,首先需要安装fortawesome插件,安装方法如下:

npm install @fortawesome/fontawesome-free@5.5.0 --save-dev

然后在使用datetimepicker这个插件的Vue文件中使用一下代码配置:

<script>

import '@fortawesome/fontawesome-free/css/all.css'

import $ from 'jquery'

export default {
	...
	created: function() {
		icons: {
			time: 'far fa-clock',
	    date: 'far fa-calendar',
	    up: 'fas fa-arrow-up',
	    down: 'fas fa-arrow-down',
	    previous: 'fas fa-chevron-left',
	    next: 'fas fa-chevron-right',
	    today: 'fas fa-calendar-check',
	    clear: 'far fa-trash-alt',
	    close: 'far fa-times-circle'
		}
	}
}

</script

上述代码中的created函数属于Vue生命周期中的一个钩子函数

插件使用

安装相关依赖插件和配置插件图片,接下来可以使用这个插件了,整个Vue代码如下:

<template>
	<div class="container">
		<div class="row>
			<div class="col-md-12">
				<date-picker
					v-model="date"
					:config="options"
					@dp-hide="showDatePickResult"/>
			</div>
		</div>
	</div>
</template>
<script>
import 'bootstrap/dist/css/bootstrap.css'

import datePicker from 'vue-bootstrap-datetimepicker'

import 'pc-bootstrap4-datetimepicker/build/css/bootstrap-datetimepicker.css'

import '@fortawesome/fontawesome-free/css/all.css'

import $ from 'jquery'

export default {
	name: 'HelloWorld',
	data () {
		return {
			date: new Date(),
			options: {
				format: 'YYYY-MM-DD HH:mm:ss',
				useCurrent: false,
				locale: 'zh-cn',
				tooltips: {
				 selectTime: ''
				}
			}
		}
	},
	methods: {
		showDatePickResult: function () {
			console.log(this.date)
		}
	},
	components: {
		datePicker
	},
	created: function () {
		$.extend(true, $.fn.datetimepicker.defaults, {
	 		icons: {
	  		time: 'far fa-clock',
	  		date: 'far fa-calendar',
	  		up: 'fas fa-arrow-up',
	  		down: 'fas fa-arrow-down',
	  		previous: 'fas fa-chevron-left',
	  		next: 'fas fa-chevron-right',
	  		today: 'fas fa-calendar-check',
	  		clear: 'far fa-trash-alt',
	  		close: 'far fa-times-circle'
	 		}
		})
	}
}
</script>

其中<template></template>中的内容就不用多赘述了,了解Vue的都基本清楚,如果不太了解Vue的朋友可以查看Vue的官网。

data中的options内容是datetimepicker这个插件的相关配置,整体的配置请参考这个链接,目前使用的配置描述如下:

  • format:日期格式,这一块需要注意的是,如果将HH:mm:ss中的HH换成hh,则这个插件描述日期的方式会分成AM和PM
  • locale: 表示使用哪种语言,zh-cn表示中文简体
  • tooltips: 表示提示内容,这一块这个插件有个Bug,在选择日期和选择时间的提示都是“Select Time”,因此这里把这个提示设置为空

以上就是vue-cli 3如何使用vue-bootstrap-datetimepicker日期插件的详细内容,更多关于使用vue-bootstrap-datetimepicker日期插件的资料请关注三水点靠木其它相关文章!

Vue.js 相关文章推荐
详解vue实现坐标拾取器功能示例
Nov 18 Vue.js
vue3.0中setup使用(两种用法)
Dec 02 Vue.js
vue中配置scss全局变量的步骤
Dec 28 Vue.js
Vue过滤器,生命周期函数和vue-resource简单介绍
Jan 12 Vue.js
vscode自定义vue模板的实现
Jan 27 Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
vue实现可移动的悬浮按钮
Mar 04 Vue.js
Vue中使用import进行路由懒加载的原理分析
Apr 01 Vue.js
vue中使用mockjs配置和使用方式
Apr 06 Vue.js
vue3语法糖内的defineProps及defineEmits
Apr 14 Vue.js
vue.js 使用原生js实现轮播图
Apr 26 Vue.js
vue里使用create, mounted调用方法
Apr 26 Vue.js
Vue实现todo应用的示例
Feb 20 #Vue.js
基于vue的video播放器的实现示例
Feb 19 #Vue.js
vue登录页实现使用cookie记住7天密码功能的方法
Feb 18 #Vue.js
Vue包大小优化的实现(从1.72M到94K)
Feb 18 #Vue.js
Vue如何实现变量表达式选择器
Feb 18 #Vue.js
WebStorm无法正确识别Vue3组合式API的解决方案
Feb 18 #Vue.js
如何在 Vue 中使用 JSX
Feb 14 #Vue.js
You might like
PHP随机数生成代码与使用实例分析
2011/04/08 PHP
使ecshop模板中可引用常量的实现方法
2011/06/02 PHP
php绘制圆形的方法
2015/01/24 PHP
yii实现model添加默认值的方法(2种方法)
2016/01/06 PHP
PHP数字金额转换成中文大写显示
2019/01/05 PHP
javascript判断ie浏览器6/7版本加载不同样式表的实现代码
2011/12/26 Javascript
JavaScript建立一个语法高亮输入框实现思路
2013/02/26 Javascript
jquery 使用简明教程
2014/03/05 Javascript
Javascript字符串对象的常用方法简明版
2014/06/26 Javascript
jquery简单的弹出层浮动层代码
2015/04/27 Javascript
jQuery悬停文字提示框插件jquery.tooltipster.js用法示例【附demo源码下载】
2016/07/19 Javascript
实例浅析js的this
2016/12/11 Javascript
vue.js 获取当前自定义属性值
2017/06/01 Javascript
vue.js源代码core scedule.js学习笔记
2017/07/03 Javascript
React-Native中props具体使用详解
2017/09/04 Javascript
Node.js搭建小程序后台服务
2018/01/03 Javascript
angular中如何绑定iframe中src的方法
2019/02/01 Javascript
iview实现动态表单和自定义验证时间段重叠
2021/01/10 Javascript
[55:04]海涛DOTA2死魂复燃6.82版本介绍
2014/09/28 DOTA
Python随机生成数据后插入到PostgreSQL
2016/07/28 Python
教你用Python写安卓游戏外挂
2018/01/11 Python
python计算两个矩形框重合百分比的实例
2018/11/07 Python
dataframe 按条件替换某一列中的值方法
2019/01/29 Python
python中matplotlib条件背景颜色的实现
2019/09/02 Python
使用Python画出小人发射爱心的代码
2019/11/23 Python
DataFrame.to_excel多次写入不同Sheet的实例
2019/12/02 Python
Python文本文件的合并操作方法代码实例
2020/03/31 Python
前台文员的岗位职责
2013/11/14 职场文书
优秀的个人求职信范文
2014/05/09 职场文书
民族团结演讲稿范文
2014/08/27 职场文书
暑假社会实践心得体会
2014/09/02 职场文书
乡镇镇长个人整改措施
2014/10/01 职场文书
小学班主任自我评价
2015/03/11 职场文书
2015年政务公开工作总结
2015/05/19 职场文书
Oracle笔记
2021/04/05 Oracle
vue项目打包后路由错误的解决方法
2022/04/13 Vue.js