modeler.ts 2.5 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576
  1. import type { Modeler, Modeling, Canvas, ElementRegistry, Moddle, BpmnFactory } from 'bpmn';
  2. type ModelerStore = {
  3. modeler: Modeler | undefined;
  4. moddle: Moddle | undefined;
  5. modeling: Modeling | undefined;
  6. canvas: Canvas | undefined;
  7. elementRegistry: ElementRegistry | undefined;
  8. bpmnFactory: BpmnFactory | undefined;
  9. // 流程定义根节点信息
  10. procDefId: string | undefined;
  11. procDefName: string | undefined;
  12. };
  13. const defaultState: ModelerStore = {
  14. modeler: undefined,
  15. moddle: undefined,
  16. modeling: undefined,
  17. canvas: undefined,
  18. elementRegistry: undefined,
  19. bpmnFactory: undefined,
  20. procDefId: undefined,
  21. procDefName: undefined
  22. };
  23. export const useModelerStore = defineStore('modeler', () => {
  24. let modeler = defaultState.modeler;
  25. let moddle = defaultState.moddle;
  26. let modeling = defaultState.modeling;
  27. let canvas = defaultState.canvas;
  28. let elementRegistry = defaultState.elementRegistry;
  29. let bpmnFactory = defaultState.bpmnFactory;
  30. const procDefId = ref(defaultState.procDefId);
  31. const procDefName = ref(defaultState.procDefName);
  32. const getModeler = () => modeler;
  33. const getModdle = () => moddle;
  34. const getModeling = (): Modeling | undefined => modeling;
  35. const getCanvas = (): Canvas | undefined => canvas;
  36. const getElRegistry = (): ElementRegistry | undefined => elementRegistry;
  37. const getBpmnFactory = (): BpmnFactory | undefined => bpmnFactory;
  38. const getProcDefId = (): string | undefined => procDefId.value;
  39. const getProcDefName = (): string | undefined => procDefName.value;
  40. // 设置根节点
  41. const setModeler = (modelers: Modeler | undefined) => {
  42. if (modelers) {
  43. modeler = modelers;
  44. modeling = modelers.get<Modeling>('modeling');
  45. moddle = modelers.get<Moddle>('moddle');
  46. canvas = modelers.get<Canvas>('canvas');
  47. bpmnFactory = modelers.get<BpmnFactory>('bpmnFactory');
  48. elementRegistry = modelers.get<ElementRegistry>('elementRegistry');
  49. } else {
  50. modeling = moddle = canvas = elementRegistry = bpmnFactory = undefined;
  51. }
  52. };
  53. // 设置流程定义根节点信息
  54. const setProcDef = (modeler: Modeler | undefined) => {
  55. procDefId.value = modeler.get<Canvas>('canvas').getRootElement().businessObject.get('id');
  56. procDefName.value = modeler.get<Canvas>('canvas').getRootElement().businessObject.get('name');
  57. };
  58. return {
  59. getModeler,
  60. getModdle,
  61. getModeling,
  62. getCanvas,
  63. getElRegistry,
  64. getBpmnFactory,
  65. getProcDefId,
  66. getProcDefName,
  67. setModeler,
  68. setProcDef
  69. };
  70. });
  71. export default useModelerStore;