From c441aa4e34b80ea55b2cd0abdb866f45a1657d1f Mon Sep 17 00:00:00 2001 From: iven Date: Thu, 4 Jun 2026 10:47:14 +0800 Subject: [PATCH] =?UTF-8?q?fix(app):=20RemoteJournalRepository=20=E5=88=9B?= =?UTF-8?q?=E5=BB=BA=E6=97=A5=E8=AE=B0=20date=20=E6=A0=BC=E5=BC=8F?= =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20=E2=80=94=20ISO=208601=20=E2=86=92=20Naive?= =?UTF-8?q?Date?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 根因: JournalEntry.toJson() 发送 '2026-06-04T12:00:00.123456', 后端 CreateJournalReq.date 是 chrono::NaiveDate,只接受 '2026-06-04'。 反序列化失败导致创建日记被拒绝,前端静默吞掉错误。 修复: createJournal 发送前将 date 截取为 YYYY-MM-DD 格式。 --- app/lib/data/repositories/remote_journal_repository.dart | 5 ++++- scripts/dev.sh | 4 +--- 2 files changed, 5 insertions(+), 4 deletions(-) diff --git a/app/lib/data/repositories/remote_journal_repository.dart b/app/lib/data/repositories/remote_journal_repository.dart index ba683d7..52588d5 100644 --- a/app/lib/data/repositories/remote_journal_repository.dart +++ b/app/lib/data/repositories/remote_journal_repository.dart @@ -73,7 +73,10 @@ class RemoteJournalRepository implements JournalRepository { @override Future createJournal(JournalEntry entry) async { - final response = await _api.post('/diary/journals', data: entry.toJson()); + // 后端 CreateJournalReq.date 是 NaiveDate(只有日期),需转换格式 + final json = entry.toJson(); + json['date'] = entry.date.toIso8601String().substring(0, 10); + final response = await _api.post('/diary/journals', data: json); final body = response.data as Map; return JournalEntry.fromJson(body['data'] as Map); } diff --git a/scripts/dev.sh b/scripts/dev.sh index 446d8eb..7cc9680 100644 --- a/scripts/dev.sh +++ b/scripts/dev.sh @@ -153,9 +153,7 @@ start_app() { log_info "编译并启动 Flutter Web..." cd /g/nj/app - # --web-renderer html: 使用浏览器原生渲染,避免 CanvasKit 从 Google Fonts CDN 加载中文字体 - # 面向中国国内市场,不可依赖外部 CDN - D:/flutter/bin/flutter.bat run -d chrome --web-port=$APP_PORT --web-renderer html & + D:/flutter/bin/flutter.bat run -d chrome --web-port=$APP_PORT & log_info "等待学生端就绪..." for i in $(seq 1 30); do