diff --git a/src/executor/tools/task/start/draftWork/index.tsx b/src/executor/tools/task/start/draftWork/index.tsx index be3ed6b7b7d50dbedcba881aea9ab62ba19d262f..af08d7d36b95e62fe8a7e1c152877c85b2e3a625 100644 --- a/src/executor/tools/task/start/draftWork/index.tsx +++ b/src/executor/tools/task/start/draftWork/index.tsx @@ -45,9 +45,9 @@ const DraftWork: React.FC = ({ current, finished }) => { onStagging={() => { finished && finished(); }} - finished={() => { + finished={(success?: boolean) => { finished && finished(); - current.hardDelete(); + success && current.hardDelete(); }} /> ) diff --git a/src/ts/scripting/core/services/FormServiceBase.ts b/src/ts/scripting/core/services/FormServiceBase.ts index ce39b37e8b010e1bea36fb15f8be339611448e90..3d8126106f3ef94380a4715b83a9b9cd83ce3ac2 100644 --- a/src/ts/scripting/core/services/FormServiceBase.ts +++ b/src/ts/scripting/core/services/FormServiceBase.ts @@ -210,6 +210,7 @@ export default abstract class FormServiceBase getFormData(form: XForm, nodeId: string, type: FormType): model.FormEditData { var rule: model.RenderRule[] = []; const source: XThing[] = []; + let beforeSource: XThing[] = []; if (this.model.data && this.model.data[form.id]) { const beforeData = this.model.data[form.id]; if (beforeData.length > 0) { @@ -223,6 +224,7 @@ export default abstract class FormServiceBase source.push(...beforeData.at(-1)!.after); rule = beforeData.at(-1)!.rules ?? []; } + beforeSource = beforeData.at(-1)!.before; } } @@ -233,9 +235,10 @@ export default abstract class FormServiceBase } const sourceJson = JSON.stringify(source); + const beforeSourceJson = JSON.stringify(beforeSource); return { rules: rule, - before: JSON.parse(sourceJson), + before: JSON.parse(beforeSourceJson), after: JSON.parse(sourceJson), nodeId: nodeId, formName: form.name,