Skip to content
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
22 changes: 20 additions & 2 deletions src/renderer/src/components/settings/ModelProviderSettings.vue
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
>
<template #item="{ element: provider }">
<div
:data-provider-id="provider.id"
:class="[
'flex flex-row hover:bg-accent items-center gap-2 rounded-lg p-2 cursor-pointer group',
route.params?.providerId === provider.id
Expand Down Expand Up @@ -68,7 +69,7 @@
</template>

<script setup lang="ts">
import { computed, ref } from 'vue'
import { computed, ref, nextTick } from 'vue'
import { useSettingsStore } from '@/stores/settings'
import { useRoute, useRouter } from 'vue-router'
import ModelProviderSettingsDetail from './ModelProviderSettingsDetail.vue'
Expand Down Expand Up @@ -110,10 +111,27 @@ const setActiveProvider = (providerId: string) => {
})
}

const scrollToProvider = (providerId: string) => {
const element = document.querySelector(`[data-provider-id="${providerId}"]`)
if (element) {
element.scrollIntoView({
behavior: 'smooth',
block: 'center'
})
}
}

const toggleProviderStatus = async (provider: LLM_PROVIDER) => {
await settingsStore.updateProviderStatus(provider.id, !provider.enable)
const willEnable = !provider.enable
await settingsStore.updateProviderStatus(provider.id, willEnable)
// 切换状态后,同时打开该服务商的详情页面
setActiveProvider(provider.id)

// 仅在开启服务商时滚动
if (willEnable) {
await nextTick()
scrollToProvider(provider.id)
}
}

const activeProvider = computed(() => {
Expand Down