fix(client): 订单管理打开自动重拉列表 + 订单时间 UTC 显示转本地时区
- 打开订单管理 tab 时 invalidate 重建列表 provider(保留旧值展示不闪屏), 新下单/已删单不再需要手动刷新才同步 - license.dart 全部时间字段解析后 toLocal()(同 session.dart 惯例), 修复订单创建/支付时间显示为 UTC(慢 8 小时) Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
@@ -26,7 +26,7 @@ class LicenseInfo {
|
||||
maxDevices: (json['max_devices'] as num?)?.toInt() ??
|
||||
AppConstants.defaultMaxDevices,
|
||||
expiresAt: json['expires_at'] != null
|
||||
? DateTime.tryParse(json['expires_at'] as String)
|
||||
? DateTime.tryParse(json['expires_at'] as String)?.toLocal()
|
||||
: null,
|
||||
phase: json['phase'] as String? ?? 'normal',
|
||||
);
|
||||
@@ -139,10 +139,10 @@ class PurchaseStatusInfo {
|
||||
currency: json['currency'] as String? ?? 'CNY',
|
||||
amount: json['amount'] as String? ?? '',
|
||||
paidAt: json['paid_at'] != null
|
||||
? DateTime.tryParse(json['paid_at'] as String)
|
||||
? DateTime.tryParse(json['paid_at'] as String)?.toLocal()
|
||||
: null,
|
||||
expiresAt: json['expires_at'] != null
|
||||
? DateTime.tryParse(json['expires_at'] as String)
|
||||
? DateTime.tryParse(json['expires_at'] as String)?.toLocal()
|
||||
: null,
|
||||
);
|
||||
}
|
||||
@@ -191,14 +191,15 @@ class PurchaseRecord {
|
||||
status: json['status'] as String? ?? 'pending',
|
||||
payUrl: json['pay_url'] as String? ?? '',
|
||||
userName: json['user_name'] as String? ?? '',
|
||||
// 服务端时间为 UTC(RFC3339 Z),展示前转本地时区(同 session.dart 惯例)
|
||||
createdAt: json['created_at'] != null
|
||||
? DateTime.tryParse(json['created_at'] as String)
|
||||
? DateTime.tryParse(json['created_at'] as String)?.toLocal()
|
||||
: null,
|
||||
paidAt: json['paid_at'] != null
|
||||
? DateTime.tryParse(json['paid_at'] as String)
|
||||
? DateTime.tryParse(json['paid_at'] as String)?.toLocal()
|
||||
: null,
|
||||
renewedTo: json['renewed_to'] != null
|
||||
? DateTime.tryParse(json['renewed_to'] as String)
|
||||
? DateTime.tryParse(json['renewed_to'] as String)?.toLocal()
|
||||
: null,
|
||||
);
|
||||
}
|
||||
|
||||
@@ -79,6 +79,12 @@ class _LicenseOrdersTabState extends ConsumerState<LicenseOrdersTab> {
|
||||
void initState() {
|
||||
super.initState();
|
||||
_status = ref.read(purchaseListProvider.notifier).currentStatus;
|
||||
// 每次打开订单页主动重拉:provider 是全局单例,否则一直显示上次进入时的
|
||||
// 内存旧列表(新下的单/已删的单不同步,须手动刷新才一致)。
|
||||
// invalidate 重建保留旧值展示(copyWithPrevious),刷新期间不闪白屏。
|
||||
WidgetsBinding.instance.addPostFrameCallback((_) {
|
||||
if (mounted) ref.invalidate(purchaseListProvider);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
Reference in New Issue
Block a user