Cloud Zhang
2024-05-22 1e41a759d4b0ee5b6072e5bd45d9938591f90bc9
src/components/FlowChart/src/FlowChart.vue
@@ -7,6 +7,8 @@
      @save-data="handleSave"
      @add-data="handleAdd"
      @addlf="handleAddlf"
      @undo="handleUndo"
      @redo="handleRedo"
    />
    <div ref="lfElRef" class="h-full"></div>
    <BasicModal @register="register" title="流程数据" width="50%">
@@ -35,6 +37,11 @@
  import { useMessage } from '/@/hooks/web/useMessage';
  import { useI18n } from '/@/hooks/web/useI18n';
  import actionRect from './actionRect';
  import TestNode from './TestNode';
  import CollectNode from './CollectNode';
  import AssemblyNode from './AssemblyNode';
  import PackingNode from './PackingNode';
  import RepairNode from './RepairNode';
  const { notification } = useMessage();
  const { t } = useI18n();
@@ -61,7 +68,16 @@
        type: Array,
      },
    },
    emits: ['view-data', 'save-data', 'add-lf', 'select-node', 'click-blank', 'init'],
    emits: [
      'view-data',
      'save-data',
      'add-lf',
      'select-node',
      'click-blank',
      'init',
      'undo',
      'redo',
    ],
    setup(props, { emit }) {
      const globSetting = useGlobSetting();
      const lfElRef = ref(null);
@@ -147,6 +163,11 @@
        const lf = unref(lfInstance)!;
        // lf?.setDefaultEdgeType('line');
        lf.register(actionRect);
        lf.register(TestNode);
        lf.register(CollectNode);
        lf.register(AssemblyNode);
        lf.register(PackingNode);
        lf.register(RepairNode);
        onRender();
        lf?.setPatternItems(props.patternItems || configDefaultDndPanel(lf));
      }
@@ -180,7 +201,7 @@
            //   description: `${data.data.text.value}: ${data.isSelected}`,
            //   duration: 3,
            // });
            emit('select-node', data);
            emit('select-node', data, lf);
          } else {
            console.log(data.data.type);
          }
@@ -188,6 +209,11 @@
        lf.on('blank:mousedown', (e) => {
          emit('click-blank');
        });
        lf.on('node:dnd-add', (data, e) => {
          console.log('node:dnd-add', data);
          emit('select-node', data, lf);
        });
        emit('init', lf);
@@ -229,6 +255,22 @@
        emit('add-lf', lf);
      }
      function handleUndo() {
        const lf = unref(lfInstance);
        if (!lf) {
          return;
        }
        emit('undo', lf);
      }
      function handleRedo() {
        const lf = unref(lfInstance);
        if (!lf) {
          return;
        }
        emit('redo', lf);
      }
      onMounted(init);
      return {
@@ -240,7 +282,10 @@
        handleSave,
        handleAdd,
        handleAddlf,
        handleUndo,
        handleRedo,
      };
    },
  });
</script>
./TestNode