Files
AgentCoord/frontend/src/layout/components/Main/index.vue
2026-02-27 11:45:16 +08:00

55 lines
1.2 KiB
Vue

<script setup lang="ts">
import Task from './Task.vue'
import TaskTemplate from './TaskTemplate/index.vue'
import { nextTick, ref } from 'vue'
const taskRef = ref<{ currentTaskID: string; restoreFromHistory: (plan: any) => void }>()
const taskTemplateRef = ref<{
changeTask: () => void
clear: () => void
openHistoryDialog: () => void
}>()
function handleSearch() {
nextTick(() => {
taskTemplateRef.value?.changeTask()
})
}
// 获取当前任务的 TaskID
function getTaskID(): string {
return taskRef.value?.currentTaskID || ''
}
// 打开历史记录弹窗
function openHistoryDialog() {
taskTemplateRef.value?.openHistoryDialog()
}
// 处理历史任务恢复
function handleRestorePlan(plan: any) {
taskRef.value?.restoreFromHistory(plan)
}
defineExpose({
getTaskID,
openHistoryDialog
})
</script>
<template>
<div class="p-[24px] h-[calc(100%-60px)]">
<Task
ref="taskRef"
@search="handleSearch"
@search-start="taskTemplateRef?.clear"
@open-history="openHistoryDialog"
/>
<TaskTemplate
ref="taskTemplateRef"
:TaskID="taskRef?.currentTaskID"
@restore="handleRestorePlan"
/>
</div>
</template>