| | |
| | | import ZoomScrollModule from 'diagram-js/lib/navigation/zoomscroll'; |
| | | import { ModuleDeclaration } from 'didi'; |
| | | import { Canvas, ModdleElement } from 'bpmn'; |
| | | import defaultXML from '@/components/BpmnDesign/assets/defaultXML'; |
| | | import EventBus from 'diagram-js/lib/core/EventBus'; |
| | | import Overlays from 'diagram-js/lib/features/overlays/Overlays'; |
| | | import processApi from '@/api/workflow/processInstance/index'; |
| | |
| | | //递归上色 |
| | | const bpmnNodeList = (flowElements, canvas) => { |
| | | flowElements.forEach((n) => { |
| | | console.log(n); |
| | | if (n.$type === 'bpmn:UserTask') { |
| | | const completeTask = taskList.value.find((m) => m.key === n.id); |
| | | console.log(completeTask); |
| | | if (completeTask) { |
| | | canvas.addMarker(n.id, completeTask.completed ? 'highlight' : 'highlight-todo'); |
| | | n.outgoing?.forEach((nn) => { |
| | |
| | | if (completeTask) { |
| | | canvas.addMarker(nn.id, 'highlight'); |
| | | canvas.addMarker(n.id, 'highlight'); |
| | | // return; |
| | | } |
| | | }); |
| | | } |
| | |
| | | } |
| | | } |
| | | .bpmn-el-container { |
| | | height: 500px; |
| | | height: calc(100vh - 350px); |
| | | } |
| | | .flow-containers { |
| | | width: 100%; |
| | |
| | | :deep(.highlight.djs-connection > .djs-visual > path) { |
| | | stroke: green !important; |
| | | } |
| | | :deep(.highlight-todo.djs-connection > .djs-visual > path) { |
| | | stroke: orange !important; |
| | | stroke-dasharray: 4px !important; |
| | | fill-opacity: 0.2 !important; |
| | | marker-end: url(#sequenceflow-end-_E7DFDF-_E7DFDF-803g1kf6zwzmcig1y2ulm5egr); |
| | | |
| | | // 边框滚动动画 |
| | | @keyframes path-animation { |
| | | from { |
| | | stroke-dashoffset: 100%; |
| | | } |
| | | |
| | | to { |
| | | stroke-dashoffset: 0%; |
| | | } |
| | | } |
| | | :deep(.highlight-todo.djs-shape .djs-visual > :nth-child(1)) { |
| | | fill: orange !important; |
| | | stroke: orange !important; |
| | | |
| | | :deep(.highlight-todo.djs-connection > .djs-visual > path) { |
| | | animation: path-animation 60s; |
| | | animation-timing-function: linear; |
| | | animation-iteration-count: infinite; |
| | | stroke-dasharray: 4px !important; |
| | | stroke: orange !important; |
| | | fill-opacity: 0.2 !important; |
| | | marker-end: url('#sequenceflow-end-_E7DFDF-_E7DFDF-803g1kf6zwzmcig1y2ulm5egr'); |
| | | } |
| | | |
| | | :deep(.highlight-todo.djs-shape .djs-visual > :nth-child(1)) { |
| | | animation: path-animation 60s; |
| | | animation-timing-function: linear; |
| | | animation-iteration-count: infinite; |
| | | stroke-dasharray: 4px !important; |
| | | stroke: orange !important; |
| | | fill: orange !important; |
| | | fill-opacity: 0.2 !important; |
| | | } |
| | | } |