refactor: 优化任务折叠面板处理逻辑

This commit is contained in:
Lesan 2024-11-28 11:32:33 +08:00
parent 70c3a09f76
commit d017ab55db
3 changed files with 40 additions and 29 deletions

View File

@ -26,13 +26,13 @@
<template #title><Icon icon="ep:list" />表单</template>
<element-form :id="elementId" :type="elementType" />
</el-collapse-item>
<el-collapse-item name="task" v-if="elementType.indexOf('Task') !== -1" key="task">
<template #title><Icon icon="ep:checked" />任务</template>
<el-collapse-item name="task" v-if="isTaskCollapseItemShow(elementType)" key="task">
<template #title><Icon icon="ep:checked" />{{ getTaskCollapseItemName(elementType) }}</template>
<element-task :id="elementId" :type="elementType" />
</el-collapse-item>
<el-collapse-item
name="multiInstance"
v-if="elementType.indexOf('Task') !== -1 && elementType !== 'UserTask'"
v-if="elementType.indexOf('Task') !== -1"
key="multiInstance"
>
<template #title><Icon icon="ep:help-filled" />多实例会签配置</template>
@ -72,6 +72,7 @@ import ElementListeners from './listeners/ElementListeners.vue'
import ElementProperties from './properties/ElementProperties.vue'
// import ElementForm from './form/ElementForm.vue'
import UserTaskListeners from './listeners/UserTaskListeners.vue'
import { getTaskCollapseItemName,isTaskCollapseItemShow } from './task/data'
defineOptions({ name: 'MyPropertiesPanel' })

View File

@ -29,10 +29,7 @@
</template>
<script lang="ts" setup>
import UserTask from './task-components/UserTask.vue'
import ServiceTask from './task-components/ServiceTask.vue'
import ScriptTask from './task-components/ScriptTask.vue'
import ReceiveTask from './task-components/ReceiveTask.vue'
import { installedComponent } from './data'
defineOptions({ name: 'ElementTaskConfig' })
@ -46,15 +43,7 @@ const taskConfigForm = ref({
exclusive: false
})
const witchTaskComponent = ref()
const installedComponent = ref({
//
// messageRef
//
UserTask: 'UserTask', //
ServiceTask: 'ServiceTask', //
ScriptTask: 'ScriptTask', //
ReceiveTask: 'ReceiveTask' //
})
const bpmnElement = ref()
const bpmnInstances = () => (window as any).bpmnInstances
@ -80,18 +69,8 @@ watch(
watch(
() => props.type,
() => {
// witchTaskComponent.value = installedComponent.value[props.type]
if (props.type == installedComponent.value.UserTask) {
witchTaskComponent.value = UserTask
}
if (props.type == installedComponent.value.ServiceTask) {
witchTaskComponent.value = ServiceTask
}
if (props.type == installedComponent.value.ScriptTask) {
witchTaskComponent.value = ScriptTask
}
if (props.type == installedComponent.value.ReceiveTask) {
witchTaskComponent.value = ReceiveTask
if (props.type) {
witchTaskComponent.value = installedComponent[props.type].componet
}
},
{ immediate: true }

View File

@ -0,0 +1,31 @@
import UserTask from './task-components/UserTask.vue'
import ServiceTask from './task-components/ServiceTask.vue'
import ScriptTask from './task-components/ScriptTask.vue'
import ReceiveTask from './task-components/ReceiveTask.vue'
export const installedComponent = {
UserTask: {
name: '用户任务',
componet: UserTask
},
ServiceTask: {
name: '服务任务',
componet: ServiceTask
},
ScriptTask: {
name: '脚本任务',
componet: ScriptTask
},
ReceiveTask: {
name: '接收任务',
componet: ReceiveTask
}
}
export const getTaskCollapseItemName = (elementType) => {
return installedComponent[elementType].name
}
export const isTaskCollapseItemShow = (elementType) => {
return installedComponent[elementType]
}