index.dart 4.0KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111
  1. import 'package:farmer_client/models/addressController.dart';
  2. import 'package:farmer_client/models/entities/Address.dart';
  3. import 'package:farmer_client/services/address.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 AddAddress extends BasicPage {
  11. AddressController addressController = AddressController.t;
  12. final address = Rx<Address>(Address());
  13. late String text = '';
  14. late String id = '';
  15. bool isBack = false;
  16. @override
  17. void beforeShow() {
  18. super.beforeShow();
  19. isBack = Get.arguments['isBack'];
  20. if (Get.arguments['item'] != null) {
  21. text = Get.arguments['item'];
  22. id = Get.arguments['id'];
  23. }
  24. }
  25. @override
  26. Widget builder(BuildContext context) {
  27. naviTitle = '添加地址';
  28. return Container(
  29. padding: EdgeInsets.all(15.w),
  30. child: Column(
  31. crossAxisAlignment: CrossAxisAlignment.start,
  32. children: [
  33. Text(
  34. '详细地址:',
  35. style: TextStyle(
  36. fontWeight: FontWeight.bold,
  37. fontSize: 17.sp,
  38. color: const Color(0xFF333333)),
  39. ),
  40. Container(
  41. margin: EdgeInsets.fromLTRB(0, 0, 0, 50.h),
  42. padding: EdgeInsets.symmetric(vertical: 5.w, horizontal: 18.5.w),
  43. decoration: BoxDecoration(
  44. color: const Color(0xFFfefefe),
  45. borderRadius: BorderRadius.all(Radius.circular(10.w)),
  46. border: Border.all(
  47. color: const Color(0xcc000000),
  48. width: 1.h,
  49. style: BorderStyle.solid)),
  50. child: TextFormField(
  51. initialValue: text,
  52. minLines: 6,
  53. maxLines: 6,
  54. style: TextStyle(fontSize: 17.sp, height: 1.5),
  55. decoration: const InputDecoration(
  56. isCollapsed: true,
  57. hintText: '请输入地址信息',
  58. border: InputBorder.none,
  59. counterText: '', //去掉计数
  60. floatingLabelBehavior: FloatingLabelBehavior.never,
  61. ),
  62. onChanged: (e) {
  63. address().address = e;
  64. },
  65. ),
  66. ),
  67. DefaultButton(
  68. color: const Color(0xffffffff),
  69. backColor: const Color(0xFFFF703B),
  70. width: 345.w,
  71. height: 49.h,
  72. text: '保存',
  73. onPressed: () {
  74. if (address.value.address == null) {
  75. Fluttertoast.showToast(msg: '请输入地址!');
  76. } else {
  77. List<Address> list = [...addressController.addressList()];
  78. if (text == '') {
  79. addressSave(address().address.toString()).then((value) {
  80. list.add(Address.fromJson(value));
  81. addressController.addressList(list);
  82. Fluttertoast.showToast(msg: '添加地址成功!');
  83. Get.offNamed('/addressList', arguments: {'isBack': isBack});
  84. });
  85. } else {
  86. addressUpdate(id, address().address.toString()).then((value) {
  87. Address ads = Address.fromJson(value);
  88. for (var element in list) {
  89. if (element.addressId == ads.addressId) {
  90. element.address = ads.address;
  91. }
  92. }
  93. addressController.addressList(list);
  94. Fluttertoast.showToast(msg: '修改地址成功!');
  95. Get.offNamed('/addressList', arguments: {'isBack': isBack});
  96. });
  97. }
  98. }
  99. },
  100. margin: const EdgeInsets.all(0),
  101. fontSize: 20.sp,
  102. radius: 24.5.w,
  103. ),
  104. ],
  105. ),
  106. );
  107. }
  108. }