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