Эх сурвалжийг харах

增加版本刷新的逻辑

flyzto 1 долоо хоног өмнө
parent
commit
641e8d48d4

+ 17 - 0
web/apps/web-antd/src/views/match/data-sync/index.vue

@@ -65,6 +65,7 @@ const editClient = ref<SyncClient>();
 const editDeviceId = ref<number>();
 const editVisible = ref(false);
 const refreshTimer = ref<ReturnType<typeof setTimeout>>();
+const versionRefreshTimer = ref<ReturnType<typeof setTimeout>>();
 const deviceWindows = new Map<number, Window>();
 
 const columns = [
@@ -356,6 +357,13 @@ const clearRefreshTimer = () => {
   }
 };
 
+const clearVersionRefreshTimer = () => {
+  if (versionRefreshTimer.value) {
+    clearTimeout(versionRefreshTimer.value);
+    versionRefreshTimer.value = undefined;
+  }
+};
+
 const scheduleRefresh = () => {
   clearRefreshTimer();
   if (!autoRefresh.value) {
@@ -364,6 +372,11 @@ const scheduleRefresh = () => {
   refreshTimer.value = setTimeout(fetchClients, 30 * 1000);
 };
 
+const scheduleVersionRefresh = () => {
+  clearVersionRefreshTimer();
+  versionRefreshTimer.value = setTimeout(fetchLatestClientVersion, 60 * 1000);
+};
+
 const fetchClients = async () => {
   loading.value = true;
   try {
@@ -392,6 +405,9 @@ const fetchLatestClientVersion = async () => {
   catch (error) {
     console.error('Failed to fetch latest client version:', error);
   }
+  finally {
+    scheduleVersionRefresh();
+  }
 };
 
 const openEditClient = (client: SyncClientRow) => {
@@ -451,6 +467,7 @@ onMounted(() => {
 
 onUnmounted(() => {
   clearRefreshTimer();
+  clearVersionRefreshTimer();
 });
 </script>