diff --git a/src/bpmn/assets/moddle/flowable.ts b/src/bpmn/assets/moddle/flowable.ts index de959a6..66d3928 100644 --- a/src/bpmn/assets/moddle/flowable.ts +++ b/src/bpmn/assets/moddle/flowable.ts @@ -1020,6 +1020,11 @@ export default { 'isAttr': true, 'type': 'String' }, + { + 'name': 'alias', + 'isAttr': true, + 'type': 'String' + }, { 'name': 'event', 'isAttr': true, @@ -1058,6 +1063,11 @@ export default { 'isAttr': true, 'type': 'String' }, + { + 'name': 'alias', + 'isAttr': true, + 'type': 'String' + }, { 'name': 'event', 'isAttr': true, @@ -1247,4 +1257,4 @@ export default { } ], 'emumerations': [] -}; +} diff --git a/src/bpmn/hooks/usePanel.ts b/src/bpmn/hooks/usePanel.ts index ace579b..f6ff38b 100644 --- a/src/bpmn/hooks/usePanel.ts +++ b/src/bpmn/hooks/usePanel.ts @@ -1,29 +1,29 @@ -import showConfig from '../assets/showConfig'; -import type { ModdleElement } from 'bpmn'; -import useModelerStore from '@/store/modules/modeler'; -import { MultiInstanceTypeEnum } from '@/enums/bpmn/IndexEnums'; +import showConfig from '../assets/showConfig' +import type { ModdleElement } from 'bpmn' +import useModelerStore from '@/store/modules/modeler' +import { MultiInstanceTypeEnum } from '@/enums/bpmn/IndexEnums' interface Options { - element: ModdleElement; + element: ModdleElement } export default (ops: Options) => { - const { element } = ops; - const { getModeling, getModdle } = useModelerStore(); - const modeling = getModeling(); - const moddle = getModdle(); + const { element } = ops + const { getModeling, getModdle } = useModelerStore() + const modeling = getModeling() + const moddle = getModdle() /** * 当前节点类型 */ const elementType = computed(() => { - const bizObj = element.businessObject; - return bizObj.eventDefinitions ? bizObj.eventDefinitions[0].$type : bizObj.$type; - }); + const bizObj = element.businessObject + return bizObj.eventDefinitions ? bizObj.eventDefinitions[0].$type : bizObj.$type + }) /** * 用于控制面板字段显示与隐藏的配置 */ - const config = computed(() => showConfig[elementType.value] || {}); + const config = computed(() => showConfig[elementType.value] || {}) /** * 创建一个节点 @@ -32,22 +32,22 @@ export default (ops: Options) => { * @param parent 父节点 */ const createModdleElement = (elementType: string, properties: any, parent: ModdleElement) => { - const element = moddle.create(elementType, properties); - parent && (element.$parent = parent); - return element; - }; + const element = moddle.create(elementType, properties) + parent && (element.$parent = parent) + return element + } /** * 获取扩展属性,如果不存在会自动创建 */ const getExtensionElements = (create = true) => { - let extensionElements = element.businessObject.get('extensionElements'); + let extensionElements = element.businessObject.get('extensionElements') if (!extensionElements && create) { - extensionElements = createModdleElement('bpmn:ExtensionElements', { values: [] }, element.businessObject); - modeling.updateModdleProperties(element, element.businessObject, { extensionElements }); + extensionElements = createModdleElement('bpmn:ExtensionElements', { values: [] }, element.businessObject) + modeling.updateModdleProperties(element, element.businessObject, { extensionElements }) } - return extensionElements; - }; + return extensionElements + } /** * 获取extensionElements下的properties @@ -55,25 +55,26 @@ export default (ops: Options) => { */ const getPropertiesElements = (extensionElements?: ModdleElement) => { if (!extensionElements) { - extensionElements = getExtensionElements(); + extensionElements = getExtensionElements() } - let propertiesElements = extensionElements.values.find((item) => item.$type === 'flowable:properties'); + let propertiesElements = extensionElements.values.find((item) => item.$type === 'flowable:properties') if (!propertiesElements) { - propertiesElements = createModdleElement('flowable:properties', { values: [] }, extensionElements); + propertiesElements = createModdleElement('flowable:properties', { values: [] }, extensionElements) modeling.updateModdleProperties(element, extensionElements, { values: [...extensionElements.get<[]>('values'), propertiesElements] - }); + }) } - return propertiesElements; - }; + return propertiesElements + } /** * 更新节点属性 * @param properties 属性值 */ const updateProperties = (properties: any) => { - modeling.updateProperties(element, properties); - }; + console.log(properties) + modeling.updateProperties(element, properties) + } /** * 更新节点信息 @@ -81,8 +82,8 @@ export default (ops: Options) => { * @param properties 属性 */ const updateModdleProperties = (updateElement, properties: any) => { - modeling.updateModdleProperties(element, updateElement, properties); - }; + modeling.updateModdleProperties(element, updateElement, properties) + } /** * 更新Property属性 @@ -90,41 +91,41 @@ export default (ops: Options) => { * @param value 值 */ const updateProperty = (name: string, value: string) => { - const propertiesElements = getPropertiesElements(); + const propertiesElements = getPropertiesElements() - let propertyElements = propertiesElements.values.find((item) => item.name === name); + let propertyElements = propertiesElements.values.find((item) => item.name === name) if (!propertyElements) { - propertyElements = createModdleElement('flowable:property', { name: name, value: value }, propertiesElements); + propertyElements = createModdleElement('flowable:property', { name: name, value: value }, propertiesElements) modeling.updateModdleProperties(element, propertiesElements, { values: [...propertiesElements.get('values'), propertyElements] - }); + }) } else { - propertyElements.name = name; - propertyElements.value = value; + propertyElements.name = name + propertyElements.value = value } - return propertyElements; - }; + return propertyElements + } const idChange = (newVal: string) => { if (newVal) { - updateProperties({ id: newVal }); + updateProperties({ id: newVal }) } - }; + } const nameChange = (newVal: string) => { if (newVal) { - updateProperties({ name: newVal }); + updateProperties({ name: newVal }) } - }; + } const formKeyChange = (newVal: string) => { - updateProperties({ formKey: newVal }); - }; + updateProperties({ formKey: newVal }) + } const constant = { MultiInstanceType: [ { id: '373d4b81-a0d1-4eb8-8685-0d2fb1b468e2', label: '无', value: MultiInstanceTypeEnum.NONE }, { id: 'b5acea7c-b7e5-46b0-8778-390db091bdab', label: '串行', value: MultiInstanceTypeEnum.SERIAL }, { id: 'b4f0c683-1ccc-43c4-8380-e1b998986caf', label: '并行', value: MultiInstanceTypeEnum.PARALLEL } ] - }; + } return { elementType, @@ -141,5 +142,5 @@ export default (ops: Options) => { formKeyChange, getExtensionElements, getPropertiesElements - }; -}; + } +} diff --git a/src/bpmn/panel/property/ExecutionListener.vue b/src/bpmn/panel/property/ExecutionListener.vue index 3c584cb..d765430 100644 --- a/src/bpmn/panel/property/ExecutionListener.vue +++ b/src/bpmn/panel/property/ExecutionListener.vue @@ -42,7 +42,7 @@ :show-close="false" append-to-body > - + @@ -62,7 +62,7 @@ - + @@ -70,7 +70,7 @@ :label="typeSelect.filter((e) => e.value === formData.type)[0] ? typeSelect.filter((e) => e.value === formData.type)[0]?.label : '表达式'" prop="className" > - + @@ -88,139 +88,164 @@