Interface.ts 1.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. import { Position } from '@vue-flow/core'
  2. import type { OnConnectStartParams, Node, DefaultEdge } from '@vue-flow/core'
  3. export * from '@vue-flow/core'
  4. export type CanvasConnectionPort = {
  5. node?: string
  6. type: string
  7. index: number
  8. required?: boolean
  9. maxConnections?: number
  10. label?: string
  11. [key: string]: any
  12. }
  13. export interface CanvasElementPortWithRenderData extends CanvasConnectionPort {
  14. handleId: string
  15. connectionsCount: number
  16. isConnecting: boolean
  17. position: Position
  18. offset?: { top?: string; left?: string }
  19. }
  20. export interface IWorkflowNode extends Node {
  21. data: {
  22. inputs: CanvasConnectionPort[]
  23. outputs: CanvasConnectionPort[]
  24. renderType?: 'default' | 'stickyNote' | 'custom'
  25. // 定义节点数据
  26. [key: string]: any
  27. }
  28. }
  29. export type IWorkflowEdge = DefaultEdge<{
  30. // 定义边数据
  31. [key: string]: any
  32. }>
  33. export interface IWorkflow {
  34. id: string
  35. nodes: IWorkflowNode[]
  36. edges: IWorkflowEdge[]
  37. [key: string]: any
  38. }
  39. export interface XYPosition {
  40. x: number
  41. y: number
  42. }
  43. export type ConnectStartEvent = {
  44. event?: MouseEvent | undefined
  45. } & OnConnectStartParams
  46. export { Position }