zxl
2025-03-25 6ae0fcef149ddbe614746023a58a3885b3ac4bde
src/components/Process/panel/taskListener.vue
@@ -184,8 +184,8 @@
    </el-drawer>
    <!-- 注入西段 编辑/创建 部分 -->
    <el-dialog title="字段配置" :visible.sync="listenerFieldFormModelVisible" width="600px" append-to-body destroy-on-close>
      <el-form :model="listenerFieldForm"  label-width="96px" ref="listenerFieldFormRef" style="height: 136px" @submit.native.prevent>
    <el-dialog title="字段配置" :visible.sync="listenerFieldFormModelVisible" :close-on-click-modal="false" width="600px" append-to-body destroy-on-close>
      <el-form :model="listenerFieldForm"  label-width="96px" ref="listenerFieldFormRef" @submit.native.prevent>
        <el-form-item label="字段名称:" prop="name" :rules="{ required: true, trigger: ['blur', 'change'] }">
          <el-input v-model="listenerFieldForm.name" clearable />
        </el-form-item>
@@ -202,6 +202,11 @@
            :rules="{ required: true, trigger: ['blur', 'change'] }"
        >
          <el-input v-model="listenerFieldForm.string" clearable />
          <el-alert
            :closable="false"
            title="赋码时间格式为:天-小时,例如:一天零3小时应配置为:1-3"
            type="info">
          </el-alert>
        </el-form-item>
        <el-form-item
            v-if="listenerFieldForm.fieldType === 'expression'"
@@ -418,6 +423,29 @@
    async saveListenerConfig() {
      let validateStatus = await this.$refs["listenerFormRef"].validate();
      if (!validateStatus) return; // 验证不通过直接返回
      console.log('监听器参数',this.listenerForm)
      //校验超时监听器参数
      if (this.listenerForm.class === 'com.ycl.listener.flowable.FlowableOverTimeListener') {
        // 0-0 格式
        const regex = /^(\d{1,3})-(\d{1,2})$/;
        for (let i = 0; i < this.listenerForm.fields.length; i++) {
          if (this.listenerForm.fields[i].name === '红码时长' || this.listenerForm.fields[i].name === '黄码时长' || this.listenerForm.fields[i].name === '办理期限') {
            const match = this.listenerForm.fields[i].string.match(regex);
            if (match) {
              const hours1 = parseInt(match[1], 10);
              const hours2 = parseInt(match[2], 10);
              // 检查小时数是否在合理范围内,并且第二个小时数小于等于24
              if (hours1 < 0 || hours2 > 24) {
                this.$message.error(this.listenerForm.fields[i].name + '小时数不合理');
                return;
              }
            } else {
              this.$message.error(this.listenerForm.fields[i].name + '时间格式不正确');
              return;
            }
          }
        }
      }
      const listenerObject = createListenerObject(this.modelerStore.moddle, this.listenerForm, true, "flowable");
      if (this.editingListenerIndex === -1) {
        this.bpmnElementListeners.push(listenerObject);