架構

BotBuilder.vue

<template>
  <div>
    <BuilderNavbar @save="handleSave" />
    <BotFlow
      v-model:selectedNodeId="selectedNodeId"
      v-model:botPositionsData="botPositionsData"
      :bot-message-blocks-data="botMessageBlocksData"
    /> 
    <SettingPanel
      v-model:editingMessageBlock="botMessageBlocksData[selectedNodeIndex]"
      @zoom-in="handleZoomIn"
      @zoom-out="handleZoomOut"
      @zoom-to-fit="handleZoomToFit"
      @zoom-to="handleZoomTo"
      @edit-to="handleEditTo"
      @auto-layout-graph="autoLayoutGraph"
    />  
    </div>
  </div>
</template>
  • BuilderNavbar
    • 全模組資料驗證
    • 儲存
    • 路由跳轉
  • BotFlow
    • 接收模組資料進行渲染
    • 編輯當下選擇的模組ID
    • 編輯所有模組的座標
  • SettingPanel
    • 編輯當下選擇的模組
    • 控制 BotFlow 的縮放行為