StartEndPanel.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <template>
  2. <div>
  3. <el-collapse v-model="currentCollapseItem">
  4. <el-collapse-item name="1">
  5. <template #title>
  6. <div class="collapse__title">
  7. <el-icon>
  8. <InfoFilled />
  9. </el-icon>
  10. 常规
  11. </div>
  12. </template>
  13. <div>
  14. <el-form ref="formRef" :model="formData" :rules="formRules" label-width="90px">
  15. <el-form-item prop="id" label="节点 ID">
  16. <el-input v-model="formData.id" @change="idChange"> </el-input>
  17. </el-form-item>
  18. <el-form-item prop="name" label="节点名称">
  19. <el-input v-model="formData.name" @change="nameChange"> </el-input>
  20. </el-form-item>
  21. </el-form>
  22. </div>
  23. </el-collapse-item>
  24. <el-collapse-item name="2">
  25. <template #title>
  26. <div class="collapse__title">
  27. <el-icon>
  28. <BellFilled />
  29. </el-icon>
  30. 执行监听器
  31. </div>
  32. </template>
  33. <div>
  34. <ExecutionListener :element="element"></ExecutionListener>
  35. </div>
  36. </el-collapse-item>
  37. </el-collapse>
  38. </div>
  39. </template>
  40. <script setup lang="ts">
  41. import useParseElement from '@/components/BpmnDesign/hooks/useParseElement';
  42. import usePanel from '@/components/BpmnDesign/hooks/usePanel';
  43. import { Modeler, ModdleElement } from 'bpmn';
  44. import { StartEndPanel } from 'bpmnDesign';
  45. interface PropType {
  46. element: ModdleElement;
  47. }
  48. const props = withDefaults(defineProps<PropType>(), {});
  49. const { nameChange, idChange } = usePanel({
  50. element: toRaw(props.element)
  51. });
  52. const { parseData } = useParseElement({
  53. element: toRaw(props.element)
  54. });
  55. const formData = ref(parseData<StartEndPanel>());
  56. const currentCollapseItem = ref(['1', '2']);
  57. const formRules = ref<ElFormRules>({
  58. id: [{ required: true, message: '请输入', trigger: 'blur' }],
  59. name: [{ required: true, message: '请输入', trigger: 'blur' }]
  60. });
  61. </script>
  62. <style lang="scss" scoped></style>