fix: 替换获取服务器时间接口

This commit is contained in:
TsMask
2025-04-29 17:09:41 +08:00
parent 13a18a7131
commit cb6ed51a4e
2 changed files with 22 additions and 33 deletions

View File

@@ -1,23 +1,15 @@
import { RESULT_CODE_SUCCESS } from '@/constants/result-constants';
import { request } from '@/plugins/http-fetch'; import { request } from '@/plugins/http-fetch';
/** /**
* 获取服务器时间 * 服务器时间
* @returns object * @returns object
*/ */
export async function getServerTime() { export async function getServerTime() {
// 发起请求 return request({
const result = await request({ url: `/time`,
url: `/api/rest/systemManagement/v1/elementType/OMC/objectType/time`,
method: 'GET', method: 'GET',
whithToken: false,
}); });
// 解析数据
if (result.code === RESULT_CODE_SUCCESS && result.data) {
return Object.assign(result, {
data: result.data.data,
});
}
return result;
} }
/** /**

View File

@@ -194,28 +194,25 @@ onMounted(() => {
}); });
// ==== 服务器时间显示 start // ==== 服务器时间显示 start
let serverTime = reactive({ let serverTimeInterval: any = null;
timestamp: 0, let serverTime = 0;
zone: 'UTC', // 时区 UTC
interval: null as any, // 定时器
});
// 获取服务器时间 // 获取服务器时间
function fnGetServerTime() { function fnGetServerTime() {
getServerTime().then(res => { getServerTime().then(res => {
if (res.code === RESULT_CODE_SUCCESS && res.data) { if (res.code === RESULT_CODE_SUCCESS && res.data) {
clearInterval(serverTimeInterval);
serverTimeInterval = null;
serverTime = res.data.timestamp;
// 用DOM直接修改
const serverTimeDom = document.getElementById('serverTimeDom'); const serverTimeDom = document.getElementById('serverTimeDom');
// 时区 serverTimeInterval = setInterval(() => {
const utcOffset = res.data.timeZone / 3600; serverTime += 1000;
serverTime.zone = `UTC ${utcOffset}`;
// 时间戳
serverTime.timestamp = parseInt(res.data.timestamp);
serverTime.interval = setInterval(() => {
serverTime.timestamp += 1000;
// serverTimeStr.value = parseDateToStr(serverTime.timestamp);
// 用DOM直接修改
if (serverTimeDom) { if (serverTimeDom) {
serverTimeDom.innerText = parseDateToStr(serverTime.timestamp); serverTimeDom.innerText = parseDateToStr(serverTime);
} else {
clearInterval(serverTimeInterval);
serverTimeInterval = null;
} }
}, 1000); }, 1000);
} }
@@ -226,21 +223,21 @@ function fnGetServerTime() {
document.addEventListener('visibilitychange', function () { document.addEventListener('visibilitychange', function () {
if (document.visibilityState == 'hidden') { if (document.visibilityState == 'hidden') {
//切离该页面时执行 //切离该页面时执行
clearInterval(serverTime.interval); clearInterval(serverTimeInterval);
serverTime.interval = null; serverTimeInterval = null;
} }
if (document.visibilityState == 'visible') { if (document.visibilityState == 'visible') {
//切换到该页面时执行 //切换到该页面时执行
clearInterval(serverTime.interval); clearInterval(serverTimeInterval);
serverTime.interval = null; serverTimeInterval = null;
fnGetServerTime(); fnGetServerTime();
useAlarmStore().fnGetActiveAlarmInfo(); useAlarmStore().fnGetActiveAlarmInfo();
} }
}); });
onUnmounted(() => { onUnmounted(() => {
clearInterval(serverTime.interval); clearInterval(serverTimeInterval);
serverTime.interval = null; serverTimeInterval = null;
}); });
// ==== 服务器时间显示 end // ==== 服务器时间显示 end
</script> </script>