From 8e3f33f7b41c049424006ca336af8f327c3cb1be Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=AE=B7=E4=BA=AE=E8=BE=89?= Date: Mon, 20 May 2024 18:33:37 +0800 Subject: [PATCH] =?UTF-8?q?[Bug]:=20=E5=BD=93=E5=85=AC=E5=BC=8F=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E4=B8=AD=E5=BC=95=E7=94=A8=E7=9A=84=E5=AD=97=E6=AE=B5?= =?UTF-8?q?=E5=80=BC=E5=9C=A8before=E8=A7=A6=E5=8F=91=E5=99=A8=E4=B8=AD?= =?UTF-8?q?=E8=B5=8B=E5=80=BC=E6=97=B6=E4=BC=9A=E5=AF=BC=E8=87=B4=E5=85=AC?= =?UTF-8?q?=E5=BC=8F=E8=AE=A1=E7=AE=97=E4=B8=8D=E5=87=86=20#6860?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/objectql/src/types/object.ts | 12 +++++++----- 1 file changed, 7 insertions(+), 5 deletions(-) diff --git a/packages/objectql/src/types/object.ts b/packages/objectql/src/types/object.ts index f7c6deb1c1..b4cfc7d099 100644 --- a/packages/objectql/src/types/object.ts +++ b/packages/objectql/src/types/object.ts @@ -2239,6 +2239,12 @@ export class SteedosObjectType extends SteedosObjectProperties { args.splice(args.length - 1, 1, userSession ? userSession.userId : undefined) returnValue = await adapterMethod.apply(this._datasource, args); } else { + let beforeTriggerContext = await this.getTriggerContext('before', method, args) + if (paramRecordId) { + beforeTriggerContext = Object.assign({} , beforeTriggerContext, { id: paramRecordId }); + } + await this.runBeforeTriggers(method, beforeTriggerContext) + let previousDoc: any; // update/delete时始终查一次整个record doc,公式中依赖了完整doc(比如单元格编辑等情况下doc不完整),after trigger中需要previousDoc if (method === 'update' || method === 'delete') { @@ -2251,11 +2257,7 @@ export class SteedosObjectType extends SteedosObjectProperties { if(docAfterFormulaRun){ Object.assign(doc, docAfterFormulaRun); } - let beforeTriggerContext = await this.getTriggerContext('before', method, args) - if (paramRecordId) { - beforeTriggerContext = Object.assign({} , beforeTriggerContext, { id: paramRecordId }); - } - await this.runBeforeTriggers(method, beforeTriggerContext) + await runValidationRules(method, beforeTriggerContext, args[0], userSession) let afterTriggerContext = await this.getTriggerContext('after', method, args) if (method === 'update' || method === 'delete') {