import 'package:get/get.dart'; import '../../../routes/app_routes.dart'; class GoodsItem { final String id; final String title; final String description; final double price; final String productId; GoodsItem({ required this.id, required this.title, required this.description, required this.price, required this.productId, }); } class GoodsvipController extends GetxController { final RxList items = [].obs; final RxBool loading = false.obs; final RxString error = ''.obs; @override void onInit() { super.onInit(); _loadProducts(); } Future _loadProducts() async { loading.value = true; error.value = ''; try { // 示例数据,可接后端商品接口替换 items.assignAll([ GoodsItem( id: 'vip_month', title: '月度会员', description: '解锁高级功能,按月订阅', price: 9.9, productId: 'vip_101', ), GoodsItem( id: 'vip_year', title: '年度会员', description: '解锁高级功能,按年订阅', price: 99.0, productId: 'vip_201', ), ]); } catch (e) { error.value = e.toString(); } finally { loading.value = false; } } void purchase(GoodsItem item) { Get.toNamed(Routes.payment, arguments: { 'productId': item.productId, 'amount': item.price, 'description': item.title, }); } }