fix: 打卡后即时推送 + 设置页展示自动同步失败原因

This commit is contained in:
root
2026-10-16 15:09:03 +08:00
parent aaf8ea602c
commit 04ae06ec1c
8 changed files with 50 additions and 34 deletions
+8 -1
View File
@@ -1,5 +1,6 @@
// 多端同步引擎:全量差异对比 + 记录级新者胜 + 自然键去重 + 外键重映射 + 软删除墓碑
// 实时性:本地变更 3 秒内推送;服务端变更通过 SSE 秒级通知其他端;60 秒轮询兜底
import { ref } from 'vue'
import Dexie, { liveQuery } from 'dexie'
import { db } from '../db/schema'
import { getSetting, setSetting } from '../db/repo'
@@ -7,6 +8,9 @@ import { getCloudCreds } from '../db/auth'
import { nowLocalISO } from '../lib/date'
import { notifyAttendanceChanged } from '../lib/bus'
// 最近一次自动同步的错误(设置页展示用)
export const syncLastError = ref('')
const TABLES = ['project', 'work_log', 'log_item', 'attendance', 'weekly_note', 'setting', 'memo', 'credential', 'transaction']
// 本地敏感或临时性的设置不参与同步
@@ -150,7 +154,10 @@ export async function autoSyncNow(): Promise<void> {
try {
if (!(await isSyncConfigured())) return
await runSync(await loadSyncConfig())
} catch { /* 自动同步静默失败,等待下次触发 */ }
syncLastError.value = ''
} catch (e) {
syncLastError.value = e instanceof Error ? e.message : String(e)
}
}
// 实时触发:本地任何数据变更 3 秒后自动推送(Dexie 4 核心 liveQuery,跨全部业务表)