Skip to content

Commit ce0020a

Browse files
committed
使用 Lodash 的 cloneDeep 方法来进行深拷贝
1 parent c7b135e commit ce0020a

File tree

1 file changed

+5
-4
lines changed

1 file changed

+5
-4
lines changed

src/components/SimpleProcessDesignerV2/src/nodes-config/ConditionNodeConfig.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -47,6 +47,7 @@ import { SimpleFlowNode, ConditionType } from '../consts'
4747
import { getDefaultConditionNodeName } from '../utils'
4848
import { useFormFieldsAndStartUser, getConditionShowText } from '../node'
4949
import Condition from './components/Condition.vue'
50+
import { cloneDeep } from 'lodash-es'
5051
const message = useMessage() // 消息弹窗
5152
defineOptions({
5253
name: 'ConditionNodeConfig'
@@ -81,7 +82,7 @@ const condition = ref<any>({
8182
const open = () => {
8283
// 如果有已存在的配置则使用,否则使用默认值
8384
if (currentNode.value.conditionSetting) {
84-
condition.value = JSON.parse(JSON.stringify(currentNode.value.conditionSetting))
85+
condition.value = cloneDeep(currentNode.value.conditionSetting)
8586
} else {
8687
// 重置为默认值
8788
condition.value = {
@@ -157,13 +158,13 @@ const saveConfig = async () => {
157158
return false
158159
}
159160
currentNode.value.showText = showText
160-
// 深拷贝保存的条件设置,避免引用问题
161-
currentNode.value.conditionSetting = JSON.parse(JSON.stringify({
161+
// 使用 cloneDeep 进行深拷贝
162+
currentNode.value.conditionSetting = cloneDeep({
162163
...currentNode.value.conditionSetting,
163164
conditionType: condition.value?.conditionType,
164165
conditionExpression: condition.value?.conditionType === ConditionType.EXPRESSION ? condition.value?.conditionExpression : undefined,
165166
conditionGroups: condition.value?.conditionType === ConditionType.RULE ? condition.value?.conditionGroups : undefined
166-
}))
167+
})
167168
}
168169
settingVisible.value = false
169170
return true

0 commit comments

Comments
 (0)