From 0009a3bcb73bc01aada324de55a7f3c764c01604 Mon Sep 17 00:00:00 2001 From: qcc Date: Fri, 3 Jul 2020 15:13:00 +0800 Subject: [PATCH] =?UTF-8?q?DEC-13767=20fix:=20=E4=BF=AE=E5=A4=8Ddate=5Fpic?= =?UTF-8?q?ker=E6=9C=80=E5=A4=A7=E5=80=BC=E6=9C=80=E5=B0=8F=E5=80=BC?= =?UTF-8?q?=E5=88=A4=E6=96=AD=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.md | 1 + src/widget/date/calendar/picker.date.js | 59 ++++++++++++++----------- 2 files changed, 33 insertions(+), 27 deletions(-) diff --git a/changelog.md b/changelog.md index 88bac7e89..84ab48568 100644 --- a/changelog.md +++ b/changelog.md @@ -1,5 +1,6 @@ # 更新日志 2.0(2020-07) +- 修复date_picker最大值最小值判断问题 - 复选下拉树和下拉列表添加showView和hideVIew方法 - number_editor支持自动检测数值与范围是否合法 - 修复了颜色选择器设置值为null的时候,trigger和popup表现不一致的问题 diff --git a/src/widget/date/calendar/picker.date.js b/src/widget/date/calendar/picker.date.js index de16ff01d..58e98588f 100644 --- a/src/widget/date/calendar/picker.date.js +++ b/src/widget/date/calendar/picker.date.js @@ -6,35 +6,36 @@ BI.DatePicker = BI.inherit(BI.Widget, { _defaultConfig: function () { var conf = BI.DatePicker.superclass._defaultConfig.apply(this, arguments); + return BI.extend(conf, { baseCls: "bi-date-picker", height: 40, min: "1900-01-01", // 最小日期 - max: "2099-12-31" // 最大日期 + max: "2099-12-31", // 最大日期 }); }, _init: function () { BI.DatePicker.superclass._init.apply(this, arguments); - var self = this, o = this.options; + var self = this; var o = this.options; this._year = BI.getDate().getFullYear(); this._month = BI.getDate().getMonth() + 1; this.left = BI.createWidget({ type: "bi.icon_button", cls: "pre-page-h-font", width: 24, - height: 24 + height: 24, }); this.left.on(BI.IconButton.EVENT_CHANGE, function () { if (self._month === 1) { self.setValue({ year: self.year.getValue() - 1, - month: 12 + month: 12, }); } else { self.setValue({ year: self.year.getValue(), - month: self.month.getValue() - 1 + month: self.month.getValue() - 1, }); } self.fireEvent(BI.DatePicker.EVENT_CHANGE); @@ -46,19 +47,19 @@ BI.DatePicker = BI.inherit(BI.Widget, { type: "bi.icon_button", cls: "next-page-h-font", width: 24, - height: 24 + height: 24, }); this.right.on(BI.IconButton.EVENT_CHANGE, function () { if (self._month === 12) { self.setValue({ year: self.year.getValue() + 1, - month: 1 + month: 1, }); } else { self.setValue({ year: self.year.getValue(), - month: self.month.getValue() + 1 + month: self.month.getValue() + 1, }); } self.fireEvent(BI.DatePicker.EVENT_CHANGE); @@ -70,23 +71,23 @@ BI.DatePicker = BI.inherit(BI.Widget, { type: "bi.year_date_combo", behaviors: o.behaviors, min: o.min, - max: o.max + max: o.max, }); this.year.on(BI.YearDateCombo.EVENT_CHANGE, function () { self.setValue({ year: self.year.getValue(), - month: self.month.getValue() + month: self.month.getValue(), }); self.fireEvent(BI.DatePicker.EVENT_CHANGE); }); this.month = BI.createWidget({ type: "bi.month_date_combo", - behaviors: o.behaviors + behaviors: o.behaviors, }); this.month.on(BI.MonthDateCombo.EVENT_CHANGE, function () { self.setValue({ year: self.year.getValue(), - month: self.month.getValue() + month: self.month.getValue(), }); self.fireEvent(BI.DatePicker.EVENT_CHANGE); }); @@ -97,9 +98,9 @@ BI.DatePicker = BI.inherit(BI.Widget, { items: [{ el: { type: "bi.center_adapt", - items: [this.left] + items: [this.left], }, - width: 24 + width: 24, }, { type: "bi.center_adapt", items: [{ @@ -109,35 +110,39 @@ BI.DatePicker = BI.inherit(BI.Widget, { rgap: 10, items: [{ el: this.year, - lgap: 10 - }, this.month] - } - }] + lgap: 10, + }, this.month], + }, + }], }, { el: { type: "bi.center_adapt", - items: [this.right] + items: [this.right], }, - width: 24 - }] + width: 24, + }], }); this.setValue({ year: this._year, - month: this._month + month: this._month, }); }, _checkLeftValid: function () { var o = this.options; - var valid = !(this._month === 1 && this._year === BI.parseDateTime(o.min, "%Y-%X-%d").getFullYear()); + var minDate = BI.parseDateTime(o.min, "%Y-%X-%d"); + var valid = !(this._month <= (minDate.getMonth() + 1) && this._year <= minDate.getFullYear()); this.left.setEnable(valid); + return valid; }, _checkRightValid: function () { var o = this.options; - var valid = !(this._month === 12 && this._year === BI.parseDateTime(o.max, "%Y-%X-%d").getFullYear()); + var maxDate = BI.parseDateTime(o.max, "%Y-%X-%d"); + var valid = !(this._month >= (maxDate.getMonth() + 1) && this._year >= maxDate.getFullYear()); this.right.setEnable(valid); + return valid; }, @@ -161,9 +166,9 @@ BI.DatePicker = BI.inherit(BI.Widget, { getValue: function () { return { year: this.year.getValue(), - month: this.month.getValue() + month: this.month.getValue(), }; - } + }, }); BI.DatePicker.EVENT_CHANGE = "EVENT_CHANGE"; -BI.shortcut("bi.date_picker", BI.DatePicker); \ No newline at end of file +BI.shortcut("bi.date_picker", BI.DatePicker);