CustomRelations.vue 1.3 KB
<script lang="ts" setup>
  import { EdgeBindDataFieldEnum, EdgeBindDataFieldNameEnum } from '../../../enum/node';
  import { ConnectionModalDefineExposeType } from '../../../types';
  import { NodeData } from '../../../types/node';
  import { BasicForm, FormSchema, useForm } from '/@/components/Form';

  defineProps<{
    config: NodeData;
  }>();

  const getSchemas = (): FormSchema[] => {
    return [
      {
        field: EdgeBindDataFieldEnum.TYPE,
        component: 'Select',
        label: EdgeBindDataFieldNameEnum.TYPE,
        componentProps: {
          mode: 'tags',
          open: false,
          getPopupContainer: () => document.body,
          placeholder: '请输入链接标签',
        },
      },
    ];
  };

  const [register, { setFieldsValue, getFieldsValue }] = useForm({
    showActionButtonGroup: false,
    schemas: getSchemas(),
  });

  const getValue: ConnectionModalDefineExposeType['getFieldsValue'] = async () => {
    return getFieldsValue();
  };

  const setValue: ConnectionModalDefineExposeType['setFieldsValue'] = async (value) => {
    const { type } = value || {};
    setFieldsValue(type);
  };

  defineExpose({
    getFieldsValue: getValue,
    setFieldsValue: setValue,
  } as ConnectionModalDefineExposeType);
</script>

<template>
  <BasicForm @register="register" />
</template>