diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ElementListeners.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ElementListeners.vue index 55d3f545b..e2b88ffdb 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ElementListeners.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/ElementListeners.vue @@ -61,7 +61,10 @@ const bpmnInstances = () => (window as any)?.bpmnInstances; const resetListenersList = () => { bpmnElement.value = bpmnInstances().bpmnElement; - otherExtensionList.value = []; + otherExtensionList.value = + bpmnElement.value.businessObject?.extensionElements?.values?.filter( + (ex: any) => ex.$type !== `${prefix}:ExecutionListener`, + ) ?? []; // 保留非监听器类型的扩展属性,避免移除监听器时清空其他配置(如审批人等)。相关案例:https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/ICMSYC bpmnElementListeners.value = bpmnElement.value.businessObject?.extensionElements?.values?.filter( (ex: any) => ex.$type === `${prefix}:ExecutionListener`, diff --git a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue index 6ab38bcf9..151c1ed65 100644 --- a/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue +++ b/apps/web-antd/src/views/bpm/components/bpmn-process-designer/package/penal/listeners/UserTaskListeners.vue @@ -77,9 +77,12 @@ const resetListenersList = () => { // 'window.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElement', // ); bpmnElement.value = bpmnInstances()?.bpmnElement; - otherExtensionList.value = []; + otherExtensionList.value = + bpmnElement.value.businessObject?.extensionElements?.values?.filter( + (ex: any) => ex.$type !== `${prefix}:TaskListener`, + ) ?? []; // 保留非监听器类型的扩展属性,避免移除监听器时清空其他配置(如审批人等)。相关案例:https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/ICMSYC bpmnElementListeners.value = - bpmnElement.value.businessObject?.extensionElements?.values.filter( + bpmnElement.value.businessObject?.extensionElements?.values?.filter( (ex: any) => ex.$type === `${prefix}:TaskListener`, ) ?? []; elementListenersList.value = bpmnElementListeners.value.map((listener) =>