Vue Bootstrap3 Datepicker
by cactus77kiki
HTML
<script src="https://momentjs.com/downloads/moment.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.10.6/locale/zh-tw.js"></script>
<script src="https://code.jquery.com/jquery-1.9.1.js"></script>
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.7/css/bootstrap.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/js/bootstrap-datetimepicker.min.js"></script>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/bootstrap-datetimepicker/4.17.47/css/bootstrap-datetimepicker.min.css">
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.6.10/vue.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/vue-bootstrap-datetimepicker/5.0.1/vue-bootstrap-datetimepicker.min.js"></script>
<div id="app">
<input type="button" class="btn btn-primary" value="reset" v-on:click="resetB"/>
<div class="container">
<div class="row">
<div class="col-md-12">
<date-picker name="date" v-model="date" :config="options"></date-picker>
<p>
v-model: {{date}}
</p>
</div>
</div>
</div>
<div class="form-inline tddatepicker">
<div class="form-group">
<div class="col-sm-12">
<date-picker name="sdate" v-model="Qsin_date" v-bind:config="options" class="inputdatepicker"></date-picker>
</div>
</div>
~
<div class="form-group">
<div class="col-sm-12">
<date-picker name="edate" v-model="Qein_date" v-bind:config="options" class="inputdatepicker2"></date-picker>
(YYYY/MM/DD)
</div>
</div>
</div>
<br/>
<h2>Todos:</h2>
<ol>
<li v-for="todo in todos">
<label>
...
CSS
body {
background: #20262E;
padding: 20px;
font-family: Helvetica;
}
#app {
background: #fff;
border-radius: 4px;
padding: 20px;
transition: all 0.2s;
}
li {
margin: 8px 0;
}
h2 {
font-weight: bold;
margin-bottom: 15px;
}
del {
color: rgba(0, 0, 0, 0.3);
}
JavaScript
/*
ref:https://jsfiddle.net/ankurk91/01407frf/
doc:http://eonasdan.github.io/bootstrap-datetimepicker/
official:https://www.npmjs.com/package/vue-bootstrap-datetimepicker
*/
var datepickerComponent = Vue.extend({
//v-el:select
template: '<div class="input-group date" v-el:inputgroup>' +
'<input type="text" class="form-control" v-model="value"><span class="input-group-addon"><i class="glyphicon glyphicon-calendar"></i></span>' +
'</div>',
props: {
//value: '2015-01-01' //預設值
},
data: function() {
return {};
},
ready: function() {
$(this.$els.inputgroup).datepicker({
format: 'YYYY/M/D',
autoclose: true
});
}
});
Vue.component('date-picker', VueBootstrapDatetimePicker);
$.extend(true, $.fn.datetimepicker.defaults, {
icons: {
/*
today: 'fas fa-calendar-check',
*/
time: 'glyphicon glyphicon-time',
date: ' glyphicon glyphicon-calendar',
up: 'glyphicon glyphicon-arrow-up',
down: 'glyphicon glyphicon-arrow-down',
previous: 'glyphicon glyphicon-chevron-left',
next: 'glyphicon glyphicon-chevron-right',
today: 'glyphicon glyphicon-screenshot',
clear: 'glyphicon glyphicon-trash',
close: 'glyphicon glyphicon-remove-circle'
},
tooltips: {
/*clear: 'Clear selection',
close: 'Close the picker',
selectMonth: 'Select Month',
prevMonth: 'Previous Month',
nextMonth: 'Next Month',
selectYear: 'Select Year',
prevYear: 'Previous Year',
nextYear: 'Next Year',
today: 'Go to today',
selectDecade: 'Select Decade',
prevDecade: 'Previous Decade',
nextDecade: 'Next Decade',
prevCentury: 'Previous Century',
nextCentury: 'Next Century'*/
clear: '清除選取',
close: '關閉月曆',
selectMonth: '選取月份',
prevMonth: '前一月',
nextMonth: '下一月',
selectYear: '選取年份',
prevYear: '前一年',
nextYear: '下一年'
...