zxl
2025-03-25 6ae0fcef149ddbe614746023a58a3885b3ac4bde
src/components/Process/viewer/index.vue
@@ -6,8 +6,9 @@
          <span class="intro">状态:</span>
          <div class="finish">已办理</div>
          <div class="processing">处理中</div>
          <div class="todo">未进行</div>
          <div class="overtime">已超时</div>
          <div class="jump">跳 过</div>
          <div class="wait">容 缺</div>
        </div>
        <!-- 流程图显示 -->
        <div v-loading="loading" class="canvas" ref="flowCanvas"></div>
@@ -109,22 +110,34 @@
        const endTask = nodeData[nodeData.length - 1]
        if (n.$type === 'bpmn:UserTask') {
          if (completeTask) {
            canvas.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo')
            if(completeTask.overtime){
              canvas.addMarker(n.id,  'highlight-overtime')
            if (completeTask.hasJump) {
              canvas.addMarker(n.id,  'highlight-jump')
            } else if (completeTask.hasWait) {
              canvas.addMarker(n.id,  'highlight-wait')
            } else {
              canvas.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo')
              if(completeTask.overtime && completeTask.overtime==='red' || completeTask.overtime==='yellow'){
                canvas.addMarker(n.id,  'highlight-willOvertime')
              }
            }
            n.outgoing?.forEach(nn => {
              const targetTask = nodeData.find(m => m.key === nn.targetRef.id)
              if (targetTask) {
                if (todoTask && completeTask.key === todoTask.key && !todoTask.completed) {
                  canvas.addMarker(nn.id, todoTask.completed ? 'highlight' : 'highlight-todo')
                  canvas.addMarker(nn.targetRef.id, todoTask.completed ? 'highlight' : 'highlight-todo')
                } else {
                  canvas.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                  canvas.addMarker(nn.targetRef.id, targetTask.completed ? 'highlight' : 'highlight-todo')
              if (completeTask.hasJump) {
                canvas.addMarker(nn.id,  'highlight-jump')
              } else if (completeTask.hasWait) {
                canvas.addMarker(nn.id,  'highlight-wait')
              } else {
                const targetTask = nodeData.find(m => m.key === nn.targetRef.id)
                if (targetTask) {
                  if (todoTask && completeTask.key === todoTask.key && !todoTask.completed) {
                    canvas.addMarker(nn.id, todoTask.completed ? 'highlight' : 'highlight-todo')
                    canvas.addMarker(nn.targetRef.id, todoTask.completed ? 'highlight' : 'highlight-todo')
                  } else {
                    canvas.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                    canvas.addMarker(nn.targetRef.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                  }
                }
              }
            })
          }
        }
@@ -135,9 +148,14 @@
            n.outgoing?.forEach(nn => {
              const targetTask = nodeData.find(m => m.key === nn.targetRef.id)
              if (targetTask) {
                canvas.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                canvas.addMarker(nn.targetRef.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                if (targetTask.hasJump) {
                  canvas.addMarker(nn.id,  'highlight-jump')
                } else if (targetTask.hasWait) {
                  canvas.addMarker(nn.id,  'highlight-wait')
                } else {
                  canvas.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                  canvas.addMarker(nn.targetRef.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                }
              }
            })
          }
@@ -149,8 +167,14 @@
            n.outgoing?.forEach(nn => {
              const targetTask = nodeData.find(m => m.key === nn.targetRef.id)
              if (targetTask) {
                canvas.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                canvas.addMarker(nn.targetRef.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                if (targetTask.hasJump) {
                  canvas.addMarker(nn.id,  'highlight-jump')
                } else if (targetTask.hasWait) {
                  canvas.addMarker(nn.id,  'highlight-wait')
                }  else {
                  canvas.addMarker(nn.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                  canvas.addMarker(nn.targetRef.id, targetTask.completed ? 'highlight' : 'highlight-todo')
                }
              }
            })
          }
@@ -158,8 +182,14 @@
          n.outgoing.forEach(nn => {
            const completeTask = nodeData.find(m => m.key === nn.targetRef.id)
            if (completeTask) {
              canvas.addMarker(nn.id, 'highlight')
              canvas.addMarker(n.id, 'highlight')
              if (completeTask.hasJump) {
                canvas.addMarker(nn.id,  'highlight-jump')
              } else if (completeTask.hasWait) {
                canvas.addMarker(nn.id,  'highlight-wait')
              } else {
                canvas.addMarker(nn.id, 'highlight')
                canvas.addMarker(n.id, 'highlight')
              }
              return;
            }
          })