feat(agent): 支持自定义API配置并优化UI交互

- 为agent.json添加apiUrl、apiKey、apiModel字段支持
- 更新API接口类型定义,支持传递自定义API配置
- 优化AgentRepoList组件UI样式和交互效果
- 增强JSON文件上传校验逻辑,支持API配置验证
- 改进任务结果页面布局和视觉呈现
- 添加任务过程查看抽屉功能
- 实现执行按钮动态样式和悬停效果
- 优化节点连接线渲染逻辑和性能
This commit is contained in:
zhaoweijie
2025-12-15 20:46:54 +08:00
parent 6392301833
commit 77530c49f8
25 changed files with 2040 additions and 306 deletions

View File

@@ -5,7 +5,7 @@ import TaskResult from './TaskResult/index.vue'
import { Jsplumb } from './utils.ts'
import { type IRawStepTask, useAgentsStore } from '@/stores'
import { BezierConnector } from '@jsplumb/browser-ui'
import { ref } from 'vue'
const agentsStore = useAgentsStore()
// 智能体库
@@ -15,9 +15,9 @@ const agentRepoJsplumb = new Jsplumb('task-template', {
options: {
curviness: 30, // 曲线弯曲程度
stub: 20, // 添加连接点与端点的距离
alwaysRespectStubs: true,
},
},
alwaysRespectStubs: true
}
}
})
// 任务流程
@@ -32,18 +32,16 @@ const taskResultRef = ref<{
}>()
const taskResultJsplumb = new Jsplumb('task-template')
function scrollToElementTop(elementId: string) {
const element = document.getElementById(elementId);
const element = document.getElementById(elementId)
if (element) {
element.scrollIntoView({
behavior: 'smooth',
block: 'start'
});
})
}
}
function handleTaskSyllabusCurrentTask(task: IRawStepTask) {
scrollToElementTop(`task-results-${task.Id}-0`)
agentsStore.setCurrentTask(task)
@@ -76,13 +74,14 @@ function clear() {
defineExpose({
changeTask,
resetAgentRepoLine,
clear,
clear
})
</script>
<template>
<!-- 删除overflow-hidden -->
<div
class="task-template flex gap-6 items-center h-[calc(100%-84px)] relative overflow-hidden"
class="task-template flex gap-6 items-center h-[calc(100%-84px)] relative"
id="task-template"
>
<!-- 智能体库 -->
@@ -111,10 +110,10 @@ defineExpose({
<style scoped lang="scss">
.task-template {
& > div {
box-shadow: 0 0 5px 0 rgba(0, 0, 0, 0.8);
box-shadow: var(--color-card-shadow-three);
border-radius: 24px;
border: 1px solid #414752;
background: var(--color-bg-quinary);
border: 1px solid var(--color-card-border-three);
background: var(--color-bg-three);
padding-top: 20px;
padding-bottom: 20px;
}