index.dart 3.7KB

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