下载/主界面优化

This commit is contained in:
2026-07-22 22:26:40 +08:00
parent f7d3c13f35
commit 95a69b0017
16 changed files with 295 additions and 106 deletions
+33 -3
View File
@@ -272,9 +272,39 @@ export const useProxyStore = defineStore('proxy', () => {
return await invoke<KernelUpdateInfo>('proxy_check_kernel_update')
}
const updateKernel = async (mirrorPrefix: string = '') => {
await invoke('proxy_update_kernel', { mirrorPrefix })
await refreshKernel()
/**
* 更新内核:复用 installKernel 的完整进度事件机制(installing/installProgress/事件监听)
* 与 installKernel 的区别仅在于后端会先 stop mihomo(由调用方在前端控制),
* 后端 proxy_update_kernel 与 proxy_install_kernel 共用 install_kernel 实现
*/
const updateKernel = async (mirrorPrefix: string = ''): Promise<void> => {
if (installing.value) return
installing.value = true
installProgress.value = {
stage: 'downloading',
percent: 0,
downloadedBytes: 0,
totalBytes: null,
message: '准备开始下载...'
}
if (!progressUnlisten) {
progressUnlisten = await listen<InstallProgress>('kernel-install-progress', (e) => {
installProgress.value = e.payload
})
}
try {
await invoke('proxy_update_kernel', { mirrorPrefix })
await refreshKernel()
} catch (e) {
logger.error('内核更新失败: ' + e)
throw e
} finally {
installing.value = false
if (progressUnlisten) {
progressUnlisten()
progressUnlisten = null
}
}
}
/**