index.dart 3.7KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121
  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. List<Address> addressList = [
  14. Address.fromJson({'address': '777', 'isDefault': false}),
  15. Address.fromJson({'address': '999', 'isDefault': false}),
  16. Address.fromJson({'address': '这是一个正经的地址', 'isDefault': false}),
  17. ];
  18. void onChange(index) {
  19. setState(() {
  20. addressList.forEach((element) {
  21. if (element.isDefault == true) {
  22. element.isDefault = false;
  23. }
  24. });
  25. addressList[index].isDefault = true;
  26. });
  27. }
  28. void onDelete(index){
  29. showDialog(
  30. context: context,
  31. builder: (context) {
  32. return AlertDialog(
  33. title: Text("提示信息"),
  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. onDelete: () {
  93. onDelete(e);
  94. },
  95. ),
  96. )
  97. .toList()),
  98. DefaultButton(
  99. color: const Color(0xffffffff),
  100. backColor: const Color(0xFFFF703B),
  101. width: 345.w,
  102. height: 49.h,
  103. text: '+新增收货地址',
  104. onPressed: () {},
  105. margin: const EdgeInsets.all(0),
  106. fontSize: 20.sp,
  107. radius: 24.5.w,
  108. ),
  109. ],
  110. ),
  111. ),
  112. ],
  113. ),
  114. );
  115. }
  116. }