index.dart 3.6KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  1. import 'package:farmer_client/models/addressController.dart';
  2. import 'package:farmer_client/models/entities/Address.dart';
  3. import 'package:farmer_client/pages/addressList/widget/AddressCard.dart';
  4. import 'package:farmer_client/widgets/DefaultButton.dart';
  5. import 'package:farmer_client/widgets/layout/BasicPage.dart';
  6. import 'package:flutter/material.dart';
  7. import 'package:flutter_screenutil/flutter_screenutil.dart';
  8. import 'package:fluttertoast/fluttertoast.dart';
  9. import 'package:get/get.dart';
  10. import '../../services/address.dart';
  11. class AddressList extends BasicPage {
  12. bool isBack = false;
  13. AddressController addressController=AddressController.t;
  14. final addressList = Rx<List<Address>>([]);
  15. @override
  16. void beforeShow() {
  17. super.beforeShow();
  18. getAddress().then((value) {
  19. final list = <Address>[];
  20. value['records'].forEach((item) {
  21. list.add(Address.fromJson(item));
  22. });
  23. addressList(list);
  24. });
  25. if (Get.arguments != null) {
  26. isBack = Get.arguments['isBack'];
  27. }
  28. }
  29. void onChange(id) {
  30. print(id);
  31. addressDefault(id.toString()).then((value){
  32. final defaultlist = [...addressList()];
  33. for (var element in addressList()) {
  34. if (element.isDefault == true) {
  35. element.isDefault = false;
  36. }
  37. }
  38. addressList(defaultlist);
  39. });
  40. }
  41. void onDelete(id) {
  42. print(id);
  43. addressDelete(id).then((value) {
  44. final newslist = [...addressList()];
  45. for (var item in addressList()) {
  46. if (item.addressId == id) {
  47. newslist.remove(item);
  48. }
  49. }
  50. addressList(newslist);
  51. Fluttertoast.showToast(msg: '删除成功!');
  52. });
  53. }
  54. @override
  55. Widget builder(BuildContext context) {
  56. naviTitle = '地址管理';
  57. return Column(
  58. children: [
  59. Container(
  60. padding: EdgeInsets.all(15.w),
  61. child: Column(
  62. //左对齐
  63. crossAxisAlignment: CrossAxisAlignment.start,
  64. children: [
  65. Obx(()=>Column(
  66. children: addressList()
  67. .asMap()
  68. .keys
  69. .map(
  70. (e) => AddressCard(
  71. No: e + 1,
  72. item: addressList.value[e],
  73. isBack: isBack,
  74. onChange: () {
  75. onChange(addressList()[e].addressId);
  76. },
  77. onEdit: () {
  78. Get.toNamed('/addAddress',
  79. arguments: {'id':addressList.value[e].addressId,'item': addressList.value[e].address.toString()});
  80. },
  81. onDelete: () {
  82. onDelete(addressList.value[e].addressId);
  83. },
  84. onBack: () {
  85. //选择地址
  86. addressController.address.value=addressList.value[e];
  87. Get.back();
  88. },
  89. ),
  90. )
  91. .toList()),),
  92. DefaultButton(
  93. color: const Color(0xffffffff),
  94. backColor: const Color(0xFFFF703B),
  95. width: 345.w,
  96. height: 49.h,
  97. text: '+新增收货地址',
  98. onPressed: () {
  99. Get.toNamed('/addAddress');
  100. },
  101. margin: const EdgeInsets.all(0),
  102. fontSize: 20.sp,
  103. radius: 24.5.w,
  104. ),
  105. ],
  106. ),
  107. ),
  108. ],
  109. );
  110. }
  111. }