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('面板开发中....');
});