fix(client): 设备列表离线时间改用 last_seen「最后在线」(原 last_login 不准)
设备列表对离线设备显示「最后登录 X 前」,取的是 last_login(会话创建那一刻)。一直在线 的设备断开后会错显成登录时间(如 13 小时前),与实际「最后活跃」不符。改用 last_seen (连接/用量上报/~15s 会话轮询都会刷新),标签相应改为「最后在线」/「Last online」。 Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
@@ -98,7 +98,7 @@ abstract class AppText {
|
|||||||
// 设备管理(P6):在线状态 / 操作 / 危险确认
|
// 设备管理(P6):在线状态 / 操作 / 危险确认
|
||||||
String get devOnline;
|
String get devOnline;
|
||||||
String get devOffline;
|
String get devOffline;
|
||||||
String get devLastLogin; // 「最后登录」前缀
|
String get devLastOnline; // 「最后在线」前缀(离线设备,取 last_seen)
|
||||||
String get devNeverLogin;
|
String get devNeverLogin;
|
||||||
String get devForceLogout;
|
String get devForceLogout;
|
||||||
String get devClearLogin;
|
String get devClearLogin;
|
||||||
|
|||||||
@@ -142,7 +142,7 @@ class StringsEn extends AppText {
|
|||||||
@override
|
@override
|
||||||
String get devOffline => 'Offline';
|
String get devOffline => 'Offline';
|
||||||
@override
|
@override
|
||||||
String get devLastLogin => 'Last login';
|
String get devLastOnline => 'Last online';
|
||||||
@override
|
@override
|
||||||
String get devNeverLogin => 'Never logged in';
|
String get devNeverLogin => 'Never logged in';
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -141,7 +141,7 @@ class StringsZh extends AppText {
|
|||||||
@override
|
@override
|
||||||
String get devOffline => '离线';
|
String get devOffline => '离线';
|
||||||
@override
|
@override
|
||||||
String get devLastLogin => '最后登录';
|
String get devLastOnline => '最后在线';
|
||||||
@override
|
@override
|
||||||
String get devNeverLogin => '从未登录';
|
String get devNeverLogin => '从未登录';
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -185,7 +185,9 @@ class DevicesScreen extends ConsumerWidget {
|
|||||||
final name = d.name.isNotEmpty ? d.name : d.platformKind.label;
|
final name = d.name.isNotEmpty ? d.name : d.platformKind.label;
|
||||||
final subParts = <String>[d.platformKind.label];
|
final subParts = <String>[d.platformKind.label];
|
||||||
if (d.clientVersion.isNotEmpty) subParts.add(d.clientVersion);
|
if (d.clientVersion.isNotEmpty) subParts.add(d.clientVersion);
|
||||||
if (!d.online) subParts.add('${t.devLastLogin} ${_rel(d.lastLogin)}');
|
// 离线设备显示「最后在线」——用 last_seen(连接/用量/~15s 会话轮询都会刷新),
|
||||||
|
// 而非 last_login(仅登录那一刻);否则一直在线的设备会错显成登录时间(如 13 小时前)。
|
||||||
|
if (!d.online) subParts.add('${t.devLastOnline} ${_rel(d.lastSeen)}');
|
||||||
|
|
||||||
return Container(
|
return Container(
|
||||||
decoration: BoxDecoration(border: divider ? Border(bottom: BorderSide(color: c.border)) : null),
|
decoration: BoxDecoration(border: divider ? Border(bottom: BorderSide(color: c.border)) : null),
|
||||||
|
|||||||
Reference in New Issue
Block a user