update 修改命名,增加自定义渲染

This commit is contained in:
LiuHao 2024-01-22 16:03:39 +08:00
parent 9443218e86
commit 8a3ebc76e8
8 changed files with 78 additions and 17 deletions

View File

@ -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;

View File

@ -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;

View File

@ -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;

View File

@ -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);
}
}

View File

@ -0,0 +1,9 @@
import CustomRenderer from './CustomRenderer';
import { ModuleDeclaration } from 'didi';
const customRenderer: ModuleDeclaration = {
__init__: ['customRenderer'],
customRenderer: ['type', CustomRenderer]
};
export default customRenderer;

View File

@ -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;

View File

@ -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