From 9803d2cc66920ab7f8175ecd11890160cb875631 Mon Sep 17 00:00:00 2001 From: luojunhui <2807466517@qq.com> Date: Wed, 29 Oct 2025 11:12:15 +0800 Subject: [PATCH 1/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E6=8B=86=E5=88=86=EF=BC=8C=E4=B8=BB=E8=A1=A8=E5=AD=90=E8=A1=A8?= =?UTF-8?q?=E5=85=B7=E6=9C=89=E7=9B=B8=E5=90=8CpropId=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E7=9A=84id=E4=B8=8D=E5=90=8C=EF=BC=8C=E5=AF=BC=E8=87=B4?= =?UTF-8?q?=E7=9A=84=E6=8B=86=E5=88=86=E7=9A=84=E5=AD=97=E6=AE=B5=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E6=B2=A1=E6=9C=89=E6=8C=89=E9=A2=84=E6=9C=9F=E5=8F=98?= =?UTF-8?q?=E6=9B=B4=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/ts/scripting/core/rule/SplitHandler.ts | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/src/ts/scripting/core/rule/SplitHandler.ts b/src/ts/scripting/core/rule/SplitHandler.ts index d7e6a9c3e..7eff22095 100644 --- a/src/ts/scripting/core/rule/SplitHandler.ts +++ b/src/ts/scripting/core/rule/SplitHandler.ts @@ -149,15 +149,22 @@ export default class SplitHandler implements IService { for (let i = 0; i < splitNum; i++) { let newAsset = deepClone(this.curSplitAsset); for (const key of this.detailSplitFields) { - if (data[key.id] && ['数值型', '货币型'].includes(key.valueType)) { + let targetField = this.service.model.fields[this.splitPrimaryFormId].find(item => item.propId == key.propId); + let targetData; + if(!data[key.id] && targetField){ + targetData = data[targetField.id] + } else { + targetData = data[key.id] + } + if (targetData && ['数值型', '货币型'].includes(key.valueType)) { const splitRatio = Math.floor(data[splitTarget] / splitNum); // 计算每份的大致值 - const avgValue = Number(data[key.id] / data[splitTarget]); + const avgValue = Number(targetData / data[splitTarget]); newAsset[key.id] = Number((avgValue * splitRatio).toFixed(2)); if (i === splitNum - 1) { const remainder = Number((avgValue * splitRatio).toFixed(2)) * 100; newAsset[key.id] = Number( - (data[key.id] - (remainder * (splitNum - 1)) / 100).toFixed(2), + (targetData - (remainder * (splitNum - 1)) / 100).toFixed(2), ); } } @@ -314,6 +321,7 @@ export default class SplitHandler implements IService { /** 加载子表字段 */ loadDetailFields() { const allDetailFields = this.service.model.fields[this.splitDetailFormId]; + console.log(allDetailFields,this.service.model.fields) const detailConditions = allDetailFields.filter( (item) => item.options?.asyncGeneateConditions !== undefined, ); -- Gitee From ef599a197b9a6a95d13efa462f97eabc07fedc27 Mon Sep 17 00:00:00 2001 From: luojunhui <2807466517@qq.com> Date: Thu, 4 Sep 2025 11:23:09 +0800 Subject: [PATCH 2/3] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=96=87=E6=A1=A3?= =?UTF-8?q?=E6=A8=A1=E6=9D=BF=E7=9A=84=E5=88=B7=E6=96=B0=E6=9C=BA=E5=88=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../PageElement/elements/document/Table/ListTable.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/PageElement/elements/document/Table/ListTable.tsx b/src/components/PageElement/elements/document/Table/ListTable.tsx index 26b52d331..070644c56 100644 --- a/src/components/PageElement/elements/document/Table/ListTable.tsx +++ b/src/components/PageElement/elements/document/Table/ListTable.tsx @@ -62,7 +62,7 @@ function ListTableView(props: Props) { useEffect(() => { loadForm(); - }, [props.form,summaryFields]); + }, [props.form,summaryFields,props.fields,data,summary]); async function loadForm() { if (!props.form) { -- Gitee From 50accb2bafecfc3468ac2badb20fd8dcbe04e2e3 Mon Sep 17 00:00:00 2001 From: luojunhui <2807466517@qq.com> Date: Wed, 29 Oct 2025 19:20:29 +0800 Subject: [PATCH 3/3] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E8=B5=84=E4=BA=A7?= =?UTF-8?q?=E6=8B=86=E5=88=86=E6=A0=A1=E9=AA=8C=EF=BC=8C=E4=B8=BB=E8=A1=A8?= =?UTF-8?q?=E5=AD=90=E8=A1=A8=E5=85=B7=E6=9C=89=E7=9B=B8=E5=90=8CpropId?= =?UTF-8?q?=E4=BD=86id=E4=B8=8D=E5=90=8C=E6=97=B6=EF=BC=8C=E5=AF=BC?= =?UTF-8?q?=E8=87=B4=E7=9A=84=E6=A0=A1=E9=AA=8C=E5=A4=B1=E8=B4=A5=E7=9A=84?= =?UTF-8?q?bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../core/services/WorkFormService.ts | 21 +++++++++++++++---- 1 file changed, 17 insertions(+), 4 deletions(-) diff --git a/src/ts/scripting/core/services/WorkFormService.ts b/src/ts/scripting/core/services/WorkFormService.ts index d85d3e72f..2a8565c8c 100644 --- a/src/ts/scripting/core/services/WorkFormService.ts +++ b/src/ts/scripting/core/services/WorkFormService.ts @@ -263,10 +263,15 @@ export default class WorkFormService extends mixins( const { detailConditions, detailFields } = this.loadDetailCombinationFields( splitRule.combination?.detailFormId || '', ); - const primaryCardNumD = this.model.primary[detailConditions[0].id]; + let primaryCardNumD = this.model.primary[detailConditions[0].id]; + if(!primaryCardNumD){ + let targetField = this.model.fields[this.model.node.primaryForms[0].id].find(item => item.propId == detailConditions[0].propId) + if(targetField){ + primaryCardNumD = this.model.primary[targetField.id]; + } + } const detailsData = this.model.data[splitRule.combination?.detailFormId || ''][0].after; - // 校验子表卡片编号的完整性 const isIncludeCardNum = detailsData .map((i) => i[detailConditions[0].id]) @@ -287,9 +292,17 @@ export default class WorkFormService extends mixins( for (let i = 0; i < detailFields.length; i++) { const field = detailFields[i]; const curFieldDatas = detailsData.map((detail) => Number(detail[field.id])); - + let primaryFieldValue = 0; + if(this.model.primary[field.id]){ + primaryFieldValue = this.model.primary[field.id]; + } else { + let targetField = this.model.fields[this.model.node.primaryForms[0].id].find(item => item.propId == field.propId) + if(targetField){ + primaryFieldValue = this.model.primary[targetField.id]; + } + } if ( - _.sum(curFieldDatas).toFixed(2) != Number(this.model.primary[field.id]).toFixed(2) + _.sum(curFieldDatas).toFixed(2) != Number(primaryFieldValue).toFixed(2) ) { message.show(`${field.name}总计错误,拆分后账单不平`, 'error', 5000); result = false; -- Gitee