index.dart 3.9KB

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