index.dart 4.5KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144
  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:flutter/material.dart';
  5. import 'package:flutter_screenutil/flutter_screenutil.dart';
  6. import 'package:fluttertoast/fluttertoast.dart';
  7. import 'package:get/get.dart';
  8. import 'package:get_storage/get_storage.dart';
  9. class AddressList extends StatefulWidget {
  10. const AddressList({Key? key}) : super(key: key);
  11. @override
  12. _AddressList createState() => _AddressList();
  13. }
  14. class _AddressList extends State<AddressList> {
  15. bool isBack = false;
  16. @override
  17. void initState() {
  18. super.initState();
  19. if (Get.arguments != null) {
  20. isBack = Get.arguments['isBack'];
  21. }
  22. }
  23. List<Address> addressList = [
  24. Address.fromJson({'address': '777', 'isDefault': false}),
  25. Address.fromJson({'address': '999', 'isDefault': false}),
  26. Address.fromJson({'address': '这是一个正经的地址', 'isDefault': false}),
  27. ];
  28. void onChange(index) {
  29. setState(() {
  30. addressList.forEach((element) {
  31. if (element.isDefault == true) {
  32. element.isDefault = false;
  33. }
  34. });
  35. addressList[index].isDefault = true;
  36. });
  37. }
  38. void onDelete(index) {
  39. showDialog(
  40. context: context,
  41. builder: (context) {
  42. return AlertDialog(content: Text("您确定要删除此地址吗?"), actions: <Widget>[
  43. TextButton(
  44. child: Text("取消"),
  45. onPressed: () {
  46. print("取消");
  47. Navigator.pop(context, 'Cancle');
  48. },
  49. ),
  50. TextButton(
  51. child: Text("确定"),
  52. onPressed: () {
  53. // setState(() {
  54. // addressList.remove(addressList[e]);
  55. // });
  56. Navigator.pop(context, "Ok");
  57. Fluttertoast.showToast(msg: '删除成功!');
  58. })
  59. ]);
  60. });
  61. }
  62. @override
  63. Widget build(BuildContext context) {
  64. return Scaffold(
  65. appBar: AppBar(
  66. elevation: 0,
  67. centerTitle: true,
  68. backgroundColor: Colors.white,
  69. title: Text(
  70. '地址管理',
  71. style: TextStyle(
  72. color: Colors.black,
  73. fontSize: 17.sp,
  74. letterSpacing: 2,
  75. fontWeight: FontWeight.bold),
  76. ),
  77. ),
  78. body: ListView(
  79. children: [
  80. Container(
  81. padding: EdgeInsets.all(15.w),
  82. child: Column(
  83. //左对齐
  84. crossAxisAlignment: CrossAxisAlignment.start,
  85. children: [
  86. Column(
  87. children: addressList
  88. .asMap()
  89. .keys
  90. .map(
  91. (e) => AddressCard(
  92. No: e + 1,
  93. item: addressList[e],
  94. isBack: isBack,
  95. onChange: () {
  96. onChange(e);
  97. },
  98. onEdit: () {
  99. Get.toNamed('/addAddress',
  100. arguments: {'item': addressList[e]});
  101. },
  102. onDelete: () {
  103. onDelete(e);
  104. },
  105. onBack: () {
  106. if(GetStorage().read('address')==null) {
  107. GetStorage().write('address', addressList[e]);
  108. }else {
  109. GetStorage().remove('address');
  110. GetStorage().write('address', addressList[e]);
  111. }
  112. Get.back();
  113. },
  114. ),
  115. )
  116. .toList()),
  117. DefaultButton(
  118. color: const Color(0xffffffff),
  119. backColor: const Color(0xFFFF703B),
  120. width: 345.w,
  121. height: 49.h,
  122. text: '+新增收货地址',
  123. onPressed: () {
  124. Get.toNamed('/addAddress');
  125. },
  126. margin: const EdgeInsets.all(0),
  127. fontSize: 20.sp,
  128. radius: 24.5.w,
  129. ),
  130. ],
  131. ),
  132. ),
  133. ],
  134. ),
  135. );
  136. }
  137. }