@@ -47,6 +47,7 @@ import { SimpleFlowNode, ConditionType } from '../consts'
47
47
import { getDefaultConditionNodeName } from ' ../utils'
48
48
import { useFormFieldsAndStartUser , getConditionShowText } from ' ../node'
49
49
import Condition from ' ./components/Condition.vue'
50
+ import { cloneDeep } from ' lodash-es'
50
51
const message = useMessage () // 消息弹窗
51
52
defineOptions ({
52
53
name: ' ConditionNodeConfig'
@@ -81,7 +82,7 @@ const condition = ref<any>({
81
82
const open = () => {
82
83
// 如果有已存在的配置则使用,否则使用默认值
83
84
if (currentNode .value .conditionSetting ) {
84
- condition .value = JSON . parse ( JSON . stringify ( currentNode .value .conditionSetting ) )
85
+ condition .value = cloneDeep ( currentNode .value .conditionSetting )
85
86
} else {
86
87
// 重置为默认值
87
88
condition .value = {
@@ -157,13 +158,13 @@ const saveConfig = async () => {
157
158
return false
158
159
}
159
160
currentNode .value .showText = showText
160
- // 深拷贝保存的条件设置,避免引用问题
161
- currentNode .value .conditionSetting = JSON . parse ( JSON . stringify ({
161
+ // 使用 cloneDeep 进行深拷贝
162
+ currentNode .value .conditionSetting = cloneDeep ({
162
163
... currentNode .value .conditionSetting ,
163
164
conditionType: condition .value ?.conditionType ,
164
165
conditionExpression: condition .value ?.conditionType === ConditionType .EXPRESSION ? condition .value ?.conditionExpression : undefined ,
165
166
conditionGroups: condition .value ?.conditionType === ConditionType .RULE ? condition .value ?.conditionGroups : undefined
166
- }))
167
+ })
167
168
}
168
169
settingVisible .value = false
169
170
return true
0 commit comments