From 5de4d4de5743050fdfcbb52b18b2a10c68f924de Mon Sep 17 00:00:00 2001 From: liyi Date: Mon, 4 Aug 2025 15:24:40 +0800 Subject: [PATCH] =?UTF-8?q?fix:=E5=A2=9E=E5=8A=A0=E4=BA=8B=E4=BB=B6?= =?UTF-8?q?=E6=98=B5=E7=A7=B0=E4=B8=AD=E7=9A=84id=E4=B8=BA=E5=BD=95?= =?UTF-8?q?=E5=85=A5=E6=97=B6=E7=9A=84=E8=AE=B0=E5=BD=95=E5=A7=93=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../doorLockLog/doorLockLog_page.dart | 66 ++++++++++++++++++- 1 file changed, 65 insertions(+), 1 deletion(-) diff --git a/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart b/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart index 51b74482..e84e8cba 100755 --- a/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart +++ b/lib/main/lockDetail/doorLockLog/doorLockLog_page.dart @@ -1,7 +1,9 @@ +import 'package:flustars/flustars.dart'; import 'package:flutter/material.dart'; import 'package:flutter_easyloading/flutter_easyloading.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:get/get.dart'; +import 'package:intl/intl.dart'; import 'package:star_lock/appRouters.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_entity.dart'; import 'package:star_lock/main/lockDetail/doorLockLog/doorLockLog_logic.dart'; @@ -295,6 +297,68 @@ class _DoorLockLogPageState extends State with RouteAware { ); } + String formatTimestampToHHmm(int timestampMs) { + // 1. 将毫秒时间戳转换为秒(DateTime 需要秒级时间戳) + int timestampSec = timestampMs ~/ 1000; + + // 2. 创建 DateTime 对象 + DateTime dateTime = DateTime.fromMillisecondsSinceEpoch(timestampMs); + + // 3. 使用 DateFormat 格式化为 "HH:mm" + DateFormat formatter = DateFormat('HH:mm'); + return formatter.format(dateTime); + } + + String _buildIDByType(DoorLockLogDataItem item) { + final recordType = item.recordType; + switch (recordType) { + case 10: + return '${formatTimestampToHHmm(item.operateDate!)} ' + + '指纹'.tr + + '开锁'.tr + + '(ID:${item.username})'; + case 20: + return '${formatTimestampToHHmm(item.operateDate!)} ' + + '密码'.tr + + '开锁'.tr + + '(ID:${item.username})'; + case 30: + return '${formatTimestampToHHmm(item.operateDate!)} ' + + '卡片'.tr + + '开锁'.tr + + '(ID:${item.username})'; + case 40: + return item.recordStr ?? ''; + case 50: + return '${formatTimestampToHHmm(item.operateDate!)} ' + + '组合模式'.tr + + '开锁'.tr + + '(ID:${item.username})'; + case 160: + return '${formatTimestampToHHmm(item.operateDate!)} ' + + '人脸'.tr + + '开锁'.tr + + '(ID:${item.username})'; + case 190: + return '${formatTimestampToHHmm(item.operateDate!)} ' + + '胁迫指纹'.tr + + '开锁'.tr + + '(ID:${item.username})'; + case 200: + return '${formatTimestampToHHmm(item.operateDate!)} ' + + '胁迫密码'.tr + + '开锁'.tr + + '(ID:${item.username})'; + case 210: + return '${formatTimestampToHHmm(item.operateDate!)} ' + + '胁迫卡片'.tr + + '开锁'.tr + + '(ID:${item.username})'; + default: + return item.recordStr ?? ''; + } + } + TimelineTileBuilder _timelineBuilderWidget() { return TimelineTileBuilder.fromStyle( contentsAlign: ContentsAlign.basic, @@ -315,7 +379,7 @@ class _DoorLockLogPageState extends State with RouteAware { crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - timelineData.recordStr ?? '', + _buildIDByType(timelineData), textAlign: TextAlign.left, style: TextStyle( color: Colors.black,