From 6b988bd582bfcd17fee48c476a5a6e5cc172b0d5 Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期三, 12 三月 2025 10:08:33 +0800 Subject: [PATCH] dev-2 --- src/store/modules/modeler.ts | 76 ++++++++++++++++++++++++++++++++++++++ 1 files changed, 76 insertions(+), 0 deletions(-) diff --git a/src/store/modules/modeler.ts b/src/store/modules/modeler.ts new file mode 100644 index 0000000..204f450 --- /dev/null +++ b/src/store/modules/modeler.ts @@ -0,0 +1,76 @@ +import type { Modeler, Modeling, Canvas, ElementRegistry, Moddle, BpmnFactory } from 'bpmn'; + +type ModelerStore = { + modeler: Modeler | undefined; + moddle: Moddle | undefined; + modeling: Modeling | undefined; + canvas: Canvas | undefined; + elementRegistry: ElementRegistry | undefined; + bpmnFactory: BpmnFactory | undefined; + // 娴佺▼瀹氫箟鏍硅妭鐐逛俊鎭� + procDefId: string | undefined; + procDefName: string | undefined; +}; + +const defaultState: ModelerStore = { + modeler: undefined, + moddle: undefined, + modeling: undefined, + canvas: undefined, + elementRegistry: undefined, + bpmnFactory: undefined, + procDefId: undefined, + procDefName: undefined +}; +export const useModelerStore = defineStore('modeler', () => { + let modeler = defaultState.modeler; + let moddle = defaultState.moddle; + let modeling = defaultState.modeling; + let canvas = defaultState.canvas; + let elementRegistry = defaultState.elementRegistry; + let bpmnFactory = defaultState.bpmnFactory; + const procDefId = ref(defaultState.procDefId); + const procDefName = ref(defaultState.procDefName); + + const getModeler = () => modeler; + const getModdle = () => moddle; + const getModeling = (): Modeling | undefined => modeling; + const getCanvas = (): Canvas | undefined => canvas; + const getElRegistry = (): ElementRegistry | undefined => elementRegistry; + const getBpmnFactory = (): BpmnFactory | undefined => bpmnFactory; + const getProcDefId = (): string | undefined => procDefId.value; + const getProcDefName = (): string | undefined => procDefName.value; + + // 璁剧疆鏍硅妭鐐� + const setModeler = (modelers: Modeler | undefined) => { + if (modelers) { + modeler = modelers; + modeling = modelers.get<Modeling>('modeling'); + moddle = modelers.get<Moddle>('moddle'); + canvas = modelers.get<Canvas>('canvas'); + bpmnFactory = modelers.get<BpmnFactory>('bpmnFactory'); + elementRegistry = modelers.get<ElementRegistry>('elementRegistry'); + } else { + modeling = moddle = canvas = elementRegistry = bpmnFactory = undefined; + } + }; + // 璁剧疆娴佺▼瀹氫箟鏍硅妭鐐逛俊鎭� + const setProcDef = (modeler: Modeler | undefined) => { + procDefId.value = modeler.get<Canvas>('canvas').getRootElement().businessObject.get('id'); + procDefName.value = modeler.get<Canvas>('canvas').getRootElement().businessObject.get('name'); + }; + + return { + getModeler, + getModdle, + getModeling, + getCanvas, + getElRegistry, + getBpmnFactory, + getProcDefId, + getProcDefName, + setModeler, + setProcDef + }; +}); +export default useModelerStore; -- Gitblit v1.9.3