mirror of
https://github.com/yudaocode/yudao-ui-admin-vue3.git
synced 2026-04-24 09:58:37 +00:00
feat: AI工作流
This commit is contained in:
77
src/views/ai/workflow/manager/WorkflowModelForm.vue
Normal file
77
src/views/ai/workflow/manager/WorkflowModelForm.vue
Normal file
@@ -0,0 +1,77 @@
|
||||
<template>
|
||||
<div style="width: 100%; height: calc(100vh - 160px)">
|
||||
<Tinyflow
|
||||
ref="tinyflowRef"
|
||||
:className="'custom-class'"
|
||||
:style="{ width: '100%', height: '100%' }"
|
||||
v-if="initialData"
|
||||
:data="initialData"
|
||||
:provider="provider"
|
||||
/>
|
||||
</div>
|
||||
<div class="absolute top-30px right-30px">
|
||||
<el-button @click="updateWorkflowModel" type="primary" v-hasPermi="['ai:workflow:update']">保存</el-button>
|
||||
<el-button @click="testWorkflowModel" type="primary" v-hasPermi="['ai:workflow:test']">测试</el-button>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
<script setup lang="ts">
|
||||
import Tinyflow from '@/components/Tinyflow/Tinyflow.vue'
|
||||
import * as WorkflowApi from '@/api/ai/workflow'
|
||||
import { ApiKeyApi } from '@/api/ai/model/apiKey'
|
||||
|
||||
const route = useRoute()
|
||||
const message = useMessage() // 消息弹窗
|
||||
const { t } = useI18n() // 国际化
|
||||
|
||||
const tinyflowRef = ref()
|
||||
const provider = ref({ llm: () => [], knowledge: () => [], internal: () => [] })
|
||||
const initialData = ref()
|
||||
|
||||
const loadData = async () => {
|
||||
try {
|
||||
const [apiKeys, flowData] = await Promise.all([
|
||||
ApiKeyApi.getApiKeySimpleList(),
|
||||
WorkflowApi.getWorkflow(route.params.id)
|
||||
])
|
||||
|
||||
// 更新 provider
|
||||
provider.value = {
|
||||
llm: () =>
|
||||
apiKeys.map(({ id, name }) => ({
|
||||
value: id,
|
||||
label: name
|
||||
})),
|
||||
knowledge: () => [],
|
||||
internal: () => []
|
||||
}
|
||||
|
||||
// 更新流程图数据
|
||||
initialData.value = JSON.parse(flowData.model)
|
||||
} catch {}
|
||||
}
|
||||
|
||||
const updateWorkflowModel = async () => {
|
||||
try {
|
||||
const model = tinyflowRef.value.getData()
|
||||
const data = {
|
||||
model: JSON.stringify(model),
|
||||
id: route.params.id
|
||||
}
|
||||
await message.confirm('确认保存流程模型?')
|
||||
await WorkflowApi.updateWorkflowModel(data)
|
||||
message.success(t('common.updateSuccess'))
|
||||
await loadData()
|
||||
} catch {}
|
||||
}
|
||||
|
||||
const testWorkflowModel = () => {
|
||||
// TODO @lesan 测试
|
||||
}
|
||||
|
||||
watchEffect(() => {
|
||||
if (route.params.id) {
|
||||
loadData()
|
||||
}
|
||||
})
|
||||
</script>
|
||||
Reference in New Issue
Block a user