Skip to content

Commit d017ab5

Browse files
committed
refactor: 优化任务折叠面板处理逻辑
1 parent 70c3a09 commit d017ab5

File tree

3 files changed

+40
-29
lines changed

3 files changed

+40
-29
lines changed

src/components/bpmnProcessDesigner/package/penal/PropertiesPanel.vue

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
<template>
2-
<div class="process-panel__container" :style="{ width: `${width}px`,maxHeight: '700px' }">
2+
<div class="process-panel__container" :style="{ width: `${width}px`, maxHeight: '700px' }">
33
<el-collapse v-model="activeTab">
44
<el-collapse-item name="base">
55
<!-- class="panel-tab__title" -->
@@ -26,13 +26,13 @@
2626
<template #title><Icon icon="ep:list" />表单</template>
2727
<element-form :id="elementId" :type="elementType" />
2828
</el-collapse-item>
29-
<el-collapse-item name="task" v-if="elementType.indexOf('Task') !== -1" key="task">
30-
<template #title><Icon icon="ep:checked" />任务</template>
29+
<el-collapse-item name="task" v-if="isTaskCollapseItemShow(elementType)" key="task">
30+
<template #title><Icon icon="ep:checked" />{{ getTaskCollapseItemName(elementType) }}</template>
3131
<element-task :id="elementId" :type="elementType" />
3232
</el-collapse-item>
3333
<el-collapse-item
3434
name="multiInstance"
35-
v-if="elementType.indexOf('Task') !== -1 && elementType !== 'UserTask'"
35+
v-if="elementType.indexOf('Task') !== -1"
3636
key="multiInstance"
3737
>
3838
<template #title><Icon icon="ep:help-filled" />多实例(会签配置)</template>
@@ -72,6 +72,7 @@ import ElementListeners from './listeners/ElementListeners.vue'
7272
import ElementProperties from './properties/ElementProperties.vue'
7373
// import ElementForm from './form/ElementForm.vue'
7474
import UserTaskListeners from './listeners/UserTaskListeners.vue'
75+
import { getTaskCollapseItemName,isTaskCollapseItemShow } from './task/data'
7576
7677
defineOptions({ name: 'MyPropertiesPanel' })
7778

src/components/bpmnProcessDesigner/package/penal/task/ElementTask.vue

Lines changed: 4 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -29,10 +29,7 @@
2929
</template>
3030

3131
<script lang="ts" setup>
32-
import UserTask from './task-components/UserTask.vue'
33-
import ServiceTask from './task-components/ServiceTask.vue'
34-
import ScriptTask from './task-components/ScriptTask.vue'
35-
import ReceiveTask from './task-components/ReceiveTask.vue'
32+
import { installedComponent } from './data'
3633
3734
defineOptions({ name: 'ElementTaskConfig' })
3835
@@ -46,15 +43,7 @@ const taskConfigForm = ref({
4643
exclusive: false
4744
})
4845
const witchTaskComponent = ref()
49-
const installedComponent = ref({
50-
// 手工任务与普通任务一致,不需要其他配置
51-
// 接收消息任务,需要在全局下插入新的消息实例,并在该节点下的 messageRef 属性绑定该实例
52-
// 发送任务、服务任务、业务规则任务共用一个相同配置
53-
UserTask: 'UserTask', // 用户任务配置
54-
ServiceTask: 'ServiceTask', // 服务任务配置
55-
ScriptTask: 'ScriptTask', // 脚本任务配置
56-
ReceiveTask: 'ReceiveTask' // 消息接收任务
57-
})
46+
5847
const bpmnElement = ref()
5948
6049
const bpmnInstances = () => (window as any).bpmnInstances
@@ -80,18 +69,8 @@ watch(
8069
watch(
8170
() => props.type,
8271
() => {
83-
// witchTaskComponent.value = installedComponent.value[props.type]
84-
if (props.type == installedComponent.value.UserTask) {
85-
witchTaskComponent.value = UserTask
86-
}
87-
if (props.type == installedComponent.value.ServiceTask) {
88-
witchTaskComponent.value = ServiceTask
89-
}
90-
if (props.type == installedComponent.value.ScriptTask) {
91-
witchTaskComponent.value = ScriptTask
92-
}
93-
if (props.type == installedComponent.value.ReceiveTask) {
94-
witchTaskComponent.value = ReceiveTask
72+
if (props.type) {
73+
witchTaskComponent.value = installedComponent[props.type].componet
9574
}
9675
},
9776
{ immediate: true }
Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,31 @@
1+
import UserTask from './task-components/UserTask.vue'
2+
import ServiceTask from './task-components/ServiceTask.vue'
3+
import ScriptTask from './task-components/ScriptTask.vue'
4+
import ReceiveTask from './task-components/ReceiveTask.vue'
5+
6+
export const installedComponent = {
7+
UserTask: {
8+
name: '用户任务',
9+
componet: UserTask
10+
},
11+
ServiceTask: {
12+
name: '服务任务',
13+
componet: ServiceTask
14+
},
15+
ScriptTask: {
16+
name: '脚本任务',
17+
componet: ScriptTask
18+
},
19+
ReceiveTask: {
20+
name: '接收任务',
21+
componet: ReceiveTask
22+
}
23+
}
24+
25+
export const getTaskCollapseItemName = (elementType) => {
26+
return installedComponent[elementType].name
27+
}
28+
29+
export const isTaskCollapseItemShow = (elementType) => {
30+
return installedComponent[elementType]
31+
}

0 commit comments

Comments
 (0)