index.dart 3.4KB

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