diff --git a/src/components/PasswordDialog.vue b/src/components/PasswordDialog.vue index 8eae823..4801350 100644 --- a/src/components/PasswordDialog.vue +++ b/src/components/PasswordDialog.vue @@ -64,9 +64,10 @@ const handleVerify = async () => { if (res?.session_id) { localStorage.setItem('m9z_session_id', res.session_id) ElMessage.success('验证成功') - location.reload() visible.value = false emits('verified', res.session_id) + // 触发自定义事件,通知当前页面重新加载数据 + window.dispatchEvent(new CustomEvent('m9z:session-restored')) } else { hint.value = '密码错误,请重试' password.value = '' diff --git a/src/views/AlarmInformation/index.vue b/src/views/AlarmInformation/index.vue index 10484a6..74c7393 100644 --- a/src/views/AlarmInformation/index.vue +++ b/src/views/AlarmInformation/index.vue @@ -237,15 +237,27 @@ const goBack = () => { let timeInterval = null +// 处理 session 恢复后的重新加载 +const handleSessionRestored = () => { + console.log('Session 已恢复,重新加载数据') + getData() +} + onMounted(() => { updateTime() timeInterval = setInterval(updateTime, 1000) + + // 监听 session 恢复事件 + window.addEventListener('m9z:session-restored', handleSessionRestored) }) onUnmounted(() => { if (timeInterval) { clearInterval(timeInterval) } + + // 移除事件监听 + window.removeEventListener('m9z:session-restored', handleSessionRestored) }) diff --git a/src/views/AutomaticMode/index.vue b/src/views/AutomaticMode/index.vue index 50ae98d..0311cc6 100644 --- a/src/views/AutomaticMode/index.vue +++ b/src/views/AutomaticMode/index.vue @@ -553,15 +553,34 @@ const restartSystem = () => { let timeInterval = null +// 处理 session 恢复后的重新加载 +const handleSessionRestored = () => { + console.log('Session 已恢复,重新加载数据') + getTask() + RPC.post('/m9z/getDeviceMode', { comm_uid: commit_uid }).then(res => { + currentMode.value = res + }) + RPC.post('/m9z/getDeviceSunRiseTime', { comm_uid: commit_uid }).then(res => { + sunriseTime.value = res.Sunrise ? dayjs(res.Sunrise).format('HH:mm:ss') : '' + sunsetTime.value = res.Sunset ? dayjs(res.Sunset).format('HH:mm:ss') : '' + }) +} + onMounted(() => { updateTime() timeInterval = setInterval(updateTime, 1000) + + // 监听 session 恢复事件 + window.addEventListener('m9z:session-restored', handleSessionRestored) }) onUnmounted(() => { if (timeInterval) { clearInterval(timeInterval) } + + // 移除事件监听 + window.removeEventListener('m9z:session-restored', handleSessionRestored) }) const delMode = () => { diff --git a/src/views/HandleControl/index.vue b/src/views/HandleControl/index.vue index 0993fef..926f7c5 100644 --- a/src/views/HandleControl/index.vue +++ b/src/views/HandleControl/index.vue @@ -546,15 +546,27 @@ const changeMode = () => { let timeInterval = null +// 处理 session 恢复后的重新加载 +const handleSessionRestored = () => { + console.log('Session 已恢复,重新加载数据') + getInfo() +} + onMounted(() => { updateTime() timeInterval = setInterval(updateTime, 1000) + + // 监听 session 恢复事件 + window.addEventListener('m9z:session-restored', handleSessionRestored) }) onUnmounted(() => { if (timeInterval) { clearInterval(timeInterval) } + + // 移除事件监听 + window.removeEventListener('m9z:session-restored', handleSessionRestored) }) diff --git a/src/views/Menu/index.vue b/src/views/Menu/index.vue index e8d7181..80751c5 100644 --- a/src/views/Menu/index.vue +++ b/src/views/Menu/index.vue @@ -107,15 +107,33 @@ const handleCardClick = (key) => { let timeInterval = null +// 处理 session 恢复后的重新加载 +const handleSessionRestored = () => { + console.log('Session 已恢复,重新加载数据') + // Menu 页面重新获取设备信息 + RPC.post('/m9z/touchdisplay/getDeviceID').then(res => { + commit_uid.value = res.deviceId + version.value = res.version + sessionStorage.setItem('central_control_comm_uid', res.deviceId) + sessionStorage.setItem('central_control_meterAddr', res.meterAddr) + }) +} + onMounted(() => { updateTime() timeInterval = setInterval(updateTime, 1000) + + // 监听 session 恢复事件 + window.addEventListener('m9z:session-restored', handleSessionRestored) }) onUnmounted(() => { if (timeInterval) { clearInterval(timeInterval) } + + // 移除事件监听 + window.removeEventListener('m9z:session-restored', handleSessionRestored) }) diff --git a/src/views/Monitoring/index.vue b/src/views/Monitoring/index.vue index fa75d03..313e115 100644 --- a/src/views/Monitoring/index.vue +++ b/src/views/Monitoring/index.vue @@ -545,15 +545,27 @@ const restartSystem = () => { let timeInterval = null +// 处理 session 恢复后的重新加载 +const handleSessionRestored = () => { + console.log('Session 已恢复,重新加载数据') + getInfo() +} + onMounted(() => { updateTime() timeInterval = setInterval(updateTime, 1000) + + // 监听 session 恢复事件 + window.addEventListener('m9z:session-restored', handleSessionRestored) }) onUnmounted(() => { if (timeInterval) { clearInterval(timeInterval) } + + // 移除事件监听 + window.removeEventListener('m9z:session-restored', handleSessionRestored) }) diff --git a/src/views/ParamsConfig/index.vue b/src/views/ParamsConfig/index.vue index 1e3e074..17aed0f 100644 --- a/src/views/ParamsConfig/index.vue +++ b/src/views/ParamsConfig/index.vue @@ -633,15 +633,42 @@ const goBack = () => { let timeInterval = null +// 处理 session 恢复后的重新加载 +const handleSessionRestored = () => { + console.log('Session 已恢复,重新加载数据') + // 重新加载所有参数数据 + RPC.post('/m9z/getLgnLatData', { comm_uid: commit_uid }).then(res => { + formField.value.lat = String(res.lat) + formField.value.lgn = String(res.lgn) + formField.value.loc = res.loc + }) + RPC.post('/m9z/getSunRiseSet', { comm_uid: commit_uid }).then(res => { + formField.value.rise = res.rise + formField.value.set = res.set + }) + RPC.post('/m9z/getDeviceTime', { comm_uid: commit_uid }).then(res => { + deviceTime.value = res.deviceTime + }) + RPC.post('/m9z/getAllSubLoopParameter', { comm_uid: commit_uid }).then(res => { + subLoopParameter.value = res + }) +} + onMounted(() => { updateTime() timeInterval = setInterval(updateTime, 1000) + + // 监听 session 恢复事件 + window.addEventListener('m9z:session-restored', handleSessionRestored) }) onUnmounted(() => { if (timeInterval) { clearInterval(timeInterval) } + + // 移除事件监听 + window.removeEventListener('m9z:session-restored', handleSessionRestored) }) diff --git a/src/views/SystemSettings/index.vue b/src/views/SystemSettings/index.vue index 9f6c9a4..886bdfc 100644 --- a/src/views/SystemSettings/index.vue +++ b/src/views/SystemSettings/index.vue @@ -258,14 +258,29 @@ const goBack = () => { } let timeInterval = null + +// 处理 session 恢复后的重新加载 +const handleSessionRestored = () => { + console.log('Session 已恢复,重新加载数据') + getSystemTime() + getPasswordStatus() +} + onMounted(() => { updateTime() timeInterval = setInterval(updateTime, 1000) getSystemTime() getPasswordStatus() + + // 监听 session 恢复事件 + window.addEventListener('m9z:session-restored', handleSessionRestored) }) + onUnmounted(() => { if (timeInterval) clearInterval(timeInterval) + + // 移除事件监听 + window.removeEventListener('m9z:session-restored', handleSessionRestored) })