fix: 新增交易默认交易对手方未回写ClientId,保存报"请设置交易对手方"

autocomplete.setData 只写控件显示值、不触发 onSelect 回写 v-model——
新增时默认取客户列表第一个(consClients[0])仅 setData,trade.ClientId 仍为空,
前端校验拦截且不发请求;用户须手动从下拉重选一次才能保存。

- swaptrade/swapTradeEdit.js(SwapTrade2 现用页):默认客户经 vue.changeClient 显式回写,与手动选择等价
- trade/swapTradeEdit.js(SwapTrade 旧版页,同缺陷):直接赋值回写 trade.ClientId,不走 changeClient 以避免初始化触发 initMarginRate 后端调用

与 demo/autocomplete.js 死代码删除(3be4b48c)无关:该文件零引用,生产实现在 fastVue.base.js 未改动,缺陷自山证 v2.3.0 拷贝带入即存在。
This commit is contained in:
hjhan
2026-08-28 13:57:40 +08:00
parent 1b9ae140cf
commit b271a675d4
2 changed files with 4 additions and 0 deletions
@@ -1968,6 +1968,8 @@ function __init(vue) {
let clientId = page.Trade.ClientId;
let client = clientId ? consClients.find(x => x.id === clientId) : null;
!client && page.isAdd && (client = consClients[0]);
//setData 只写控件显示值、不触发 onSelect 回写 v-model——新增时默认客户须显式回写,否则 trade.ClientId 为空、保存报"请设置交易对手方"
client && page.isAdd && vue.changeClient(client);
autoClient.setData(client);
_getMainProtocolCode(client);
}
@@ -1185,6 +1185,8 @@ function __init(vue) {
let clientId = page.Trade.ClientId;
let client = clientId ? consClients.find(x => x.id === clientId) : null;
!client && page.IsNew && (client = consClients[0]);
//setData 只写控件显示值、不触发 onSelect 回写 v-model——新增时默认客户须显式回写,否则 trade.ClientId 为空、保存报"请设置交易对手方"
client && page.IsNew && (vue.trade.ClientId = client.id);
autoClient.setData(client);
_getMainProtocolCode(client);
}