diff --git a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeEdit.js b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeEdit.js index 61823707..a49bd12c 100644 --- a/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeEdit.js +++ b/YLErpWeb/wwwroot/Scripts/app/swaptrade/swapTradeEdit.js @@ -421,6 +421,7 @@ const vue = new Vue({ if (price === null || price === '' || isNaN(price)) { // 交互约定2补充:源字段为空/非数也算"算不出来",清另两字段+所有标识 SwapCalc.applyBondCalcFailure(item, driver); + self.syncBondFlags(item); return; } var priceType = driver === 'CP' ? 'CP' : driver === 'DP' ? 'DP' : 'YD'; @@ -435,6 +436,7 @@ const vue = new Vue({ if (SwapCalc.shouldShowBondErr(item, sdMsg)) main.message(sdMsg); // 交互约定2补充:开始日缺失也算"算不出来",清另两字段+所有标识 SwapCalc.applyBondCalcFailure(item, driver); + self.syncBondFlags(item); return; // 估值日缺失:不调用计算器、不覆盖任何手工输入 } main.post('/Bond/CalcBond', { @@ -485,6 +487,14 @@ const vue = new Vue({ // 名义本金依赖全价(PosiGrossPrice):以净价/收益率为源反算出的全价被回写后, // 直接赋值不会触发组件 input 事件,需在此显式重算,保持名义本金与全价一致。 if (self.calcNotional) self.calcNotional(); + }).fail(function (resp) { + // 交互约定2补充:main.post 在 success:false(业务错误=计算器算不出来)或网络异常时 + // 走 reject,.done 不会触发;故"计算器算不出来"统一在此落地: + // 保留源字段值、另两字段清空为空白、三个数值旁标识(源/AUTO/REV)全清。 + // 错误文案已由 __post 的 alertFn(main.message) 非阻塞提示,此处不重复弹,仅清数值+清标识 + // (与 .done 内 !resp.obj / getBondCalcErrorMessage 两个失败分支行为一致)。 + SwapCalc.applyBondCalcFailure(item, driver); + self.syncBondFlags(item); }); }, //变更收费基本单位