From a15b2bd8ce992a67eb01795bdc15c102f4aff8c6 Mon Sep 17 00:00:00 2001 From: AoXuan Date: Sun, 14 Sep 2025 01:24:31 +0800 Subject: [PATCH] =?UTF-8?q?refactor:=20=E4=BC=98=E5=8C=96=E9=95=9C?= =?UTF-8?q?=E5=83=8F=E6=BA=90=E5=8A=A0=E8=BD=BD=E9=80=BB=E8=BE=91=EF=BC=8C?= =?UTF-8?q?=E4=BD=BF=E7=94=A8=E4=BA=91=E7=AB=AF=E6=95=B0=E6=8D=AE=E6=9B=BF?= =?UTF-8?q?=E4=BB=A3=E9=9D=99=E6=80=81=E9=85=8D=E7=BD=AE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../components/initialization/BackendStep.vue | 32 ++++++++++++------- .../initialization/DependenciesStep.vue | 18 +++++++---- .../components/initialization/PythonStep.vue | 18 +++++++---- 3 files changed, 42 insertions(+), 26 deletions(-) diff --git a/frontend/src/components/initialization/BackendStep.vue b/frontend/src/components/initialization/BackendStep.vue index 16562a1..45dee0d 100644 --- a/frontend/src/components/initialization/BackendStep.vue +++ b/frontend/src/components/initialization/BackendStep.vue @@ -142,22 +142,20 @@ import { ref, onMounted, computed } from 'vue' import { getConfig, saveConfig } from '@/utils/config' import { - GIT_MIRRORS, - getOfficialMirrors, - getMirrorMirrors, sortMirrorsBySpeedAndRecommendation, type MirrorConfig } from '@/config/mirrors' +import { mirrorManager } from '@/utils/mirrorManager' defineProps<{ backendExists: boolean }>() -const gitMirrors = ref(GIT_MIRRORS) +const gitMirrors = ref([]) // 按类型分组的镜像源 -const officialMirrors = computed(() => getOfficialMirrors('git')) -const mirrorMirrors = computed(() => getMirrorMirrors('git')) +const officialMirrors = computed(() => gitMirrors.value.filter(m => m.type === 'official')) +const mirrorMirrors = computed(() => gitMirrors.value.filter(m => m.type === 'mirror')) // 按速度和推荐排序的镜像源 const sortedOfficialMirrors = computed(() => sortMirrorsBySpeedAndRecommendation(officialMirrors.value)) @@ -174,18 +172,26 @@ const addingCustomMirror = ref(false) // 加载配置中的镜像源选择 async function loadMirrorConfig() { try { + // 从镜像管理器获取最新的Git镜像源配置(包含云端数据) + const cloudMirrors = mirrorManager.getMirrors('git') + const config = await getConfig() selectedGitMirror.value = config.selectedGitMirror || 'ghproxy_edgeone' // 加载自定义镜像源 if (config.customGitMirrors && Array.isArray(config.customGitMirrors)) { customMirrors.value = config.customGitMirrors - // 将自定义镜像源添加到gitMirrors中 - gitMirrors.value = [...GIT_MIRRORS, ...customMirrors.value] + // 将云端镜像源和自定义镜像源合并 + gitMirrors.value = [...cloudMirrors, ...customMirrors.value] + } else { + // 只使用云端镜像源 + gitMirrors.value = [...cloudMirrors] } console.log('Git镜像源配置已加载:', selectedGitMirror.value) + console.log('云端镜像源已加载:', cloudMirrors.length, '个') console.log('自定义镜像源已加载:', customMirrors.value.length, '个') + console.log('云端Git镜像源详情:', cloudMirrors.map(m => ({ name: m.name, key: m.key }))) } catch (error) { console.warn('加载Git镜像源配置失败:', error) } @@ -321,8 +327,9 @@ async function addCustomMirror() { // 添加到自定义镜像源列表 customMirrors.value.push(newMirror) - // 更新完整的镜像源列表 - gitMirrors.value = [...GIT_MIRRORS, ...customMirrors.value] + // 更新完整的镜像源列表(云端 + 自定义) + const cloudMirrors = mirrorManager.getMirrors('git') + gitMirrors.value = [...cloudMirrors, ...customMirrors.value] // 自动选择新添加的镜像源 selectedGitMirror.value = customKey @@ -366,8 +373,9 @@ async function removeCustomMirror(key: string) { // 从自定义镜像源列表中移除 customMirrors.value = customMirrors.value.filter(m => m.key !== key) - // 更新完整的镜像源列表 - gitMirrors.value = [...GIT_MIRRORS, ...customMirrors.value] + // 更新完整的镜像源列表(云端 + 自定义) + const cloudMirrors = mirrorManager.getMirrors('git') + gitMirrors.value = [...cloudMirrors, ...customMirrors.value] // 如果当前选中的是被删除的镜像源,切换到默认镜像源 if (selectedGitMirror.value === key) { diff --git a/frontend/src/components/initialization/DependenciesStep.vue b/frontend/src/components/initialization/DependenciesStep.vue index 65bf215..af8fcd6 100644 --- a/frontend/src/components/initialization/DependenciesStep.vue +++ b/frontend/src/components/initialization/DependenciesStep.vue @@ -81,18 +81,16 @@ import { ref, onMounted, computed } from 'vue' import { getConfig, saveConfig } from '@/utils/config' import { - PIP_MIRRORS, - getOfficialMirrors, - getMirrorMirrors, sortMirrorsBySpeedAndRecommendation, type MirrorConfig, } from '@/config/mirrors' +import { mirrorManager } from '@/utils/mirrorManager' -const pipMirrors = ref(PIP_MIRRORS) +const pipMirrors = ref([]) // 按类型分组的镜像源 -const officialMirrors = computed(() => getOfficialMirrors('pip')) -const mirrorMirrors = computed(() => getMirrorMirrors('pip')) +const officialMirrors = computed(() => pipMirrors.value.filter(m => m.type === 'official')) +const mirrorMirrors = computed(() => pipMirrors.value.filter(m => m.type === 'mirror')) // 按速度和推荐排序的镜像源 const sortedOfficialMirrors = computed(() => @@ -106,9 +104,15 @@ const testingPipSpeed = ref(false) // 加载配置中的镜像源选择 async function loadMirrorConfig() { try { + // 从镜像管理器获取最新的pip镜像源配置(包含云端数据) + const cloudMirrors = mirrorManager.getMirrors('pip') + pipMirrors.value = [...cloudMirrors] + const config = await getConfig() - selectedPipMirror.value = config.selectedPipMirror + selectedPipMirror.value = config.selectedPipMirror || 'aliyun' console.log('pip镜像源配置已加载:', selectedPipMirror.value) + console.log('云端pip镜像源已加载:', cloudMirrors.length, '个') + console.log('云端pip镜像源详情:', cloudMirrors.map(m => ({ name: m.name, key: m.key }))) } catch (error) { console.warn('加载pip镜像源配置失败:', error) } diff --git a/frontend/src/components/initialization/PythonStep.vue b/frontend/src/components/initialization/PythonStep.vue index fa8a8f6..8e17b77 100644 --- a/frontend/src/components/initialization/PythonStep.vue +++ b/frontend/src/components/initialization/PythonStep.vue @@ -90,22 +90,20 @@ import { ref, onMounted, computed } from 'vue' import { getConfig, saveConfig } from '@/utils/config' import { - PYTHON_MIRRORS, - getOfficialMirrors, - getMirrorMirrors, sortMirrorsBySpeedAndRecommendation, type MirrorConfig } from '@/config/mirrors' +import { mirrorManager } from '@/utils/mirrorManager' const props = defineProps<{ pythonInstalled: boolean }>() -const pythonMirrors = ref(PYTHON_MIRRORS) +const pythonMirrors = ref([]) // 按类型分组的镜像源 -const officialMirrors = computed(() => getOfficialMirrors('python')) -const mirrorMirrors = computed(() => getMirrorMirrors('python')) +const officialMirrors = computed(() => pythonMirrors.value.filter(m => m.type === 'official')) +const mirrorMirrors = computed(() => pythonMirrors.value.filter(m => m.type === 'mirror')) // 按速度和推荐排序的镜像源 const sortedOfficialMirrors = computed(() => sortMirrorsBySpeedAndRecommendation(officialMirrors.value)) @@ -118,9 +116,15 @@ const reinstalling = ref(false) // 加载配置中的镜像源选择 async function loadMirrorConfig() { try { + // 从镜像管理器获取最新的Python镜像源配置(包含云端数据) + const cloudMirrors = mirrorManager.getMirrors('python') + pythonMirrors.value = [...cloudMirrors] + const config = await getConfig() - selectedPythonMirror.value = config.selectedPythonMirror + selectedPythonMirror.value = config.selectedPythonMirror || 'aliyun' console.log('Python镜像源配置已加载:', selectedPythonMirror.value) + console.log('云端Python镜像源已加载:', cloudMirrors.length, '个') + console.log('云端Python镜像源详情:', cloudMirrors.map(m => ({ name: m.name, key: m.key }))) } catch (error) { console.warn('加载Python镜像源配置失败:', error) }