chore: 增加主页积分操作与事件同步诊断日志

This commit is contained in:
JSR
2026-03-20 17:16:19 +08:00
parent 4f9b58e93b
commit d7460ec53f
2 changed files with 72 additions and 0 deletions
+46
View File
@@ -105,6 +105,18 @@ export const Home: React.FC<HomeProps> = ({ canEdit, isPortraitMode = false }) =
window.dispatchEvent(new CustomEvent("ss:data-updated", { detail: { category } }))
}
const logHome = (message: string, meta?: Record<string, unknown>) => {
try {
if (meta) {
console.info(`[Home] ${message}`, meta)
} else {
console.info(`[Home] ${message}`)
}
} catch {
void 0
}
}
const getSurname = (name: string) => {
if (!name) return ""
return name.charAt(0)
@@ -121,6 +133,7 @@ export const Home: React.FC<HomeProps> = ({ canEdit, isPortraitMode = false }) =
const fetchData = useCallback(async (silent = false) => {
if (!(window as any).api) return
const requestId = ++fetchRequestIdRef.current
logHome("fetchData:start", { requestId, silent })
if (!silent) setLoading(true)
const [stuRes, reaRes] = await Promise.all([
(window as any).api.queryStudents({}),
@@ -128,6 +141,15 @@ export const Home: React.FC<HomeProps> = ({ canEdit, isPortraitMode = false }) =
])
if (requestId !== fetchRequestIdRef.current) return
logHome("fetchData:response", {
requestId,
silent,
studentsSuccess: Boolean(stuRes?.success),
studentsCount: Array.isArray(stuRes?.data) ? stuRes.data.length : 0,
reasonsSuccess: Boolean(reaRes?.success),
reasonsCount: Array.isArray(reaRes?.data) ? reaRes.data.length : 0,
})
if (stuRes.success) {
const enrichedStudents = (stuRes.data as student[]).map((s) => ({
...s,
@@ -148,6 +170,12 @@ export const Home: React.FC<HomeProps> = ({ canEdit, isPortraitMode = false }) =
if (res.success) {
const latest = Array.isArray(res.data) && res.data.length > 0 ? (res.data[0] as scoreEvent) : null
setLatestEvent(latest)
logHome("fetchLatestEvent:response", {
hasLatest: Boolean(latest),
latestStudent: latest?.student_name,
latestDelta: latest?.delta,
latestUuid: latest?.uuid,
})
}
}, [])
@@ -156,6 +184,7 @@ export const Home: React.FC<HomeProps> = ({ canEdit, isPortraitMode = false }) =
fetchLatestEvent()
const onDataUpdated = (e: any) => {
const category = e?.detail?.category
logHome("event:ss:data-updated", { detail: e?.detail })
if (
category === "events" ||
category === "students" ||
@@ -448,12 +477,25 @@ export const Home: React.FC<HomeProps> = ({ canEdit, isPortraitMode = false }) =
}
setSubmitLoading(true)
logHome("performSubmit:start", {
student: student.name,
delta,
content,
localScoreBefore: student.score,
})
const res = await (window as any).api.createEvent({
student_name: student.name,
reason_content: content,
delta: delta,
})
logHome("performSubmit:createEvent:response", {
student: student.name,
delta,
success: Boolean(res?.success),
message: (res as any)?.message,
})
if (res.success) {
messageApi.success(
delta > 0
@@ -464,6 +506,10 @@ export const Home: React.FC<HomeProps> = ({ canEdit, isPortraitMode = false }) =
fetchData(true)
fetchLatestEvent()
emitDataUpdated("events")
logHome("performSubmit:afterSuccessRefreshDispatched", {
student: student.name,
delta,
})
} else {
messageApi.error(res.message || t("home.submitFailed"))
}