From 34fd4b7df07a823c133d036ad9f274178c3b80ba Mon Sep 17 00:00:00 2001 From: windy <1374721899@qq.com> Date: Wed, 1 Jul 2020 13:55:18 +0800 Subject: [PATCH] =?UTF-8?q?BI-67618=20refactor:=20number=5Feditor=E6=94=AF?= =?UTF-8?q?=E6=8C=81min=EF=BC=8Cmax=E5=B1=9E=E6=80=A7?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- changelog.md | 3 +++ src/widget/numbereditor/number.editor.js | 30 ++++++++++++++++++++---- 2 files changed, 29 insertions(+), 4 deletions(-) diff --git a/changelog.md b/changelog.md index df0987cc0..a6c43db20 100644 --- a/changelog.md +++ b/changelog.md @@ -1,4 +1,7 @@ # 更新日志 +2.0(2020-07) +- 数值微调器新增min,max属性自动检测数值范围 + 2.0(2020-06) - 修复了复选下拉树半选节点的子节点未加载的时候,点选该半选节点是取消选中的问题 - 下拉树系列支持isNeedAdjustWidth以动态变化宽度 diff --git a/src/widget/numbereditor/number.editor.js b/src/widget/numbereditor/number.editor.js index 05292867d..9061a2949 100644 --- a/src/widget/numbereditor/number.editor.js +++ b/src/widget/numbereditor/number.editor.js @@ -15,7 +15,9 @@ BI.NumberEditor = BI.inherit(BI.Widget, { value: 0, allowBlank: false, errorText: "", - step: 1 + step: 1, + min: BI.MIN, + max: BI.MAX }); }, @@ -27,10 +29,16 @@ BI.NumberEditor = BI.inherit(BI.Widget, { height: o.height - 2, allowBlank: o.allowBlank, value: o.valueFormatter(o.value), - validationChecker: o.validationChecker, + validationChecker: function (v) { + if(!self._checkValueInRange(v)) { + return false; + } + return o.validationChecker(v); + }, errorText: o.errorText }); this.editor.on(BI.TextEditor.EVENT_CHANGE, function () { + self._checkAdjustDisabled(o.value); self.fireEvent(BI.NumberEditor.EVENT_CHANGE); }); this.editor.on(BI.TextEditor.EVENT_ERROR, function () { @@ -46,10 +54,12 @@ BI.NumberEditor = BI.inherit(BI.Widget, { type: "bi.icon_button", forceNotSelected: true, trigger: "lclick,", - cls: "add-up-font top-button bi-border-left bi-list-item-active2 icon-size-12" + cls: "add-up-font top-button bi-border-left bi-list-item-active2 icon-size-12", + disabled: BI.parseFloat(o.value) >= o.max }); this.topBtn.on(BI.IconButton.EVENT_CHANGE, function () { self._finetuning(o.step); + self._checkAdjustDisabled(o.value); self.fireEvent(BI.NumberEditor.EVENT_CHANGE); self.fireEvent(BI.NumberEditor.EVENT_CONFIRM); }); @@ -57,10 +67,12 @@ BI.NumberEditor = BI.inherit(BI.Widget, { type: "bi.icon_button", trigger: "lclick,", forceNotSelected: true, - cls: "minus-down-font bottom-button bi-border-left bi-list-item-active2 icon-size-12" + cls: "minus-down-font bottom-button bi-border-left bi-list-item-active2 icon-size-12", + disabled: BI.parseFloat(o.value) <= o.min }); this.bottomBtn.on(BI.IconButton.EVENT_CHANGE, function () { self._finetuning(-o.step); + self._checkAdjustDisabled(o.value); self.fireEvent(BI.NumberEditor.EVENT_CHANGE); self.fireEvent(BI.NumberEditor.EVENT_CONFIRM); }); @@ -96,6 +108,16 @@ BI.NumberEditor = BI.inherit(BI.Widget, { return this.editor.isEditing(); }, + _checkValueInRange: function(v) { + var o = this.options; + return !!(BI.isNumeric(v) && BI.parseFloat(v) >= o.min && BI.parseFloat(v) <= o.max); + }, + + _checkAdjustDisabled: function(v) { + this.bottomBtn.setEnable(BI.parseFloat(v) > this.options.min); + this.topBtn.setEnable(BI.parseFloat(v) < this.options.max); + }, + // 微调 _finetuning: function (add) { var v = BI.parseFloat(this.getValue());