diff --git a/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json index c60b524a..31fb7d85 100644 --- a/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json +++ b/src/components/bpmnProcessDesigner/package/designer/plugins/descriptor/flowableDescriptor.json @@ -1329,6 +1329,34 @@ "isAttr": true } ] + }, + { + "name": "BoundaryEventType", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:BoundaryEvent"] + }, + "properties": [ + { + "name": "value", + "type": "Integer", + "isBody": true + } + ] + }, + { + "name": "TimeoutHandlerType", + "superClass": ["Element"], + "meta": { + "allowedIn": ["bpmn:BoundaryEvent"] + }, + "properties": [ + { + "name": "value", + "type": "Integer", + "isBody": true + } + ] } ], "emumerations": [] diff --git a/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue b/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue index c4bc7b2e..c32c7620 100644 --- a/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue +++ b/src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue @@ -56,7 +56,7 @@ - + diff --git a/src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue b/src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue index 9d8b3f57..f9cb9ac4 100644 --- a/src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue +++ b/src/components/bpmnProcessDesigner/package/penal/custom-config/ElementCustomConfig.vue @@ -11,27 +11,25 @@ defineOptions({ name: 'ElementCustomConfig' }) const props = defineProps({ id: String, - type: String + type: String, + businessObject: { + type: Object, + default: () => {} + } }) const bpmnInstances = () => (window as any)?.bpmnInstances const customConfigComponent = ref(null) watch( - () => props.type, + () => props.businessObject, () => { - if (props.type) { - const element = bpmnInstances().bpmnElement.businessObject - let elementType = props.type - if (element.eventDefinitions) { - // 处理类似共用BoundaryEvent类型的TimerEvent - elementType += element.eventDefinitions[0].$type.split(':')[1] - } - const config = CustomConfigMap[elementType] - if (config) { - customConfigComponent.value = config.componet - return + if (props.type && props.businessObject) { + let val = props.type + if (props.businessObject.eventDefinitions) { + val += props.businessObject.eventDefinitions[0]?.$type.split(':')[1] || '' } + customConfigComponent.value = CustomConfigMap[val]?.componet } }, { immediate: true } diff --git a/src/components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue b/src/components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue index 81ba670c..ca46b277 100644 --- a/src/components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue +++ b/src/components/bpmnProcessDesigner/package/penal/custom-config/components/BoundaryEventTimer.vue @@ -1,13 +1,252 @@ - +