修复初始化轮询生命周期清理
Some checks are pending
Security Checks / security (push) Waiting to run

This commit is contained in:
smail 2026-08-30 21:25:01 +08:00
parent 492d511551
commit 48243199b9

View File

@ -1,6 +1,6 @@
import './Setup.js'
import {computed, reactive, ref} from 'vue'
import {computed, onUnmounted, reactive, ref} from 'vue'
import {ElMessage} from 'element-plus'
@ -379,6 +379,8 @@ export function usePage() {
const buildFinalURL = (sslData) => buildSetupFinalURL(sslData, domainSettings.web_domain)
let statusTimer = null
let dnsParamsTimer = null
let setupViewUnmounted = false
let statusCheckRunning = false
let statusCheckStartedAt = 0
const statusCheckTimeout = 10 * 60 * 1000
@ -392,6 +394,19 @@ export function usePage() {
statusCheckStartedAt = 0
}
const stopDNSParamsPolling = () => {
if (dnsParamsTimer !== null) {
window.clearTimeout(dnsParamsTimer)
dnsParamsTimer = null
}
}
onUnmounted(() => {
setupViewUnmounted = true
stopStatusCheck()
stopDNSParamsPolling()
})
const navigateToFormalService = (sslData) => {
stopStatusCheck()
fullscreenLoading.value = false
@ -473,11 +488,18 @@ export function usePage() {
return setupRequest({"action": "getParams", "step": "ssl"}).then((res) => {
assertSetupSuccess(res)
sslSettings.paramsList = Array.isArray(res.data) ? res.data : []
if (dnsChecking.value && sslSettings.paramsList.length === 0) {
setTimeout(getSSLDNSParams, 1000)
if (!setupViewUnmounted && dnsChecking.value && sslSettings.paramsList.length === 0) {
stopDNSParamsPolling()
dnsParamsTimer = window.setTimeout(() => {
dnsParamsTimer = null
getSSLDNSParams()
}, 1000)
} else if (sslSettings.paramsList.length > 0 || !dnsChecking.value) {
stopDNSParamsPolling()
}
return res
}).catch((error) => {
stopDNSParamsPolling()
showSetupError(error)
return null
})