|
|
@@ -329,7 +329,6 @@ const listenerFieldFormModelVisible = ref(false) // 监听器 注入字段表单
|
|
|
const editingListenerIndex = ref(-1) // 监听器所在下标,-1 为新增
|
|
|
const editingListenerFieldIndex = ref(-1) // 字段所在下标,-1 为新增
|
|
|
const listenerFieldForm = ref<any>({}) // 监听器 注入字段 详情表单
|
|
|
-const bpmnElement = ref()
|
|
|
const bpmnElementListeners = ref()
|
|
|
const otherExtensionList = ref()
|
|
|
const listenerFormRef = ref()
|
|
|
@@ -337,17 +336,21 @@ const listenerFieldFormRef = ref()
|
|
|
const bpmnInstances = () => (window as any)?.bpmnInstances
|
|
|
|
|
|
const resetListenersList = () => {
|
|
|
- console.log(
|
|
|
- bpmnInstances().bpmnElement,
|
|
|
- 'window.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElementwindow.bpmnInstances.bpmnElement'
|
|
|
- )
|
|
|
- bpmnElement.value = bpmnInstances().bpmnElement
|
|
|
+ const instances = bpmnInstances()
|
|
|
+ if (!instances || !instances.bpmnElement) return
|
|
|
+
|
|
|
+ // 直接使用原始BPMN元素,避免Vue响应式代理问题
|
|
|
+ const bpmnElement = instances.bpmnElement
|
|
|
+ const businessObject = bpmnElement.businessObject
|
|
|
+
|
|
|
+ console.log(bpmnElement, 'bpmnElement - resetListenersList')
|
|
|
+
|
|
|
otherExtensionList.value =
|
|
|
- bpmnElement.value.businessObject?.extensionElements?.values?.filter(
|
|
|
+ businessObject?.extensionElements?.values?.filter(
|
|
|
(ex) => ex.$type !== `${prefix}:TaskListener`
|
|
|
) ?? [] // 保留非监听器类型的扩展属性,避免移除监听器时清空其他配置(如审批人等)。相关案例:https://gitee.com/yudaocode/yudao-ui-admin-vue3/issues/ICMSYC
|
|
|
bpmnElementListeners.value =
|
|
|
- bpmnElement.value.businessObject?.extensionElements?.values?.filter(
|
|
|
+ businessObject?.extensionElements?.values?.filter(
|
|
|
(ex) => ex.$type === `${prefix}:TaskListener`
|
|
|
) ?? []
|
|
|
elementListenersList.value = bpmnElementListeners.value.map((listener) =>
|
|
|
@@ -385,10 +388,13 @@ const removeListener = (listener, index?) => {
|
|
|
cancelButtonText: '取 消'
|
|
|
})
|
|
|
.then(() => {
|
|
|
+ const instances = bpmnInstances()
|
|
|
+ if (!instances || !instances.bpmnElement) return
|
|
|
+
|
|
|
bpmnElementListeners.value.splice(index, 1)
|
|
|
elementListenersList.value.splice(index, 1)
|
|
|
updateElementExtensions(
|
|
|
- bpmnElement.value,
|
|
|
+ instances.bpmnElement,
|
|
|
otherExtensionList.value.concat(bpmnElementListeners.value)
|
|
|
)
|
|
|
})
|
|
|
@@ -398,7 +404,13 @@ const removeListener = (listener, index?) => {
|
|
|
const saveListenerConfig = async () => {
|
|
|
let validateStatus = await listenerFormRef.value.validate()
|
|
|
if (!validateStatus) return // 验证不通过直接返回
|
|
|
+
|
|
|
+ const instances = bpmnInstances()
|
|
|
+ if (!instances || !instances.bpmnElement) return
|
|
|
+
|
|
|
+ const bpmnElement = instances.bpmnElement
|
|
|
const listenerObject = createListenerObject(listenerForm.value, true, prefix)
|
|
|
+
|
|
|
if (editingListenerIndex.value === -1) {
|
|
|
bpmnElementListeners.value.push(listenerObject)
|
|
|
elementListenersList.value.push(listenerForm.value)
|
|
|
@@ -408,11 +420,11 @@ const saveListenerConfig = async () => {
|
|
|
}
|
|
|
// 保存其他配置
|
|
|
otherExtensionList.value =
|
|
|
- bpmnElement.value.businessObject?.extensionElements?.values?.filter(
|
|
|
+ bpmnElement.businessObject?.extensionElements?.values?.filter(
|
|
|
(ex) => ex.$type !== `${prefix}:TaskListener`
|
|
|
) ?? []
|
|
|
updateElementExtensions(
|
|
|
- bpmnElement.value,
|
|
|
+ bpmnElement,
|
|
|
otherExtensionList.value.concat(bpmnElementListeners.value)
|
|
|
)
|
|
|
// 4. 隐藏侧边栏
|
|
|
@@ -464,6 +476,10 @@ const openProcessListenerDialog = async () => {
|
|
|
processListenerDialogRef.value.open('task')
|
|
|
}
|
|
|
const selectProcessListener = (listener) => {
|
|
|
+ const instances = bpmnInstances()
|
|
|
+ if (!instances || !instances.bpmnElement) return
|
|
|
+
|
|
|
+ const bpmnElement = instances.bpmnElement
|
|
|
const listenerForm = initListenerForm2(listener)
|
|
|
const listenerObject = createListenerObject(listenerForm, true, prefix)
|
|
|
bpmnElementListeners.value.push(listenerObject)
|
|
|
@@ -471,11 +487,11 @@ const selectProcessListener = (listener) => {
|
|
|
|
|
|
// 保存其他配置
|
|
|
otherExtensionList.value =
|
|
|
- bpmnElement.value.businessObject?.extensionElements?.values?.filter(
|
|
|
+ bpmnElement.businessObject?.extensionElements?.values?.filter(
|
|
|
(ex) => ex.$type !== `${prefix}:TaskListener`
|
|
|
) ?? []
|
|
|
updateElementExtensions(
|
|
|
- bpmnElement.value,
|
|
|
+ bpmnElement,
|
|
|
otherExtensionList.value.concat(bpmnElementListeners.value)
|
|
|
)
|
|
|
}
|