BootstrapVue Calendar 日历组件b-calendar可以用来选择日期,支持自定义可选日期范围,兼容WAI-ARIA。如果未设置语言默认为浏览器当前语言环境。
例子
设置value-as-date属性为true后,选中日期将会触发input事件。
<div id="app">
<b-row>
<b-col md="auto">
<b-calendar v-model="value" @context="onContext" @input="onInput" value-as-date></b-calendar>
</b-col>
<b-col>
<p>选择日期: <b>'{{ value }}'</b></p>
<p class="mb-0">上下文:</p>
<pre class="small">{{ context }}</pre>
</b-col>
</b-row>
</div>
<script>
//注册BootstrapVue组件
Vue.component('BootstrapVue', BootstrapVue);
var app = new Vue({
el: '#app',
data() {
return {
value: '',
context: null
};
},
methods: {
onContext(ctx) {
this.context = ctx
},
//设置value-as-date后会触发onInput事件
onInput(date) {
alert(date);
}
}
});
</script>
例子
<b-calendar
:disabled="true"
:readonly="true"
></b-calendar>
<div id="app">
<b-calendar v-model="value" :min="min" :max="max"></b-calendar>
</div>
<script>
//设置只允许选择当月15号到20号
Vue.component('BootstrapVue', BootstrapVue);
var app = new Vue({
el: '#app',
data() {
const now = new Date()
const today = new Date(now.getFullYear(), now.getMonth(), now.getDate())
// 15th two months prior
const minDate = new Date(today)
minDate.setDate(15)
// 15th in two months
const maxDate = new Date(today)
maxDate.setDate(20)
return {
value: '',
min: minDate,
max: maxDate
}
}
});
</script
例子
通过date-disabled-fn事件设置不允许选择的日期,以下代码设置星期六星期天和13号不可选择。
<div id="app">
<b-calendar v-model="value" :date-disabled-fn="dateDisabled" ></b-calendar>
</div>
<script>
//设置只允许选择当月15号到20号
Vue.component('BootstrapVue', BootstrapVue);
var app = new Vue({
el: '#app',
data() {
return {
value: ''
}
},
methods: {
dateDisabled(ymd, date) {
const weekday = date.getDay()
const day = date.getDate()
// 设置星期六星期天和13号不可选择
return weekday === 0 || weekday === 6 || day === 13
}
}
});
</script>
例子