wzj-vue/src/components/BpmnDesign/panel/ParticipantPanel.vue

68 lines
2.0 KiB
Vue
Raw Normal View History

2024-03-18 10:44:21 +08:00
<template>
<div>
<el-collapse v-model="currentCollapseItem">
<el-collapse-item name="1">
<template #title>
<div class="collapse__title">
<el-icon>
<InfoFilled />
</el-icon>
常规
</div>
</template>
<div>
<el-form ref="formRef" :model="formData" :rules="formRules" label-width="90px">
<el-form-item prop="id" label="节点 ID">
2024-03-18 14:18:30 +08:00
<el-input v-model="formData.id" @change="idChange"></el-input>
</el-form-item>
<el-form-item prop="name" label="节点名称">
2024-03-18 14:18:30 +08:00
<el-input v-model="formData.name" @change="nameChange"></el-input>
</el-form-item>
</el-form>
</div>
</el-collapse-item>
<el-collapse-item name="2">
<template #title>
<div class="collapse__title">
<el-icon>
<BellFilled />
</el-icon>
执行监听器
</div>
</template>
<div>
<ExecutionListener :element="element"></ExecutionListener>
</div>
</el-collapse-item>
</el-collapse>
2024-03-18 10:44:21 +08:00
</div>
</template>
<script setup lang="ts">
import useParseElement from '@/components/BpmnDesign/hooks/useParseElement';
import usePanel from '@/components/BpmnDesign/hooks/usePanel';
import { ModdleElement } from 'bpmn';
2024-03-18 14:18:30 +08:00
import { ParticipantPanel } from 'bpmnDesign';
2024-03-18 10:44:21 +08:00
interface PropType {
element: ModdleElement;
}
2024-03-18 14:18:30 +08:00
2024-03-18 10:44:21 +08:00
const props = withDefaults(defineProps<PropType>(), {});
const { nameChange, idChange } = usePanel({
element: toRaw(props.element)
});
const { parseData } = useParseElement({
element: toRaw(props.element)
});
2024-03-18 14:18:30 +08:00
const formData = ref(parseData<ParticipantPanel>());
const currentCollapseItem = ref(['1', '2']);
2024-03-18 10:44:21 +08:00
const formRules = ref<ElFormRules>({
id: [{ required: true, message: '请输入', trigger: 'blur' }],
name: [{ required: true, message: '请输入', trigger: 'blur' }]
});
</script>
<style lang="scss" scoped></style>