update 修改命名,增加自定义渲染
This commit is contained in:
parent
9443218e86
commit
8a3ebc76e8
@ -15,7 +15,7 @@ import modeler from '@/store/modules/modeler';
|
|||||||
|
|
||||||
// @Description: 增强元素连线事件
|
// @Description: 增强元素连线事件
|
||||||
|
|
||||||
class EhContextPadProvider extends ContextPadProvider {
|
class CustomContextPadProvider extends ContextPadProvider {
|
||||||
private _contextPad: ContextPad;
|
private _contextPad: ContextPad;
|
||||||
private _modeling: Modeling;
|
private _modeling: Modeling;
|
||||||
private _elementFactory: ElementFactory;
|
private _elementFactory: ElementFactory;
|
||||||
@ -40,6 +40,7 @@ class EhContextPadProvider extends ContextPadProvider {
|
|||||||
rules: Rules,
|
rules: Rules,
|
||||||
translate
|
translate
|
||||||
) {
|
) {
|
||||||
|
// @ts-ignore
|
||||||
super(config, injector, eventBus, contextPad, modeling, elementFactory, connect, create, popupMenu, canvas, rules, translate);
|
super(config, injector, eventBus, contextPad, modeling, elementFactory, connect, create, popupMenu, canvas, rules, translate);
|
||||||
|
|
||||||
this._contextPad = contextPad;
|
this._contextPad = contextPad;
|
||||||
@ -134,4 +135,4 @@ class EhContextPadProvider extends ContextPadProvider {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
export default EhContextPadProvider;
|
export default CustomContextPadProvider;
|
@ -1,9 +1,9 @@
|
|||||||
import { ModuleDeclaration } from 'didi';
|
import { ModuleDeclaration } from 'didi';
|
||||||
import enhancementContextPadProvider from './ehContextPadProvider';
|
import CustomContextPadProvider from './CustomContextPadProvider';
|
||||||
|
|
||||||
const enhancementContextPad: ModuleDeclaration = {
|
const CustomContextPad: ModuleDeclaration = {
|
||||||
__init__: ['enhancementContextPadProvider'],
|
__init__: ['customContextPadProvider'],
|
||||||
enhancementContextPadProvider: ['type', enhancementContextPadProvider]
|
customContextPadProvider: ['type', CustomContextPadProvider]
|
||||||
};
|
};
|
||||||
|
|
||||||
export default enhancementContextPad;
|
export default CustomContextPad;
|
||||||
|
@ -1,9 +1,9 @@
|
|||||||
import { ModuleDeclaration } from 'didi';
|
import { ModuleDeclaration } from 'didi';
|
||||||
import enhancementPaletteProvider from './ehPalentte';
|
import CustomPaletteProvider from './CustomPaletteProvider';
|
||||||
|
|
||||||
const EnhancementPalette: ModuleDeclaration = {
|
const CustomPalette: ModuleDeclaration = {
|
||||||
__init__: ['enhancementPaletteProvider'],
|
__init__: ['CustomPaletteProvider'],
|
||||||
enhancementPaletteProvider: ['type', enhancementPaletteProvider]
|
CustomPaletteProvider: ['type', CustomPaletteProvider]
|
||||||
};
|
};
|
||||||
|
|
||||||
export default EnhancementPalette;
|
export default CustomPalette;
|
||||||
|
@ -0,0 +1,49 @@
|
|||||||
|
import BaseRenderer from 'diagram-js/lib/draw/BaseRenderer';
|
||||||
|
import {
|
||||||
|
append as svgAppend,
|
||||||
|
attr as svgAttr,
|
||||||
|
create as svgCreate,
|
||||||
|
select as svgSelect,
|
||||||
|
selectAll as svgSelectAll,
|
||||||
|
clone as svgClone,
|
||||||
|
clear as svgClear,
|
||||||
|
remove as svgRemove
|
||||||
|
} from 'tiny-svg';
|
||||||
|
import logo from '@/assets/logo/logo.png';
|
||||||
|
import { Shape } from 'diagram-js/lib/model/Types';
|
||||||
|
|
||||||
|
const HIGH_PRIORITY = 1500;
|
||||||
|
export default class CustomRenderer extends BaseRenderer {
|
||||||
|
bpmnRenderer: BaseRenderer;
|
||||||
|
modeling: any;
|
||||||
|
constructor(eventBus, bpmnRenderer, modeling) {
|
||||||
|
super(eventBus, HIGH_PRIORITY);
|
||||||
|
this.bpmnRenderer = bpmnRenderer;
|
||||||
|
this.modeling = modeling;
|
||||||
|
}
|
||||||
|
canRender(element: Shape) {
|
||||||
|
// ignore labels
|
||||||
|
return !element.labelTarget;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 自定义节点图形
|
||||||
|
* @param {*} parentNode 当前元素的svgNode
|
||||||
|
* @param {*} element
|
||||||
|
* @returns
|
||||||
|
*/
|
||||||
|
drawShape(parentNode, element: Shape) {
|
||||||
|
const shape = this.bpmnRenderer.drawShape(parentNode, element);
|
||||||
|
const { type, width, height } = element;
|
||||||
|
// 开始 填充绿色
|
||||||
|
if (type === 'bpmn:StartEvent') {
|
||||||
|
svgAttr(shape, { fill: 'green' });
|
||||||
|
return shape;
|
||||||
|
}
|
||||||
|
return shape;
|
||||||
|
}
|
||||||
|
|
||||||
|
getShapePath(shape) {
|
||||||
|
return this.bpmnRenderer.getShapePath(shape);
|
||||||
|
}
|
||||||
|
}
|
@ -0,0 +1,9 @@
|
|||||||
|
import CustomRenderer from './CustomRenderer';
|
||||||
|
import { ModuleDeclaration } from 'didi';
|
||||||
|
|
||||||
|
const customRenderer: ModuleDeclaration = {
|
||||||
|
__init__: ['customRenderer'],
|
||||||
|
customRenderer: ['type', CustomRenderer]
|
||||||
|
};
|
||||||
|
|
||||||
|
export default customRenderer;
|
@ -1,10 +1,12 @@
|
|||||||
// 扩展左侧选择面板
|
// 扩展左侧选择面板
|
||||||
import EnhancementPaletteProvider from './Palette';
|
import CustomPalette from './Palette';
|
||||||
// 扩展节点右键
|
// 扩展节点右键
|
||||||
import EnhancementContextPad from './ContextPad';
|
import CustomContextPad from './ContextPad';
|
||||||
|
// 扩展渲染
|
||||||
|
import CustomRenderer from './Renderer';
|
||||||
// 翻译模块
|
// 翻译模块
|
||||||
import TranslationModule from './Translate';
|
import TranslationModule from './Translate';
|
||||||
|
|
||||||
import { ModuleDeclaration } from 'didi';
|
import { ModuleDeclaration } from 'didi';
|
||||||
const Module: ModuleDeclaration[] = [EnhancementPaletteProvider, EnhancementContextPad, TranslationModule];
|
|
||||||
|
const Module: ModuleDeclaration[] = [CustomPalette, CustomContextPad, TranslationModule, CustomRenderer];
|
||||||
export default Module;
|
export default Module;
|
||||||
|
@ -131,7 +131,7 @@ const initCanvas = () => {
|
|||||||
container: canvas.value,
|
container: canvas.value,
|
||||||
// 键盘
|
// 键盘
|
||||||
keyboard: {
|
keyboard: {
|
||||||
bindTo: document // 或者window,注意与外部表单的键盘监听事件是否冲突
|
bindTo: window // 或者window,注意与外部表单的键盘监听事件是否冲突
|
||||||
},
|
},
|
||||||
propertiesPanel: {
|
propertiesPanel: {
|
||||||
parent: panel.value
|
parent: panel.value
|
||||||
|
Loading…
x
Reference in New Issue
Block a user