import 'package:farmer_client/models/addressController.dart'; import 'package:farmer_client/models/entities/Address.dart'; import 'package:farmer_client/pages/addressList/widget/AddressCard.dart'; import 'package:farmer_client/widgets/DefaultButton.dart'; import 'package:farmer_client/widgets/layout/BasicPage.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:fluttertoast/fluttertoast.dart'; import 'package:get/get.dart'; import '../../services/address.dart'; class AddressList extends BasicPage { bool isBack = false; AddressController addressController=AddressController.t; final addressList = Rx>([]); @override void beforeShow() { super.beforeShow(); getAddress().then((value) { final list =
[]; value['records'].forEach((item) { list.add(Address.fromJson(item)); }); addressList(list); }); if (Get.arguments != null) { isBack = Get.arguments['isBack']; } } void onChange(id) { print(id); addressDefault(id.toString()).then((value){ final defaultlist = [...addressList()]; for (var element in addressList()) { if (element.isDefault == true) { element.isDefault = false; } } addressList(defaultlist); }); } void onDelete(id) { print(id); addressDelete(id).then((value) { final newslist = [...addressList()]; for (var item in addressList()) { if (item.addressId == id) { newslist.remove(item); } } addressList(newslist); Fluttertoast.showToast(msg: '删除成功!'); }); } @override Widget builder(BuildContext context) { naviTitle = '地址管理'; return Column( children: [ Container( padding: EdgeInsets.all(15.w), child: Column( //左对齐 crossAxisAlignment: CrossAxisAlignment.start, children: [ Obx(()=>Column( children: addressList() .asMap() .keys .map( (e) => AddressCard( No: e + 1, item: addressList.value[e], isBack: isBack, onChange: () { onChange(addressList()[e].addressId); }, onEdit: () { Get.toNamed('/addAddress', arguments: {'id':addressList.value[e].addressId,'item': addressList.value[e].address.toString()}); }, onDelete: () { onDelete(addressList.value[e].addressId); }, onBack: () { //选择地址 addressController.address.value=addressList.value[e]; Get.back(); }, ), ) .toList()),), DefaultButton( color: const Color(0xffffffff), backColor: const Color(0xFFFF703B), width: 345.w, height: 49.h, text: '+新增收货地址', onPressed: () { Get.toNamed('/addAddress'); }, margin: const EdgeInsets.all(0), fontSize: 20.sp, radius: 24.5.w, ), ], ), ), ], ); } }