diff --git a/src/calendar/index.js b/src/calendar/index.js index 3082ce04a..c9fae3c7e 100644 --- a/src/calendar/index.js +++ b/src/calendar/index.js @@ -23,8 +23,9 @@ export default createComponent({ color: String, value: Boolean, formatter: Function, - defaultDate: [Date, Array], confirmText: String, + rangePrompt: String, + defaultDate: [Date, Array], confirmDisabledText: String, type: { type: String, @@ -78,12 +79,6 @@ export default createComponent({ maxRange: { type: Number, default: null - }, - rangePrompt: { - type: String, - default() { - return t('rangePromptText', this.maxRange); - } } }, @@ -260,15 +255,32 @@ export default createComponent({ this.currentDate = date; this.$emit('select', this.currentDate); + if (complete && this.type === 'range') { + const valid = this.checkRange(); + + if (!valid) { + return; + } + } + if (complete && !this.showConfirm) { this.onConfirm(); } }, + checkRange() { + const { maxRange, currentDate, rangePrompt } = this; + + if (maxRange && calcDateNum(currentDate) > maxRange) { + Toast(rangePrompt || t('rangePrompt', maxRange)); + return false; + } + + return true; + }, + onConfirm() { - if (this.maxRange && calcDateNum(this.currentDate) > this.maxRange) { - Toast(this.rangePrompt); - } else { + if (this.checkRange()) { this.$emit('confirm', this.currentDate); } }, diff --git a/src/locale/lang/en-US.ts b/src/locale/lang/en-US.ts index 5565032d5..2f2788842 100644 --- a/src/locale/lang/en-US.ts +++ b/src/locale/lang/en-US.ts @@ -18,7 +18,7 @@ export default { title: 'Calendar', weekdays: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'], monthTitle: (year: number, month: number) => `${year}/${month}`, - rangePromptText: (maxRange: Number) => `Choose no more than ${maxRange} days` + rangePrompt: (maxRange: Number) => `Choose no more than ${maxRange} days` }, vanContactCard: { addText: 'Add contact info' diff --git a/src/locale/lang/es-ES.ts b/src/locale/lang/es-ES.ts index 8fa52d011..90c125c13 100644 --- a/src/locale/lang/es-ES.ts +++ b/src/locale/lang/es-ES.ts @@ -18,7 +18,7 @@ export default { title: 'Calendario', weekdays: ['Dom', 'Lun', 'Mar', 'Mié', 'Jue', 'Vie', 'Sáb'], monthTitle: (year: number, month: number) => `${year}/${month}`, - rangePromptText: (maxRange: Number) => `Elija no más de ${maxRange} días` + rangePrompt: (maxRange: Number) => `Elija no más de ${maxRange} días` }, vanContactCard: { addText: 'Añadir información de contacto' diff --git a/src/locale/lang/tr-TR.ts b/src/locale/lang/tr-TR.ts index 9a8e368a9..bc9d337d7 100644 --- a/src/locale/lang/tr-TR.ts +++ b/src/locale/lang/tr-TR.ts @@ -18,7 +18,7 @@ export default { title: 'Takvim', weekdays: ['Paz', 'Pzt', 'Sal', 'Çar', 'Per', 'Cum', 'Cmt'], monthTitle: (year: number, month: number) => `${year}/${month}`, - rangePromptText: (maxRange: Number) => `En fazla ${maxRange} gün seçin` + rangePrompt: (maxRange: Number) => `En fazla ${maxRange} gün seçin` }, vanContactCard: { addText: 'Kişi bilgisi ekle' diff --git a/src/locale/lang/zh-CN.ts b/src/locale/lang/zh-CN.ts index 9a338179c..629796907 100644 --- a/src/locale/lang/zh-CN.ts +++ b/src/locale/lang/zh-CN.ts @@ -19,7 +19,7 @@ export default { confirm: '确定', weekdays: ['日', '一', '二', '三', '四', '五', '六'], monthTitle: (year: number, month: number) => `${year}年${month}月`, - rangePromptText: (maxRange: Number) => `选择天数不能超过 ${maxRange} 天` + rangePrompt: (maxRange: Number) => `选择天数不能超过 ${maxRange} 天` }, vanContactCard: { addText: '添加联系人' diff --git a/src/locale/lang/zh-HK.ts b/src/locale/lang/zh-HK.ts index 28b3f4c8c..fbaa9599d 100644 --- a/src/locale/lang/zh-HK.ts +++ b/src/locale/lang/zh-HK.ts @@ -19,7 +19,7 @@ export default { confirm: '確定', weekdays: ['日', '壹', '二', '三', '四', '五', '六'], monthTitle: (year: number, month: number) => `${year}年${month}月`, - rangePromptText: (maxRange: Number) => `選擇天數不能超過 ${maxRange} 天` + rangePrompt: (maxRange: Number) => `選擇天數不能超過 ${maxRange} 天` }, vanContactCard: { addText: '添加聯系人' diff --git a/src/locale/lang/zh-TW.ts b/src/locale/lang/zh-TW.ts index f83f8e472..97e89bf4a 100644 --- a/src/locale/lang/zh-TW.ts +++ b/src/locale/lang/zh-TW.ts @@ -19,7 +19,7 @@ export default { confirm: '確定', weekdays: ['日', '壹', '二', '三', '四', '五', '六'], monthTitle: (year: number, month: number) => `${year}年${month}月`, - rangePromptText: (maxRange: Number) => `選擇天數不能超過 ${maxRange} 天` + rangePrompt: (maxRange: Number) => `選擇天數不能超過 ${maxRange} 天` }, vanContactCard: { addText: '新增聯絡人'