2025-08-21 09:14:36 +00:00
|
|
|
<template>
|
|
|
|
|
<el-dialog
|
2025-08-21 10:06:20 +00:00
|
|
|
:title="$t('views.tool.mcpConfig')"
|
2025-08-21 09:14:36 +00:00
|
|
|
width="600"
|
|
|
|
|
v-model="dialogVisible"
|
|
|
|
|
:close-on-click-modal="false"
|
|
|
|
|
:close-on-press-escape="false"
|
|
|
|
|
:destroy-on-close="true"
|
|
|
|
|
:before-close="close"
|
|
|
|
|
append-to-body
|
2025-08-21 10:06:20 +00:00
|
|
|
class="mcp-config-dialog"
|
2025-08-21 09:14:36 +00:00
|
|
|
>
|
|
|
|
|
<el-form label-width="auto" label-position="top">
|
|
|
|
|
<el-form-item>
|
|
|
|
|
<el-input
|
|
|
|
|
type="textarea"
|
|
|
|
|
v-model="mcp_servers"
|
|
|
|
|
rows="8"
|
|
|
|
|
disabled
|
2025-08-21 10:06:20 +00:00
|
|
|
class="config-textarea"
|
|
|
|
|
@mouseenter.stop="showIcon = true"
|
|
|
|
|
@mouseleave.stop="showIcon = false"
|
2025-08-21 09:14:36 +00:00
|
|
|
></el-input>
|
2025-08-21 10:06:20 +00:00
|
|
|
<el-button circle class="copy-icon" v-if="showIcon" @click="copyClick(mcp_servers)">
|
|
|
|
|
<AppIcon iconName="app-copy" class="color-secondary"/>
|
|
|
|
|
</el-button>
|
2025-08-21 09:14:36 +00:00
|
|
|
</el-form-item>
|
|
|
|
|
</el-form>
|
|
|
|
|
</el-dialog>
|
|
|
|
|
</template>
|
|
|
|
|
|
|
|
|
|
<script setup lang="ts">
|
2025-08-21 10:06:20 +00:00
|
|
|
import { ref } from 'vue'
|
|
|
|
|
import { copyClick } from '@/utils/clipboard'
|
2025-08-21 09:14:36 +00:00
|
|
|
|
|
|
|
|
const mcp_servers = ref<string>('')
|
|
|
|
|
const dialogVisible = ref<boolean>(false)
|
2025-08-21 10:06:20 +00:00
|
|
|
const showIcon = ref<boolean>(false)
|
2025-08-21 09:14:36 +00:00
|
|
|
|
|
|
|
|
const close = () => {
|
|
|
|
|
dialogVisible.value = false
|
|
|
|
|
}
|
|
|
|
|
const open = (item: any) => {
|
|
|
|
|
mcp_servers.value = item.code
|
|
|
|
|
dialogVisible.value = true
|
|
|
|
|
}
|
|
|
|
|
|
2025-08-21 10:06:20 +00:00
|
|
|
defineExpose({ open })
|
2025-08-21 09:14:36 +00:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<style scoped lang="scss">
|
2025-08-21 10:06:20 +00:00
|
|
|
.mcp-config-dialog {
|
|
|
|
|
.copy-icon {
|
|
|
|
|
position: absolute;
|
|
|
|
|
top: 12px;
|
|
|
|
|
right: 12px;
|
|
|
|
|
box-shadow: 0px 4px 8px 0px rgba(31, 35, 41, 0.1);
|
|
|
|
|
z-index: 2;
|
|
|
|
|
}
|
|
|
|
|
.config-textarea {
|
|
|
|
|
:deep(.el-textarea__inner) {
|
|
|
|
|
color: var(--el-text-color-primary);
|
|
|
|
|
cursor: pointer;
|
|
|
|
|
}
|
|
|
|
|
}
|
2025-08-21 09:14:36 +00:00
|
|
|
}
|
|
|
|
|
</style>
|