| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158 | 
							- "use strict";
 
- Object.defineProperty(exports, "__esModule", { value: true });
 
- var component_1 = require("../../../common/component");
 
- var utils_1 = require("../../utils");
 
- (0, component_1.VantComponent)({
 
-     props: {
 
-         date: {
 
-             type: null,
 
-             observer: 'setDays',
 
-         },
 
-         type: {
 
-             type: String,
 
-             observer: 'setDays',
 
-         },
 
-         color: String,
 
-         minDate: {
 
-             type: null,
 
-             observer: 'setDays',
 
-         },
 
-         maxDate: {
 
-             type: null,
 
-             observer: 'setDays',
 
-         },
 
-         showMark: Boolean,
 
-         rowHeight: null,
 
-         formatter: {
 
-             type: null,
 
-             observer: 'setDays',
 
-         },
 
-         currentDate: {
 
-             type: null,
 
-             observer: 'setDays',
 
-         },
 
-         firstDayOfWeek: {
 
-             type: Number,
 
-             observer: 'setDays',
 
-         },
 
-         allowSameDay: Boolean,
 
-         showSubtitle: Boolean,
 
-         showMonthTitle: Boolean,
 
-     },
 
-     data: {
 
-         visible: true,
 
-         days: [],
 
-     },
 
-     methods: {
 
-         onClick: function (event) {
 
-             var index = event.currentTarget.dataset.index;
 
-             var item = this.data.days[index];
 
-             if (item.type !== 'disabled') {
 
-                 this.$emit('click', item);
 
-             }
 
-         },
 
-         setDays: function () {
 
-             var days = [];
 
-             var startDate = new Date(this.data.date);
 
-             var year = startDate.getFullYear();
 
-             var month = startDate.getMonth();
 
-             var totalDay = (0, utils_1.getMonthEndDay)(startDate.getFullYear(), startDate.getMonth() + 1);
 
-             for (var day = 1; day <= totalDay; day++) {
 
-                 var date = new Date(year, month, day);
 
-                 var type = this.getDayType(date);
 
-                 var config = {
 
-                     date: date,
 
-                     type: type,
 
-                     text: day,
 
-                     bottomInfo: this.getBottomInfo(type),
 
-                 };
 
-                 if (this.data.formatter) {
 
-                     config = this.data.formatter(config);
 
-                 }
 
-                 days.push(config);
 
-             }
 
-             this.setData({ days: days });
 
-         },
 
-         getMultipleDayType: function (day) {
 
-             var currentDate = this.data.currentDate;
 
-             if (!Array.isArray(currentDate)) {
 
-                 return '';
 
-             }
 
-             var isSelected = function (date) {
 
-                 return currentDate.some(function (item) { return (0, utils_1.compareDay)(item, date) === 0; });
 
-             };
 
-             if (isSelected(day)) {
 
-                 var prevDay = (0, utils_1.getPrevDay)(day);
 
-                 var nextDay = (0, utils_1.getNextDay)(day);
 
-                 var prevSelected = isSelected(prevDay);
 
-                 var nextSelected = isSelected(nextDay);
 
-                 if (prevSelected && nextSelected) {
 
-                     return 'multiple-middle';
 
-                 }
 
-                 if (prevSelected) {
 
-                     return 'end';
 
-                 }
 
-                 return nextSelected ? 'start' : 'multiple-selected';
 
-             }
 
-             return '';
 
-         },
 
-         getRangeDayType: function (day) {
 
-             var _a = this.data, currentDate = _a.currentDate, allowSameDay = _a.allowSameDay;
 
-             if (!Array.isArray(currentDate)) {
 
-                 return '';
 
-             }
 
-             var startDay = currentDate[0], endDay = currentDate[1];
 
-             if (!startDay) {
 
-                 return '';
 
-             }
 
-             var compareToStart = (0, utils_1.compareDay)(day, startDay);
 
-             if (!endDay) {
 
-                 return compareToStart === 0 ? 'start' : '';
 
-             }
 
-             var compareToEnd = (0, utils_1.compareDay)(day, endDay);
 
-             if (compareToStart === 0 && compareToEnd === 0 && allowSameDay) {
 
-                 return 'start-end';
 
-             }
 
-             if (compareToStart === 0) {
 
-                 return 'start';
 
-             }
 
-             if (compareToEnd === 0) {
 
-                 return 'end';
 
-             }
 
-             if (compareToStart > 0 && compareToEnd < 0) {
 
-                 return 'middle';
 
-             }
 
-             return '';
 
-         },
 
-         getDayType: function (day) {
 
-             var _a = this.data, type = _a.type, minDate = _a.minDate, maxDate = _a.maxDate, currentDate = _a.currentDate;
 
-             if ((0, utils_1.compareDay)(day, minDate) < 0 || (0, utils_1.compareDay)(day, maxDate) > 0) {
 
-                 return 'disabled';
 
-             }
 
-             if (type === 'single') {
 
-                 return (0, utils_1.compareDay)(day, currentDate) === 0 ? 'selected' : '';
 
-             }
 
-             if (type === 'multiple') {
 
-                 return this.getMultipleDayType(day);
 
-             }
 
-             /* istanbul ignore else */
 
-             if (type === 'range') {
 
-                 return this.getRangeDayType(day);
 
-             }
 
-             return '';
 
-         },
 
-         getBottomInfo: function (type) {
 
-             if (this.data.type === 'range') {
 
-                 if (type === 'start') {
 
-                     return '开始';
 
-                 }
 
-                 if (type === 'end') {
 
-                     return '结束';
 
-                 }
 
-                 if (type === 'start-end') {
 
-                     return '开始/结束';
 
-                 }
 
-             }
 
-         },
 
-     },
 
- });
 
 
  |