diff --git a/CHANGELOG.md b/CHANGELOG.md index 0352b0e5542399ff1af4319ebbe04594a534aad2..2a72c72b31361515e4e6d176bbe543ae98bf1d45 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -32,6 +32,7 @@ - 修复多数据视图部件的项样式呈现异常 - 修复多选视图引擎中选中树节点数据后报错,树节点数据未拷贝导致更改了树节点数据 - 修复vs树回显异常,包括vs树checkedKeys变量响应丢失,树节点加载后未设置选中数据 +- 修复树多选抛出值异常,后台界面行为使用该数据传输时无法JSON.stringify导致报错 ## [0.7.41-alpha.18] - 2025-09-30 diff --git a/src/view-engine/mob-mpickup-view-engine.ts b/src/view-engine/mob-mpickup-view-engine.ts index 088ba220aa318290450aee2b3f7a529d56333dfd..51b3b63d75a32bb19aa717851c582e3dc1f78ba9 100644 --- a/src/view-engine/mob-mpickup-view-engine.ts +++ b/src/view-engine/mob-mpickup-view-engine.ts @@ -9,7 +9,6 @@ import { } from '@ibiz-template/runtime'; // todo 缺失 IAppDEMobMPickupView import { IAppDEMobPickupView } from '@ibiz/model-core'; -import { clone } from 'ramda'; import { MobPickupViewEngine } from './mob-pickup-view.engine'; /** @@ -98,8 +97,7 @@ export class MobMPickupViewEngine extends MobPickupViewEngine { async onMounted(): Promise { await super.onMounted(); this.pickupViewPanel.evt.on('onSelectionChange', event => { - // 需要clone一下数据,防止数据被修改 - this.pickupViewPanelSelectionChange(clone(event.data)); + this.pickupViewPanelSelectionChange(event.data); }); // 列表激活取消选中 diff --git a/src/view-engine/mob-pickup-tree-view.engine.ts b/src/view-engine/mob-pickup-tree-view.engine.ts index df6a2ea8430083fde82790671b7a6ecc8ed1a980..d4c55421732e805efcd32118603dc231e1de353b 100644 --- a/src/view-engine/mob-pickup-tree-view.engine.ts +++ b/src/view-engine/mob-pickup-tree-view.engine.ts @@ -8,7 +8,7 @@ import { IAppDEMobTreeView } from '@ibiz/model-core'; import { MobTreeViewEngine } from './mob-tree-view.engine'; export class MobPickupTreeViewEngine extends MobTreeViewEngine { - protected declare view: ViewController< + declare protected view: ViewController< IAppDEMobTreeView, IPickupTreeViewState, IPickupTreeViewEvent @@ -40,10 +40,14 @@ export class MobPickupTreeViewEngine extends MobTreeViewEngine { async onMounted(): Promise { const { model } = this.view; this.xdataControl.evt.on('onSelectionChange', async event => { - this.view.evt.emit('onSelectionChange', { ...event }); + // 使用树节点实体数据,防止后台界面行为传参时JSON.stringify失败 + const tempData = event.data.map(x => x._deData); + this.view.evt.emit('onSelectionChange', { ...event, data: tempData }); }); this.xdataControl.evt.on('onActive', async event => { - this.view.evt.emit('onDataActive', { ...event }); + // 使用树节点实体数据,防止后台界面行为传参时JSON.stringify失败 + const tempData = event.data.map(x => x._deData); + this.view.evt.emit('onDataActive', { ...event, data: tempData }); }); // 默认加载 if (model.loadDefault) {