You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
222 lines
8.1 KiB
222 lines
8.1 KiB
/*
|
|
* ====================================================
|
|
* package :
|
|
* author : Created by nansi.
|
|
* time : 2019/6/24 4:05 PM
|
|
* remark :
|
|
* ====================================================
|
|
*/
|
|
|
|
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
|
|
import 'package:flutter_easyrefresh/easy_refresh.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:provider/provider.dart';
|
|
|
|
import 'package:aku_new_community/base/base_style.dart';
|
|
import 'package:aku_new_community/model/user/adress_model.dart';
|
|
import 'package:aku_new_community/pages/personal/user_func.dart';
|
|
import 'package:aku_new_community/provider/app_provider.dart';
|
|
import 'package:aku_new_community/utils/headers.dart';
|
|
import 'address/new_address_page.dart';
|
|
|
|
// ignore: must_be_immutable
|
|
class MyAddressItem extends StatefulWidget {
|
|
final AddressModel addressModel;
|
|
final EasyRefreshController? refreshController;
|
|
final bool canBack;
|
|
|
|
Color _titleColor = Colors.black;
|
|
|
|
MyAddressItem(
|
|
{required this.addressModel,
|
|
this.refreshController,
|
|
required this.canBack})
|
|
: assert(addressModel != null);
|
|
|
|
_MyAddressItemState createState() => _MyAddressItemState();
|
|
}
|
|
|
|
class _MyAddressItemState extends State<MyAddressItem> {
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
final appProvider = Provider.of<AppProvider>(context);
|
|
return GestureDetector(
|
|
onTap: widget.canBack
|
|
? () {
|
|
Get.back(result: widget.addressModel);
|
|
}
|
|
: () {},
|
|
child: Container(
|
|
clipBehavior: Clip.antiAlias,
|
|
margin: EdgeInsets.only(bottom: 20.w),
|
|
padding:
|
|
EdgeInsets.only(top: 22.w, bottom: 24.w, left: 24.w, right: 20.w),
|
|
decoration: BoxDecoration(
|
|
color: Colors.white,
|
|
borderRadius: BorderRadius.all(Radius.circular(24.w)),
|
|
),
|
|
child: Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: <Widget>[
|
|
Row(
|
|
children: [
|
|
GestureDetector(
|
|
onTap: () async {
|
|
bool? result = await Userfunc.setIsDefaultAddress(
|
|
widget.addressModel.id!);
|
|
if (result != null) {
|
|
if (result) {
|
|
await appProvider.getMyAddress();
|
|
widget.refreshController!.callRefresh();
|
|
}
|
|
}
|
|
},
|
|
child: Container(
|
|
child: widget.addressModel.isDefault == 1
|
|
? Image.asset(
|
|
R.ASSETS_ICONS_ICON_ADDRESS_ISDEFAULT_PNG,
|
|
width: 40.w,
|
|
height: 40.w,
|
|
)
|
|
: Image.asset(
|
|
R.ASSETS_ICONS_ICON_ADDRESS_NOT_PNG,
|
|
width: 40.w,
|
|
height: 40.w,
|
|
),
|
|
),
|
|
),
|
|
Column(
|
|
crossAxisAlignment: CrossAxisAlignment.start,
|
|
children: [
|
|
Padding(
|
|
padding:
|
|
EdgeInsets.symmetric(horizontal: 20.w, vertical: 6.w),
|
|
child: SizedBox(
|
|
width: 520.w,
|
|
child: Text(
|
|
widget.addressModel.locationName ?? '',
|
|
style:
|
|
TextStyle(fontSize: 24.sp, color: ktextPrimary),
|
|
maxLines: 1,
|
|
overflow: TextOverflow.ellipsis,
|
|
),
|
|
),
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsets.symmetric(horizontal: 20.w, vertical: 6.w),
|
|
child: SizedBox(
|
|
width: 520.w,
|
|
child: Text(
|
|
(widget.addressModel.addressDetail ?? ''),
|
|
style:
|
|
TextStyle(fontSize: 32.sp, color: ktextPrimary),
|
|
maxLines: 1,
|
|
overflow: TextOverflow.ellipsis,
|
|
),
|
|
),
|
|
),
|
|
Padding(
|
|
padding:
|
|
EdgeInsets.symmetric(horizontal: 20.w, vertical: 6.w),
|
|
child: Row(
|
|
crossAxisAlignment: CrossAxisAlignment.end,
|
|
children: <Widget>[
|
|
Text(widget.addressModel.name ?? '',
|
|
style: TextStyle(
|
|
fontSize: 24.sp, color: ktextPrimary)),
|
|
30.wb,
|
|
Text(widget.addressModel.tel ?? '',
|
|
style: TextStyle(
|
|
fontSize: 24.sp, color: ktextPrimary)),
|
|
],
|
|
),
|
|
),
|
|
],
|
|
),
|
|
Spacer(),
|
|
GestureDetector(
|
|
onTap: () async {
|
|
bool? result = await Get.to(() => NewAddressPage(
|
|
isFirstAdd: false,
|
|
addressModel: widget.addressModel,
|
|
));
|
|
if (result != null) {
|
|
if (result) widget.refreshController!.callRefresh();
|
|
}
|
|
},
|
|
child: Container(
|
|
child: Image.asset(
|
|
R.ASSETS_ICONS_ICON_ADDRESS_EDIT_PNG,
|
|
width: 40.w,
|
|
height: 40.w,
|
|
),
|
|
),
|
|
)
|
|
],
|
|
),
|
|
20.hb,
|
|
Container(
|
|
height: 1,
|
|
color: Colors.grey[200],
|
|
),
|
|
20.hb,
|
|
Row(
|
|
crossAxisAlignment: CrossAxisAlignment.center,
|
|
children: <Widget>[
|
|
10.wb,
|
|
Text(
|
|
widget.addressModel.isDefault == 0 ? "" : "默认地址",
|
|
style: TextStyle(fontSize: 28.sp, color: ktextSubColor),
|
|
),
|
|
Spacer(),
|
|
GestureDetector(
|
|
onTap: () async {
|
|
// bool? result = await Userfunc.deleteAddress(widget.addressModel.id!);
|
|
// if(result!=null){
|
|
// if(result) widget.refreshController!.callRefresh();
|
|
// }
|
|
bool? result = await Get.dialog(CupertinoAlertDialog(
|
|
title: '您确定要删除该地址吗?'.text.isIntrinsic.size(30.sp).make(),
|
|
actions: [
|
|
CupertinoDialogAction(
|
|
child: '取消'.text.black.isIntrinsic.make(),
|
|
onPressed: () => Get.back(),
|
|
),
|
|
CupertinoDialogAction(
|
|
child:
|
|
'确定'.text.color(Colors.orange).isIntrinsic.make(),
|
|
onPressed: () => Get.back(result: true),
|
|
),
|
|
],
|
|
));
|
|
|
|
if (result == true) {
|
|
bool? result =
|
|
await Userfunc.deleteAddress(widget.addressModel.id!);
|
|
if (result != null) {
|
|
if (result) widget.refreshController!.callRefresh();
|
|
}
|
|
}
|
|
;
|
|
},
|
|
child: Container(
|
|
width: 70.w,
|
|
height: 40.w,
|
|
child: Text(
|
|
"删除",
|
|
style: TextStyle(fontSize: 28.sp, color: ktextSubColor),
|
|
),
|
|
),
|
|
),
|
|
],
|
|
)
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
}
|