diff --git a/src/components/BpmnDesign/assets/lang/zh.ts b/src/components/BpmnDesign/assets/lang/zh.ts index 61921a5..44e2c86 100644 --- a/src/components/BpmnDesign/assets/lang/zh.ts +++ b/src/components/BpmnDesign/assets/lang/zh.ts @@ -16,7 +16,12 @@ export const NodeName = { 'bpmn:ParallelGateway': '并行网关', 'bpmn:InclusiveGateway': '相容网关', 'bpmn:ComplexGateway': '复杂网关', - 'bpmn:EventBasedGateway': '事件网关' + 'bpmn:EventBasedGateway': '事件网关', + 'bpmn:Participant': '池/参与者', + 'bpmn:SubProcess': '子流程', + 'bpmn:DataObjectReference': '数据对象引用', + 'bpmn:DataStoreReference': '数据存储引用', + 'bpmn:Group': '组' }; export default { @@ -114,5 +119,6 @@ export default { 'Append message intermediate catch event': '追加中间消息捕获事件', 'Append timer intermediate catch event': '追加中间定时捕获事件', 'Append conditional intermediate catch event': '追加中间条件捕获事件', - 'Append signal intermediate catch event': '追加中间信号捕获事件' + 'Append signal intermediate catch event': '追加中间信号捕获事件', + 'flow elements must be children of pools/participants': '流程元素必须是池/参与者的子元素' }; diff --git a/src/components/BpmnDesign/assets/style/index.scss b/src/components/BpmnDesign/assets/style/index.scss index d3ce379..130b842 100644 --- a/src/components/BpmnDesign/assets/style/index.scss +++ b/src/components/BpmnDesign/assets/style/index.scss @@ -227,4 +227,55 @@ opacity: 0.8; } } + .bpmn-icon-data-object { + &:hover { + &:after { + content: '创建数据对象'; + position: absolute; + left: 45px; + width: 120px; + font-size: 15px; + font-weight: bold; + color: #3a84de; + border-radius: 2px; + border: 1px solid #cccccc; + background-color: #fafafa; + opacity: 0.8; + } + } + } + .bpmn-icon-data-store { + &:hover { + &:after { + content: '创建数据存储'; + position: absolute; + left: 100px; + width: 120px; + font-size: 15px; + font-weight: bold; + color: #3a84de; + border-radius: 2px; + border: 1px solid #cccccc; + background-color: #fafafa; + opacity: 0.8; + } + } + } + .bpmn-icon-group { + &:hover { + &:after { + content: '创建分组'; + position: absolute; + left: 100px; + width: 100px; + font-size: 15px; + font-weight: bold; + color: #3a84de; + border-radius: 2px; + border: 1px solid #cccccc; + background-color: #fafafa; + opacity: 0.8; + } + } + } } diff --git a/src/components/BpmnDesign/panel/ParticipantPanel.vue b/src/components/BpmnDesign/panel/ParticipantPanel.vue new file mode 100644 index 0000000..7dd5474 --- /dev/null +++ b/src/components/BpmnDesign/panel/ParticipantPanel.vue @@ -0,0 +1,40 @@ + + + + diff --git a/src/components/BpmnDesign/panel/index.vue b/src/components/BpmnDesign/panel/index.vue index 6c2d146..6ba7fee 100644 --- a/src/components/BpmnDesign/panel/index.vue +++ b/src/components/BpmnDesign/panel/index.vue @@ -11,6 +11,7 @@ import ProcessPanel from './ProcessPanel.vue'; import StartEndPanel from './StartEndPanel.vue'; import GatewayPanel from './GatewayPanel.vue'; import SequenceFlowPanel from './SequenceFlowPanel.vue'; +import ParticipantPanel from './ParticipantPanel.vue'; import { Modeler, ModdleElement } from 'bpmn'; const { proxy } = getCurrentInstance() as ComponentInternalInstance; interface propsType { @@ -45,6 +46,7 @@ const component = computed(() => { if (sequenceType.includes(type)) return SequenceFlowPanel; if (gatewayType.includes(type)) return GatewayPanel; if (processType.includes(type)) return ProcessPanel; + if (type === 'bpmn:Participant') return ParticipantPanel; //return proxy?.$modal.msgWarning('面板开发中....'); });