fix: initialize mcp_tool_ids as an empty array and update conditional rendering for mcp_servers

v3.2
CaptainB 2025-09-18 11:09:26 +08:00
parent c1a214b08f
commit 8220f52ace
2 changed files with 19 additions and 6 deletions

View File

@ -135,7 +135,7 @@ watch(dialogVisible, (bool) => {
if (!bool) { if (!bool) {
form.value = { form.value = {
mcp_servers: '', mcp_servers: '',
mcp_tool_ids: '', mcp_tool_ids: [],
mcp_source: 'referencing', mcp_source: 'referencing',
} }
paramFormRef.value?.clearValidate() paramFormRef.value?.clearValidate()
@ -146,7 +146,7 @@ function mcpSourceChange() {
if (form.value.mcp_source === 'referencing') { if (form.value.mcp_source === 'referencing') {
form.value.mcp_servers = '' form.value.mcp_servers = ''
} else { } else {
form.value.mcp_tool_ids = '' form.value.mcp_tool_ids = []
} }
} }

View File

@ -146,10 +146,7 @@
</div> </div>
<div <div
class="w-full mb-16" class="w-full mb-16"
v-if=" v-if=" chat_data.mcp_tool_ids?.length > 0"
chat_data.mcp_tool_ids?.length > 0 ||
(chat_data.mcp_servers && chat_data.mcp_servers.length > 0)
"
> >
<template v-for="(item, index) in chat_data.mcp_tool_ids" :key="index"> <template v-for="(item, index) in chat_data.mcp_tool_ids" :key="index">
<div <div
@ -188,6 +185,22 @@
</div> </div>
</template> </template>
</div> </div>
<div v-if="chat_data.mcp_servers && chat_data.mcp_servers.length > 0"
class="flex-between border border-r-6 white-bg mb-4"
style="padding: 5px 8px"
>
<div class="flex align-center" style="line-height: 20px">
<ToolIcon type="MCP" class="mr-8" :size="20"/>
<div class="ellipsis">
{{
$t('common.custom') + ' MCP'
}}
</div>
</div>
<el-button text @click="chat_data.mcp_servers = ''">
<el-icon><Close/></el-icon>
</el-button>
</div>
<!-- 工具 --> <!-- 工具 -->
<div class="flex-between mb-16"> <div class="flex-between mb-16">
<div class="lighter">{{ $t('views.tool.title') }}</div> <div class="lighter">{{ $t('views.tool.title') }}</div>