!708 优化代码 流程模型的流程设计中的条件分支问题 : 来回切换点击条件分支后带来的 条件切换问题

Merge pull request !708 from Lemon/feature/bpm-流程条件切换分支
This commit is contained in:
芋道源码 2025-02-25 04:43:09 +00:00 committed by Gitee
commit de35fd0a7c
No known key found for this signature in database
GPG Key ID: 173E9B9CA92EEF8F

View File

@ -47,6 +47,7 @@ import { SimpleFlowNode, ConditionType } from '../consts'
import { getDefaultConditionNodeName } from '../utils' import { getDefaultConditionNodeName } from '../utils'
import { useFormFieldsAndStartUser, getConditionShowText } from '../node' import { useFormFieldsAndStartUser, getConditionShowText } from '../node'
import Condition from './components/Condition.vue' import Condition from './components/Condition.vue'
import { cloneDeep } from 'lodash-es'
const message = useMessage() // const message = useMessage() //
defineOptions({ defineOptions({
name: 'ConditionNodeConfig' name: 'ConditionNodeConfig'
@ -63,9 +64,43 @@ const props = defineProps({
}) })
const settingVisible = ref(false) const settingVisible = ref(false)
const currentNode = ref<SimpleFlowNode>(props.conditionNode) const currentNode = ref<SimpleFlowNode>(props.conditionNode)
const condition = ref<any>() const condition = ref<any>({
conditionType: ConditionType.RULE, //
conditionExpression: '',
conditionGroups: {
and: true,
conditions: [{
and: true,
rules: [{
opCode: '==',
leftSide: '',
rightSide: ''
}]
}]
}
})
const open = () => { const open = () => {
condition.value = currentNode.value.conditionSetting // 使使
if (currentNode.value.conditionSetting) {
condition.value = cloneDeep(currentNode.value.conditionSetting)
} else {
//
condition.value = {
conditionType: ConditionType.RULE,
conditionExpression: '',
conditionGroups: {
and: true,
conditions: [{
and: true,
rules: [{
opCode: '==',
leftSide: '',
rightSide: ''
}]
}]
}
}
}
settingVisible.value = true settingVisible.value = true
} }
@ -123,15 +158,13 @@ const saveConfig = async () => {
return false return false
} }
currentNode.value.showText = showText currentNode.value.showText = showText
currentNode.value.conditionSetting!.conditionType = condition.value?.conditionType // 使 cloneDeep
if (currentNode.value.conditionSetting?.conditionType === ConditionType.EXPRESSION) { currentNode.value.conditionSetting = cloneDeep({
currentNode.value.conditionSetting.conditionGroups = undefined ...currentNode.value.conditionSetting,
currentNode.value.conditionSetting.conditionExpression = condition.value?.conditionExpression conditionType: condition.value?.conditionType,
} conditionExpression: condition.value?.conditionType === ConditionType.EXPRESSION ? condition.value?.conditionExpression : undefined,
if (currentNode.value.conditionSetting!.conditionType === ConditionType.RULE) { conditionGroups: condition.value?.conditionType === ConditionType.RULE ? condition.value?.conditionGroups : undefined
currentNode.value.conditionSetting!.conditionExpression = undefined })
currentNode.value.conditionSetting!.conditionGroups = condition.value?.conditionGroups
}
} }
settingVisible.value = false settingVisible.value = false
return true return true