zhanghua
2025-01-16 53605d638044f3129cb622d44bd6c2026b7978cd
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;
@@ -417,7 +418,7 @@
    async saveListenerConfig() {
      let validateStatus = await this.$refs["listenerFormRef"].validate();
      if (!validateStatus) return; // 验证不通过直接返回
      const listenerObject = createListenerObject(this.modelerStore.moddle, this.listenerForm, false, "flowable");
      const listenerObject = createListenerObject(this.modelerStore.moddle, this.listenerForm, true, "flowable");
      if (this.editingListenerIndex === -1) {
        this.bpmnElementListeners.push(listenerObject);
        this.elementListenersList.push(this.listenerForm);
@@ -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,11 @@
    saveSystemListener() {
      if (this.checkedListenerData.length > 0) {
        this.checkedListenerData.forEach(value => {
          // 保存其他配置
          value.fields.forEach(field => {
            if (field.name === '开始计时节点') {
              field.string = this.modelerStore.element.id;
            }
          });
          const listenerObject = createSystemListenerObject(this.modelerStore.moddle, value, true, "flowable");
          this.bpmnElementListeners.push(listenerObject);
          this.elementListenersList.push(changeListenerObject(value));
@@ -513,6 +524,8 @@
      this.listenerSystemChecked = true;
      // 隐藏侧边栏
      this.listenerSystemVisible = false;
      //解析注入字段添加到当前表单
      this.resetListenersList();
    }
  }
}