fuliqi
2025-01-09 318593ad484abc3bb5bf9bac698880edf84379c7
监听器注入字段bug
2个文件已修改
20 ■■■■■ 已修改文件
src/components/Process/common/bpmnUtils.js 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Process/panel/taskListener.vue 12 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/components/Process/common/bpmnUtils.js
@@ -56,6 +56,13 @@
    default:
      listenerObj.class = options.value;
  }
  // 注入字段
  if (options.fields) {
    listenerObj.fields = options.fields.map(field => {
      return createFieldObject(moddle, field, prefix);
    });
  }
  console.log("注入字段",options.fields)
  return moddle.create(`${prefix}:${isTask ? "TaskListener" : "ExecutionListener"}`, listenerObj);
}
@@ -82,6 +89,7 @@
// 创建 监听器的注入字段 实例
export function createFieldObject(moddle, option, prefix) {
  console.log("注入字段option",option)
  const { name, fieldType, string, expression } = option;
  const fieldConfig = fieldType === "string" ? { name, string } : { name, expression };
  return moddle.create(`${prefix}:Field`, fieldConfig);
src/components/Process/panel/taskListener.vue
@@ -341,6 +341,7 @@
    // 打开 监听器详情 侧边栏
    openListenerForm(listener, index) {
      this.resetListenersList();
      if (listener) {
        this.listenerForm = this.initListenerForm(listener);
        this.editingListenerIndex = index;
@@ -435,11 +436,18 @@
    },
    initListenerType(listener) {
      console.log("监听器listener",listener)
      let listenerType;
      if (listener.class) listenerType = "classListener";
      if (listener.expression) listenerType = "expressionListener";
      if (listener.delegateExpression) listenerType = "delegateExpressionListener";
      if (listener.script) listenerType = "scriptListener";
      //监听器字段bug修复
      if (listener && listener.fields) {
        listener.fields.forEach(field => {
          field.fieldType = field.string ? "string" : "expression";
        });
      }
      return {
        ...JSON.parse(JSON.stringify(listener)),
        ...(listener.script ?? {}),
@@ -469,7 +477,6 @@
              self.eventDefinitionType = key.replace("time", "").toLowerCase();
            }
          }
          console.log(k);
          self.eventTimeDefinitions = listener.eventDefinitions[0][k].body;
        }
      }
@@ -499,7 +506,6 @@
    saveSystemListener() {
      if (this.checkedListenerData.length > 0) {
        this.checkedListenerData.forEach(value => {
          // 保存其他配置
          const listenerObject = createSystemListenerObject(this.modelerStore.moddle, value, true, "flowable");
          this.bpmnElementListeners.push(listenerObject);
          this.elementListenersList.push(changeListenerObject(value));
@@ -513,6 +519,8 @@
      this.listenerSystemChecked = true;
      // 隐藏侧边栏
      this.listenerSystemVisible = false;
      //解析注入字段添加到当前表单
      this.resetListenersList();
    }
  }
}