import 'package:ef/ef.dart'; import 'package:flutter/material.dart'; import 'package:flutterflow_ui/flutterflow_ui.dart'; import 'package:flutter_slidable/flutter_slidable.dart'; import 'package:vbvs_app/common/util/FitTool.dart'; import 'package:vbvs_app/controller/mh_controller/address_list_controller.dart'; import '../../common/color/appFontsize.dart'; class AddressModuleWidget extends GetView { final int index; final AddressListController addressListController; AddressModuleWidget({ required this.index, required this.addressListController, }) {} @override Widget build(BuildContext context) { return SingleChildScrollView( child: SlidableAutoCloseBehavior( child: Padding( padding: EdgeInsetsDirectional.fromSTEB(30.rpx, 0, 30.rpx, 0), child: Container( width: MediaQuery.sizeOf(context).width, constraints: BoxConstraints( minHeight: 220.rpx, ), decoration: BoxDecoration( color: Color(0xFF003058), borderRadius: BorderRadius.circular(16), ), child: Slidable( endActionPane: ActionPane( extentRatio: 0.26, motion: ScrollMotion(), children: [ Expanded( child: InkWell( onTap: () async { await addressListController.deleteAddress( addressListController.model.addressList[index] ['_id']); addressListController.model.addressList.removeAt(index); addressListController.updateAll(); }, child: Container( margin: EdgeInsets.only(left: 30), decoration: BoxDecoration( borderRadius: BorderRadius.circular(10), color: Colors.red, ), alignment: Alignment.center, child: Icon( Icons.delete, color: Colors.white, ), ), ), ) ], ), child: Padding( padding: EdgeInsetsDirectional.fromSTEB( 30.rpx, 20.rpx, 30.rpx, 20.rpx), child: Container( width: MediaQuery.sizeOf(context).width, height: MediaQuery.sizeOf(context).height * 0.123, child: Column( mainAxisSize: MainAxisSize.max, children: [ Container( height: 60.rpx, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Expanded( child: Text( [ addressListController .model.addressList[index]['province'], addressListController .model.addressList[index]['city'], addressListController .model.addressList[index]['county'], addressListController .model.addressList[index]['street'] ] .where((element) => element != null && element.isNotEmpty) .join(' '), style: TextStyle( fontFamily: 'Readex Pro', color: Colors.white, fontSize: AppFontsize.normal_text_size, letterSpacing: 0, ), ), ), Obx(() => Visibility( visible: addressListController.model .addressList[index]["default"] == 1, child: Container( width: 71.rpx, height: 36.rpx, child: ElevatedButton( onPressed: () {}, child: Text( '默认'.tr, style: TextStyle( color: Color(0XFF6BFDAC), fontSize: 20.rpx, ), ), style: ElevatedButton.styleFrom( backgroundColor: const Color(0x4D6BFDAC), padding: EdgeInsets.zero, ), ), ), )) ], )), Container( height: 60.rpx, alignment: Alignment.centerLeft, child: Text( addressListController.model .addressList[index]['address']?.isEmpty ?? true ? '无详细地址'.tr : addressListController.model.addressList[index] ['address'], style: TextStyle( fontFamily: 'Readex Pro', color: Colors.white, fontSize: AppFontsize.normal_text_size, letterSpacing: 0, ), ), ), Container( height: 60.rpx, child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Text( '${addressListController.model.addressList[index]['name']} ' + '${addressListController.model.addressList[index]['tel']} ', style: TextStyle( fontFamily: 'Readex Pro', color: Colors.white, fontSize: AppFontsize.normal_text_size, letterSpacing: 0, ), ), InkWell( onTap: () { addressListController.model.address = addressListController .model.addressList[index]; addressListController.model.type = 2; Get.toNamed("/editAddressPage"); }, child: Container( width: 100, height: MediaQuery.sizeOf(context).height * 0.03, child: Align( alignment: AlignmentDirectional(1, 0), child: Text( '编辑'.tr, style: TextStyle( fontFamily: 'Readex Pro', color: Color(0xFF84F5FF), fontSize: AppFontsize.small_text_size, letterSpacing: 0, ), ), ), ), ), ], ), ), ], ), ), ), ), ), ), ), ); } }