diff --git a/src/components/BpmnDesign/PropertyPanel.vue b/src/components/BpmnDesign/PropertyPanel.vue index 35da069..f5c9ca3 100644 --- a/src/components/BpmnDesign/PropertyPanel.vue +++ b/src/components/BpmnDesign/PropertyPanel.vue @@ -12,27 +12,16 @@ import ProcessPanel from './panel/ProcessPanel.vue'; import StartEndPanel from './panel/StartEndPanel.vue'; import GatewayPanel from './panel/GatewayPanel.vue'; import SequenceFlowPanel from './panel/SequenceFlowPanel.vue'; +import { Modeler, Modeling, Element } from 'bpmn'; interface propsType { users: Array; groups: Array; categorys: Array; - modeler: any; + modeler: Modeler; } const props = withDefaults(defineProps(), {}); -const element = ref(); - -const form = reactive({ - id: '', - name: '', - color: null -}); - -const roles = ref([ - { value: 'manager', label: '经理' }, - { value: 'personnel', label: '人事' }, - { value: 'charge', label: '主管' } -]); +const element = ref(); const startEndType = ['bpmn:IntermediateThrowEvent', 'bpmn:StartEvent', 'bpmn:EndEvent']; const taskType = [ @@ -69,20 +58,24 @@ const nodeName = computed(() => { }); const handleModeler = () => { - props.modeler.on('root.added', (e) => { + props.modeler.on('root.added', (e: any) => { if (e.element.type === 'bpmn:Process') { element.value = null; nextTick(() => { element.value = e.element; + // const modeling = props.modeler.get('modeling'); + // modeling.setColor(e.element.children, { + // fill: 'green' + // }); }); } }); - props.modeler.on('element.click', (e) => { + props.modeler.on('element.click', (e: any) => { if (e.element.type === 'bpmn:Process') { element.value = e.element; } }); - props.modeler.on('selection.changed', (e) => { + props.modeler.on('selection.changed', (e: any) => { // 先给null为了让vue刷新 element.value = null; const newElement = e.newSelection[0]; diff --git a/src/components/BpmnDesign/hooks/usePanel.ts b/src/components/BpmnDesign/hooks/usePanel.ts index 35e5ff5..10ac813 100644 --- a/src/components/BpmnDesign/hooks/usePanel.ts +++ b/src/components/BpmnDesign/hooks/usePanel.ts @@ -1,8 +1,8 @@ import showConfig from '@/components/BpmnDesign/assets/showConfig'; -import { Moddle, Modeler, Modeling } from 'bpmn'; +import { Moddle, Modeler, Modeling, Element } from 'bpmn'; interface Options { modeler: Modeler; - element: any; + element: Element; } export default (ops: Options) => { diff --git a/src/components/BpmnDesign/hooks/useParseElement.ts b/src/components/BpmnDesign/hooks/useParseElement.ts index 7945d61..3a67ca6 100644 --- a/src/components/BpmnDesign/hooks/useParseElement.ts +++ b/src/components/BpmnDesign/hooks/useParseElement.ts @@ -1,10 +1,9 @@ import { Ref } from 'vue'; -import usePanel from '@/components/BpmnDesign/hooks/usePanel'; -import { Modeler } from 'bpmn'; +import { Element, Modeler } from 'bpmn'; interface Options { modeler: Modeler; - element: any; + element: Element; } interface Data { diff --git a/src/components/BpmnDesign/index.vue b/src/components/BpmnDesign/index.vue index 4044a06..82c538f 100644 --- a/src/components/BpmnDesign/index.vue +++ b/src/components/BpmnDesign/index.vue @@ -63,13 +63,14 @@