setup()

in seatunnel-ui/src/views/task/synchronization-definition/dag/canvas/node.tsx [33:76]


  setup() {
    const getNode = inject('getNode') as any
    const node = getNode()
    const { name, unsaved, type, connectorType, isError } = node.getData()

    const icon = ref('')

    if (type === 'source') {
      icon.value = SourceImg
    } else if (type === 'sink') {
      icon.value = SinkImg
    } else if (type === 'transform' && connectorType === 'FieldMapper') {
      icon.value = FieldMapperImg
    } else if (type === 'transform' && connectorType === 'FilterRowKind') {
      icon.value = FilterEventTypeImg
    } else if (type === 'transform' && connectorType === 'Replace') {
      icon.value = ReplaceImg
    } else if (type === 'transform' && connectorType === 'MultiFieldSplit') {
      icon.value = SplitImg
    } else if (type === 'transform' && connectorType === 'Copy') {
      icon.value = CopyImg
    } else if (type === 'transform' && connectorType === 'Sql') {
      icon.value = SqlImg
    } else if (type === 'transform' && connectorType === 'JsonPath') {
      icon.value = JsonPathImg
    }

    return () => (
      <div
        class={styles['dag-node']}
        style={{
          borderLeft: isError ? '4px solid #ff4d4f' : (unsaved ? '4px solid #faad14' : '4px solid #1890ff')
        }}
      >
        <img src={icon.value} class={styles['dag-node-icon']} />
        <NTooltip trigger='hover'>
          {{
            trigger: () => <div class={styles['dag-node-label']}>{name}</div>,
            default: () => name
          }}
        </NTooltip>
      </div>
    )
  }