Interface.ts 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980
  1. import { Position } from '@vue-flow/core'
  2. import type { OnConnectStartParams, Node, DefaultEdge, ViewportTransform } 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 type CanvasExecutionStatus = 'idle' | 'running' | 'success' | 'warning'
  21. export interface IWorkflowNode extends Node {
  22. appAgentId: string
  23. name?: string
  24. remark?: string
  25. nodeType: string
  26. parentId?: string
  27. selected?: boolean
  28. executionStatus?: CanvasExecutionStatus
  29. data: {
  30. id: string
  31. // 位置
  32. position: XYPosition
  33. // 宽度
  34. width: number
  35. // 高度
  36. height: number
  37. // 节点层级
  38. zIndex?: number
  39. // 节点类型
  40. nodeType: string
  41. executionStatus?: CanvasExecutionStatus
  42. // 定义节点数据
  43. [key: string]: any
  44. }
  45. }
  46. export type IWorkflowEdge = DefaultEdge<{
  47. // 定义边数据
  48. [key: string]: any
  49. }>
  50. export interface IWorkflow {
  51. id: string
  52. name: string
  53. tags?: string[]
  54. description?: string
  55. status?: 'published' | 'draft' | 'deleted'
  56. nodes: IWorkflowNode[]
  57. edges: IWorkflowEdge[]
  58. viewport?: ViewportTransform
  59. [key: string]: any
  60. }
  61. export interface XYPosition {
  62. x: number
  63. y: number
  64. }
  65. export type ConnectStartEvent = {
  66. event?: MouseEvent | undefined
  67. } & OnConnectStartParams
  68. export type CanvasNodeMoveEvent = { id: string; position: IWorkflowNode['position'] }
  69. export { Position }