| | |
| | | <div class="main-grid"> |
| | | <div class="left-panel"> |
| | | <GroupList @select="handleGroupSelect" /> |
| | | <GroupTopology |
| | | v-if="selectedGroup" |
| | | :group="selectedGroup" |
| | | class="topology-panel" |
| | | /> |
| | | </div> |
| | | <div class="right-panel"> |
| | | <el-tabs v-model="activeTab" type="card" class="workbench-tabs"> |
| | |
| | | <script setup> |
| | | import { computed, ref, watch } from 'vue' |
| | | import GroupList from './components/DeviceGroup/GroupList.vue' |
| | | import GroupTopology from './components/DeviceGroup/GroupTopology.vue' |
| | | import TaskOrchestration from './components/MultiDeviceTest/TaskOrchestration.vue' |
| | | import ExecutionMonitor from './components/MultiDeviceTest/ExecutionMonitor.vue' |
| | | import ResultAnalysis from './components/MultiDeviceTest/ResultAnalysis.vue' |
| | |
| | | // 如果传入了任务信息,可以自动选中 |
| | | if (task && task.taskId) { |
| | | selectedTaskId.value = task.taskId |
| | | // 稍后自动打开该任务的步骤详情抽屉 |
| | | setTimeout(() => { |
| | | monitorRef.value?.openTaskDrawer?.(task.taskId) |
| | | }, 600) |
| | | } |
| | | } |
| | | |
| | |
| | | display: flex; |
| | | flex-direction: column; |
| | | gap: 24px; |
| | | } |
| | | |
| | | .topology-panel { |
| | | flex: 1; |
| | | min-height: 300px; |
| | | } |
| | | |
| | | .right-panel { |