feat(swaptrade): 债券三字段计算器交互改为回车触发并加源/AUTO/REV 三态标识
- 约定1:仅在净价/全价/收益率输入框敲回车触发计算器,失焦不触发 - 约定2:计算成功->源字段标"源"、另两字段标"AUTO";失败->保留源值、清空另两字段与标识 - 约定3:编辑某字段未回车->不联动另两字段,清源/AUTO、仅本字段标"REV" - swapCalc.js 新增 applyBondCalcSuccess/Failure/ManualEdit 纯函数,applyBondCalcResult 第三参由 manualSet 改为 driver(跳过源字段写回) - fastVue.base.js 新增 enter 事件区分回车/失焦,向后兼容旧的 input 行为 - TradeEdit.cshtml 三字段 input/enter 分离绑定 + 源/AUTO/REV 三态标签(去除旧铅笔图标) - 重写 bondCalc.test.js / 更新 swapCalc.test.js 覆盖状态机;jest 68 项全过
This commit is contained in:
@@ -332,6 +332,7 @@
|
||||
if (!event) return false;
|
||||
|
||||
_chnInput = -1;
|
||||
this._enterFired = false; // 每次按键先清 Enter 标记;仅在回车分支重新置位,避免误触发
|
||||
|
||||
let charCode = event.which || event.keyCode;
|
||||
|
||||
@@ -365,6 +366,7 @@
|
||||
return _options.precision > 0 && !event.shiftKey && checkDotInput.call(this);
|
||||
case 13: //enter
|
||||
case 108: //enter
|
||||
this._enterFired = true; // 标记回车触发,供 __change 区分"回车"与"失焦"
|
||||
$(this).blur();
|
||||
return true;
|
||||
case 67: //ctrl+c
|
||||
@@ -469,7 +471,9 @@
|
||||
else if (_options.append === '‱') f /= 10000;
|
||||
|
||||
}
|
||||
_options.onchange && _options.onchange(f, this.value);
|
||||
let isEnter = !!this._enterFired;
|
||||
this._enterFired = false;
|
||||
_options.onchange && _options.onchange(f, this.value, isEnter);
|
||||
}
|
||||
|
||||
//功能禁用
|
||||
@@ -543,9 +547,10 @@
|
||||
this.inputctrl.setValue(this.value)
|
||||
},
|
||||
methods: {
|
||||
onchange(value, text) {
|
||||
onchange(value, text, isEnter) {
|
||||
this.init = false;
|
||||
this.$emit('input', this.ret_type === 1 ? text : value);
|
||||
if (isEnter) this.$emit('enter', this.ret_type === 1 ? text : value);
|
||||
}
|
||||
},
|
||||
watch: {
|
||||
|
||||
Reference in New Issue
Block a user