55 lines
1.5 KiB
JavaScript
55 lines
1.5 KiB
JavaScript
import { createNamespace } from '../../utils';
|
|
import { t, bem } from '../utils';
|
|
|
|
var _createNamespace = createNamespace('calendar-header'),
|
|
createComponent = _createNamespace[0];
|
|
|
|
export default createComponent({
|
|
props: {
|
|
title: String,
|
|
subtitle: String,
|
|
showTitle: Boolean,
|
|
showSubtitle: Boolean,
|
|
firstDayOfWeek: Number
|
|
},
|
|
methods: {
|
|
genTitle: function genTitle() {
|
|
var h = this.$createElement;
|
|
|
|
if (this.showTitle) {
|
|
var title = this.slots('title') || this.title || t('title');
|
|
return h("div", {
|
|
"class": bem('header-title')
|
|
}, [title]);
|
|
}
|
|
},
|
|
genSubtitle: function genSubtitle() {
|
|
var h = this.$createElement;
|
|
|
|
if (this.showSubtitle) {
|
|
return h("div", {
|
|
"class": bem('header-subtitle')
|
|
}, [this.subtitle]);
|
|
}
|
|
},
|
|
genWeekDays: function genWeekDays() {
|
|
var h = this.$createElement;
|
|
var weekdays = t('weekdays');
|
|
var firstDayOfWeek = this.firstDayOfWeek;
|
|
var renderWeekDays = [].concat(weekdays.slice(firstDayOfWeek, 7), weekdays.slice(0, firstDayOfWeek));
|
|
return h("div", {
|
|
"class": bem('weekdays')
|
|
}, [renderWeekDays.map(function (item) {
|
|
return h("span", {
|
|
"class": bem('weekday')
|
|
}, [item]);
|
|
})]);
|
|
}
|
|
},
|
|
render: function render() {
|
|
var h = arguments[0];
|
|
return h("div", {
|
|
"class": bem('header')
|
|
}, [this.genTitle(), this.genSubtitle(), this.genWeekDays()]);
|
|
}
|
|
}); |