|
|
|
@ -34,6 +34,7 @@ class GoodsvipView extends GetView<GoodsvipController> { |
|
|
|
centerTitle: true, |
|
|
|
), |
|
|
|
body: Obx(() { |
|
|
|
final userTick = User.refreshTick.value; |
|
|
|
Widget content; |
|
|
|
if (controller.loading.value) { |
|
|
|
content = const Center(child: CircularProgressIndicator()); |
|
|
|
@ -44,12 +45,7 @@ class GoodsvipView extends GetView<GoodsvipController> { |
|
|
|
for (final g in controller.items) { |
|
|
|
grouped.putIfAbsent(g.usagetype, () => []).add(g); |
|
|
|
} |
|
|
|
final order = [ |
|
|
|
UsageType.Vip, |
|
|
|
UsageType.Translation, |
|
|
|
UsageType.Meet, |
|
|
|
UsageType.AI, |
|
|
|
]; |
|
|
|
final order = [UsageType.Vip, UsageType.Translation, UsageType.Meet]; |
|
|
|
final children = <Widget>[]; |
|
|
|
children.add(_buildFeaturesSection(isDarkMode)); |
|
|
|
children.add(SizedBox(height: 16.h)); |
|
|
|
@ -70,6 +66,7 @@ class GoodsvipView extends GetView<GoodsvipController> { |
|
|
|
|
|
|
|
children.add(_buildFooterSection(isDarkMode)); |
|
|
|
content = ListView( |
|
|
|
key: ValueKey(userTick), |
|
|
|
padding: EdgeInsets.all(16.w), |
|
|
|
children: children, |
|
|
|
); |
|
|
|
@ -282,7 +279,9 @@ class GoodsvipView extends GetView<GoodsvipController> { |
|
|
|
: DateTime.fromMillisecondsSinceEpoch(vipexptime * 1000); |
|
|
|
} |
|
|
|
// titleStr = 'Vip $viplv'; |
|
|
|
vipSubtitle = expiry != null ? _fmtDate(expiry) : '未激活'; |
|
|
|
vipSubtitle = expiry != null |
|
|
|
? '${'expiryLabel'.tr}${_fmtDate(expiry)}' |
|
|
|
: 'notActivated'.tr; |
|
|
|
} |
|
|
|
return Container( |
|
|
|
padding: EdgeInsets.all(16.w), |
|
|
|
|