GatewayPanel.vue 2.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  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="80px">
  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 '../hooks/useParseElement';
  42. import usePanel from '../hooks/usePanel';
  43. import type { Modeler, ModdleElement } from 'bpmn';
  44. import type { GatewayPanel } from 'bpmnDesign';
  45. import ExecutionListener from './property/ExecutionListener.vue';
  46. interface PropType {
  47. element: ModdleElement;
  48. }
  49. const props = withDefaults(defineProps<PropType>(), {});
  50. const { nameChange, idChange } = usePanel({
  51. element: toRaw(props.element)
  52. });
  53. const { parseData } = useParseElement({
  54. element: toRaw(props.element)
  55. });
  56. const currentCollapseItem = ref(['1', '2']);
  57. const formData = ref(parseData<GatewayPanel>());
  58. const formRules = ref<ElFormRules>({
  59. processCategory: [{ required: true, message: '请选择', trigger: 'blur' }],
  60. id: [{ required: true, message: '请输入', trigger: 'blur' }],
  61. name: [{ required: true, message: '请输入', trigger: 'blur' }]
  62. });
  63. </script>
  64. <style lang="scss" scoped></style>