From ce0020ab1c5d6192745fd98754feb3cd37368e45 Mon Sep 17 00:00:00 2001 From: Lemon <1599456917@qq.com> Date: Tue, 25 Feb 2025 12:00:12 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BD=BF=E7=94=A8=20Lodash=20=E7=9A=84=20clone?= =?UTF-8?q?Deep=20=E6=96=B9=E6=B3=95=E6=9D=A5=E8=BF=9B=E8=A1=8C=E6=B7=B1?= =?UTF-8?q?=E6=8B=B7=E8=B4=9D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/nodes-config/ConditionNodeConfig.vue | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue b/src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue index 9871aa95..63d80d60 100644 --- a/src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue +++ b/src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue @@ -47,6 +47,7 @@ import { SimpleFlowNode, ConditionType } from '../consts' import { getDefaultConditionNodeName } from '../utils' import { useFormFieldsAndStartUser, getConditionShowText } from '../node' import Condition from './components/Condition.vue' +import { cloneDeep } from 'lodash-es' const message = useMessage() // 消息弹窗 defineOptions({ name: 'ConditionNodeConfig' @@ -81,7 +82,7 @@ const condition = ref({ const open = () => { // 如果有已存在的配置则使用,否则使用默认值 if (currentNode.value.conditionSetting) { - condition.value = JSON.parse(JSON.stringify(currentNode.value.conditionSetting)) + condition.value = cloneDeep(currentNode.value.conditionSetting) } else { // 重置为默认值 condition.value = { @@ -157,13 +158,13 @@ const saveConfig = async () => { return false } currentNode.value.showText = showText - // 深拷贝保存的条件设置,避免引用问题 - currentNode.value.conditionSetting = JSON.parse(JSON.stringify({ + // 使用 cloneDeep 进行深拷贝 + currentNode.value.conditionSetting = cloneDeep({ ...currentNode.value.conditionSetting, conditionType: condition.value?.conditionType, conditionExpression: condition.value?.conditionType === ConditionType.EXPRESSION ? condition.value?.conditionExpression : undefined, conditionGroups: condition.value?.conditionType === ConditionType.RULE ? condition.value?.conditionGroups : undefined - })) + }) } settingVisible.value = false return true