| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061 |
- import BpmnRenderer from 'bpmn-js/lib/draw/BpmnRenderer';
- import CustomizeRenderer from './CustomizeRenderer';
- import { getRectPath } from 'bpmn-js/lib/draw/BpmnRenderUtil';
- import createAddMarkerSelect from '../../simpleModeler/renderer/connect/marker';
- let jnpfCanvas: any;
- let jnpfFlowInfo: any;
- class YmRenderer extends BpmnRenderer {
- _injector: any;
- constructor(config: any, injector: any, eventBus: any, styles: any, pathMap: any, canvas: any, textRenderer: any, flowInfo: any, priority: number) {
- super(
- (config = {
- defaultLabelColor: 'rgb(102,102,102)',
- defaultStrokeColor: '#A2B9D5',
- ...config,
- }),
- eventBus,
- styles,
- pathMap,
- canvas,
- textRenderer,
- priority,
- );
- jnpfCanvas = canvas;
- jnpfFlowInfo = flowInfo;
- this._injector = injector;
- }
- canRender(element: any) {
- return super.canRender(element);
- }
- // 绘制画布上元素
- drawShape(parentNode: any, element: any) {
- if (element) return CustomizeRenderer(parentNode, element, jnpfFlowInfo, this._injector) || super.drawShape(parentNode, element);
- return super.drawShape(parentNode, element);
- }
- drawConnection(parentGfx: any, element: any) {
- let source = element.source;
- let target = element.target;
- let nodeMap = jnpfFlowInfo?.nodeList;
- let stroke = '';
- if (nodeMap.has(source?.id) && nodeMap.has(target?.id)) {
- const targetType = nodeMap.get(target.id)?.type;
- const sourceType = nodeMap.get(source.id)?.type;
- if (sourceType === '0' && (targetType === '0' || targetType === '3')) stroke = '#4ED587';
- if (sourceType === '0' && targetType === '1') stroke = '#1eaceb';
- }
- let connect = super.drawConnection(parentGfx, element, { stroke });
- createAddMarkerSelect(element, jnpfCanvas);
- return connect;
- }
- // 绘制
- getShapePath(shape: any) {
- return getRectPath(shape);
- }
- }
- YmRenderer.$inject = ['config.bpmnRenderer', 'injector', 'eventBus', 'styles', 'pathMap', 'canvas', 'textRenderer', 'config.flowInfo'];
- export default YmRenderer;
|