|
@@ -30,6 +30,7 @@ class DiscountPage extends BasePage<DiscountController> {
|
|
|
return Obx(() {
|
|
return Obx(() {
|
|
|
bool isSelectFreeItem = controller.currentSelectedStoreItem.value?.freeTrialName != null;
|
|
bool isSelectFreeItem = controller.currentSelectedStoreItem.value?.freeTrialName != null;
|
|
|
// 如果有免费试用,则使用免费试用,否则使用第一个
|
|
// 如果有免费试用,则使用免费试用,否则使用第一个
|
|
|
|
|
+ bool canUseFreeTrailPlan = controller.canUseFreeTrailPlan.value;
|
|
|
StoreItem? freeItem = controller.storeItems.firstWhereOrNull((element) => element.freeTrialName != null) ?? controller.storeItems.firstOrNull;
|
|
StoreItem? freeItem = controller.storeItems.firstWhereOrNull((element) => element.freeTrialName != null) ?? controller.storeItems.firstOrNull;
|
|
|
return Scaffold(
|
|
return Scaffold(
|
|
|
backgroundColor: "#05050D".color,
|
|
backgroundColor: "#05050D".color,
|
|
@@ -49,6 +50,7 @@ class DiscountPage extends BasePage<DiscountController> {
|
|
|
if (freeItem != null)
|
|
if (freeItem != null)
|
|
|
_DiscountFreeTrialSpecialRow(
|
|
_DiscountFreeTrialSpecialRow(
|
|
|
item: freeItem,
|
|
item: freeItem,
|
|
|
|
|
+ canUseFreeTrailPlan: canUseFreeTrailPlan,
|
|
|
isSelected: controller.currentSelectedStoreItem.value?.id == freeItem.id,
|
|
isSelected: controller.currentSelectedStoreItem.value?.id == freeItem.id,
|
|
|
onSelect: (title) {
|
|
onSelect: (title) {
|
|
|
controller.currentSelectedStoreItem.value = freeItem;
|
|
controller.currentSelectedStoreItem.value = freeItem;
|
|
@@ -320,26 +322,32 @@ class _OtherPlansSection extends StatelessWidget {
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
|
Widget build(BuildContext context) {
|
|
Widget build(BuildContext context) {
|
|
|
- return Column(
|
|
|
|
|
- crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
- children: [
|
|
|
|
|
- ...items.map((item) => Padding(
|
|
|
|
|
- padding: EdgeInsets.only(bottom: 12.h),
|
|
|
|
|
- child: _DiscountFreeTrialSpecialRow(
|
|
|
|
|
- item: item,
|
|
|
|
|
- isSelected: controller.currentSelectedStoreItem.value?.id == item.id,
|
|
|
|
|
- onSelect: (item) {
|
|
|
|
|
- controller.currentSelectedStoreItem.value = item;
|
|
|
|
|
- },
|
|
|
|
|
- ),
|
|
|
|
|
- )),
|
|
|
|
|
- ],
|
|
|
|
|
- );
|
|
|
|
|
|
|
+ return Obx(() {
|
|
|
|
|
+ return Column(
|
|
|
|
|
+ crossAxisAlignment: CrossAxisAlignment.center,
|
|
|
|
|
+ children: [
|
|
|
|
|
+ ...items.map((item) =>
|
|
|
|
|
+ Padding(
|
|
|
|
|
+ padding: EdgeInsets.only(bottom: 12.h),
|
|
|
|
|
+ child: _DiscountFreeTrialSpecialRow(
|
|
|
|
|
+ item: item,
|
|
|
|
|
+ canUseFreeTrailPlan: controller.canUseFreeTrailPlan.value,
|
|
|
|
|
+ isSelected: controller.currentSelectedStoreItem.value?.id ==
|
|
|
|
|
+ item.id,
|
|
|
|
|
+ onSelect: (item) {
|
|
|
|
|
+ controller.currentSelectedStoreItem.value = item;
|
|
|
|
|
+ },
|
|
|
|
|
+ ),
|
|
|
|
|
+ )),
|
|
|
|
|
+ ],
|
|
|
|
|
+ );
|
|
|
|
|
+ });
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
class _DiscountFreeTrialSpecialRow extends StatelessWidget {
|
|
class _DiscountFreeTrialSpecialRow extends StatelessWidget {
|
|
|
final StoreItem item;
|
|
final StoreItem item;
|
|
|
|
|
+ final bool canUseFreeTrailPlan;
|
|
|
final bool isSelected;
|
|
final bool isSelected;
|
|
|
final Function(StoreItem) onSelect;
|
|
final Function(StoreItem) onSelect;
|
|
|
|
|
|
|
@@ -347,7 +355,7 @@ class _DiscountFreeTrialSpecialRow extends StatelessWidget {
|
|
|
return item.freeTrialName != null;
|
|
return item.freeTrialName != null;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- const _DiscountFreeTrialSpecialRow({Key? key, required this.item, required this.isSelected, required this.onSelect}) : super(key: key);
|
|
|
|
|
|
|
+ const _DiscountFreeTrialSpecialRow({Key? key, required this.item, required this.canUseFreeTrailPlan, required this.isSelected, required this.onSelect}) : super(key: key);
|
|
|
|
|
|
|
|
@override
|
|
@override
|
|
|
Widget build(BuildContext context) {
|
|
Widget build(BuildContext context) {
|