mirror of
https://github.com/fawney19/Aether.git
synced 2026-09-12 14:10:19 +08:00
feat(models): add external catalog proxy selection
This commit is contained in:
@@ -36,6 +36,7 @@
|
||||
>
|
||||
<ListChecks class="w-3.5 h-3.5" />
|
||||
</Button>
|
||||
<ExternalModelsAccessControl />
|
||||
<Button
|
||||
variant="ghost"
|
||||
size="icon"
|
||||
@@ -691,6 +692,7 @@ import {
|
||||
} from 'lucide-vue-next'
|
||||
import ModelDetailDrawer from '@/features/models/components/ModelDetailDrawer.vue'
|
||||
import GlobalModelFormDialog from '@/features/models/components/GlobalModelFormDialog.vue'
|
||||
import ExternalModelsAccessControl from '@/features/models/components/ExternalModelsAccessControl.vue'
|
||||
import ProviderModelFormDialog from '@/features/providers/components/ProviderModelFormDialog.vue'
|
||||
import type { Model } from '@/api/endpoints'
|
||||
import { useToast } from '@/composables/useToast'
|
||||
|
||||
@@ -103,6 +103,7 @@ import { useToast } from '@/composables/useToast'
|
||||
import { useConfirm } from '@/composables/useConfirm'
|
||||
import { useClipboard } from '@/composables/useClipboard'
|
||||
import { useI18n } from '@/i18n'
|
||||
import { clearModelsDevCache } from '@/api/models-dev'
|
||||
import {
|
||||
proxyNodesApi,
|
||||
type ProxyNode,
|
||||
@@ -117,6 +118,7 @@ import {
|
||||
import { Card } from '@/components/ui'
|
||||
import { parseApiError } from '@/utils/errorParser'
|
||||
import { parseBatchProxyNodeInput } from './proxy-node-batch'
|
||||
import { proxyNodeDeleteSuccessMessage } from './proxy-node-delete-feedback'
|
||||
import ProxyNodeBatchUpgradeDialog from './components/ProxyNodeBatchUpgradeDialog.vue'
|
||||
import ProxyNodeEventsDialog from './components/ProxyNodeEventsDialog.vue'
|
||||
import ProxyNodeFormDialog from './components/ProxyNodeFormDialog.vue'
|
||||
@@ -597,12 +599,14 @@ async function handleDelete(node: ProxyNode) {
|
||||
|
||||
try {
|
||||
const result = await proxyNodesApi.deleteProxyNode(node.id)
|
||||
await store.fetchNodes()
|
||||
if (result.cleared_system_proxy) {
|
||||
success(legacyT('代理节点已删除,系统默认代理已自动清除'))
|
||||
} else {
|
||||
success(legacyT('代理节点已删除'))
|
||||
if (result.cleared_external_models_proxy) {
|
||||
clearModelsDevCache()
|
||||
}
|
||||
await store.fetchNodes()
|
||||
success(legacyT(proxyNodeDeleteSuccessMessage(
|
||||
result.cleared_system_proxy,
|
||||
result.cleared_external_models_proxy,
|
||||
)))
|
||||
} catch (err: unknown) {
|
||||
toastError(parseApiError(err, legacyT('删除失败')))
|
||||
}
|
||||
|
||||
@@ -0,0 +1,36 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
import { proxyNodeDeleteSuccessMessage } from '../proxy-node-delete-feedback'
|
||||
|
||||
describe('proxyNodeDeleteSuccessMessage', () => {
|
||||
it.each([
|
||||
{
|
||||
clearedSystemProxy: true,
|
||||
clearedExternalModelsProxy: true,
|
||||
expected: '代理节点已删除,系统默认代理和外部模型目录代理已自动清除',
|
||||
},
|
||||
{
|
||||
clearedSystemProxy: true,
|
||||
clearedExternalModelsProxy: false,
|
||||
expected: '代理节点已删除,系统默认代理已自动清除',
|
||||
},
|
||||
{
|
||||
clearedSystemProxy: false,
|
||||
clearedExternalModelsProxy: true,
|
||||
expected: '代理节点已删除,外部模型目录代理已自动清除',
|
||||
},
|
||||
{
|
||||
clearedSystemProxy: false,
|
||||
clearedExternalModelsProxy: false,
|
||||
expected: '代理节点已删除',
|
||||
},
|
||||
])(
|
||||
'returns the coordinated message for system=$clearedSystemProxy and external=$clearedExternalModelsProxy',
|
||||
({ clearedSystemProxy, clearedExternalModelsProxy, expected }) => {
|
||||
expect(proxyNodeDeleteSuccessMessage(
|
||||
clearedSystemProxy,
|
||||
clearedExternalModelsProxy,
|
||||
)).toBe(expected)
|
||||
},
|
||||
)
|
||||
})
|
||||
@@ -0,0 +1,15 @@
|
||||
export function proxyNodeDeleteSuccessMessage(
|
||||
clearedSystemProxy: boolean,
|
||||
clearedExternalModelsProxy: boolean,
|
||||
): string {
|
||||
if (clearedSystemProxy && clearedExternalModelsProxy) {
|
||||
return '代理节点已删除,系统默认代理和外部模型目录代理已自动清除'
|
||||
}
|
||||
if (clearedSystemProxy) {
|
||||
return '代理节点已删除,系统默认代理已自动清除'
|
||||
}
|
||||
if (clearedExternalModelsProxy) {
|
||||
return '代理节点已删除,外部模型目录代理已自动清除'
|
||||
}
|
||||
return '代理节点已删除'
|
||||
}
|
||||
Reference in New Issue
Block a user