Browse Source

KERNEL-14024 feat: bi.number_editor 功能优化, 支持键盘上下键微调数值

research/test
zsmj 2 years ago
parent
commit
2ba96a52d6
  1. 2
      src/base/single/editor/editor.js
  2. 4
      src/case/editor/editor.sign.js
  3. 41
      src/widget/numbereditor/number.editor.js

2
src/base/single/editor/editor.js

@ -109,6 +109,7 @@ BI.Editor = BI.inherit(BI.Single, {
if (e.keyCode !== BI.KeyCode.TAB && self.watermark) {
self.watermark.invisible();
}
self.fireEvent(BI.Editor.EVENT_QUICK_DOWN, arguments);
});
this.editor.on(BI.Input.EVENT_VALID, function () {
@ -360,6 +361,7 @@ BI.Editor.EVENT_FOCUS = "EVENT_FOCUS";
BI.Editor.EVENT_BLUR = "EVENT_BLUR";
BI.Editor.EVENT_CLICK = "EVENT_CLICK";
BI.Editor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
BI.Editor.EVENT_QUICK_DOWN = "EVENT_QUICK_DOWN";
BI.Editor.EVENT_SPACE = "EVENT_SPACE";
BI.Editor.EVENT_BACKSPACE = "EVENT_BACKSPACE";

4
src/case/editor/editor.sign.js

@ -87,6 +87,9 @@ BI.SignEditor = BI.inherit(BI.Widget, {
this.editor.on(BI.Editor.EVENT_KEY_DOWN, function (v) {
self.fireEvent(BI.SignEditor.EVENT_KEY_DOWN, arguments);
});
this.editor.on(BI.Editor.EVENT_QUICK_DOWN, function () {
self.fireEvent(BI.SignEditor.EVENT_QUICK_DOWN, arguments);
});
this.editor.on(BI.Editor.EVENT_VALID, function () {
self.fireEvent(BI.SignEditor.EVENT_VALID, arguments);
@ -265,6 +268,7 @@ BI.SignEditor.EVENT_FOCUS = "EVENT_FOCUS";
BI.SignEditor.EVENT_BLUR = "EVENT_BLUR";
BI.SignEditor.EVENT_CLICK = "EVENT_CLICK";
BI.SignEditor.EVENT_KEY_DOWN = "EVENT_KEY_DOWN";
BI.SignEditor.EVENT_QUICK_DOWN = "EVENT_QUICK_DOWN";
BI.SignEditor.EVENT_CLICK_LABEL = "EVENT_CLICK_LABEL";
BI.SignEditor.EVENT_START = "EVENT_START";

41
src/widget/numbereditor/number.editor.js

@ -39,9 +39,33 @@ BI.NumberEditor = BI.inherit(BI.Widget, {
if (o.validationChecker === BI.emptyFn && !self._checkValueInRange(parsedValue)) {
return false;
}
return o.validationChecker(parsedValue);
},
errorText: o.errorText
errorText: o.errorText,
listeners: [
{
eventName: BI.SignEditor.EVENT_QUICK_DOWN,
action: e => {
if ([BI.KeyCode.UP, BI.KeyCode.DOWN].includes(e.keyCode)) {
e.preventDefault();
}
},
},
{
eventName: BI.SignEditor.EVENT_KEY_DOWN,
action: (keycode) => {
if (keycode === BI.KeyCode.UP) {
this._finetuning(o.step);
return;
}
if (keycode === BI.KeyCode.DOWN) {
this._finetuning(-o.step);
}
},
}
],
});
this.editor.on(BI.TextEditor.EVENT_CHANGE, function () {
// 大多数时候valueFormatter往往需要配合valueParser一起使用
@ -68,7 +92,7 @@ BI.NumberEditor = BI.inherit(BI.Widget, {
forceNotSelected: true,
trigger: "lclick,",
debounce: false,
cls: (o.simple ? "solid-triangle-top-font " : "add-up-font bi-border-left ") + "top-button bi-list-item-active2 icon-size-12"
cls: (o.simple ? "solid-triangle-top-font " : "add-up-font bi-border-left ") + "top-button bi-list-item-active2 icon-size-12",
});
this.topBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._finetuning(o.step);
@ -80,7 +104,7 @@ BI.NumberEditor = BI.inherit(BI.Widget, {
trigger: "lclick,",
forceNotSelected: true,
debounce: false,
cls: (o.simple ? "solid-triangle-bottom-font " : "minus-down-font bi-border-left ") + "bottom-button bi-list-item-active2 icon-size-12"
cls: (o.simple ? "solid-triangle-bottom-font " : "minus-down-font bi-border-left ") + "bottom-button bi-list-item-active2 icon-size-12",
});
this.bottomBtn.on(BI.IconButton.EVENT_CHANGE, function () {
self._finetuning(-o.step);
@ -101,17 +125,17 @@ BI.NumberEditor = BI.inherit(BI.Widget, {
{
column: 0,
row: 0,
el: this.topBtn
el: this.topBtn,
}, {
column: 0,
row: 1,
el: this.bottomBtn
el: this.bottomBtn,
}
]
],
},
width: 23
width: 23,
}
]
],
});
},
@ -125,6 +149,7 @@ BI.NumberEditor = BI.inherit(BI.Widget, {
_checkValueInRange: function (v) {
var o = this.options;
return !!(BI.isNumeric(v) && BI.parseFloat(v) >= o.min && BI.parseFloat(v) <= o.max);
},

Loading…
Cancel
Save