index.dart 3.1KB

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