From 061b0681d212fbc554dd06a7614836760999da2a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AD=90=E8=B4=A4?= Date: Mon, 1 Dec 2025 11:32:06 +0800 Subject: [PATCH] =?UTF-8?q?=E8=B0=83=E6=95=B4=E6=8F=90=E7=8E=B0=E6=A0=B7?= =?UTF-8?q?=E5=BC=8F=E5=92=8C=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/my_wallet_bg.png | Bin 0 -> 14036 bytes assets/images/question_icon.png | Bin 0 -> 469 bytes lib/controller/mine/my_wallet_controller.dart | 10 +- lib/generated/assets.dart | 2 + lib/network/rtc_api.g.dart | 34 ++ lib/pages/mine/my_wallet_page.dart | 383 +++++++-------- lib/pages/mine/vip_page.dart | 458 +++++++++--------- lib/pages/mine/withdraw_page.dart | 64 ++- 8 files changed, 506 insertions(+), 445 deletions(-) create mode 100644 assets/images/my_wallet_bg.png create mode 100644 assets/images/question_icon.png diff --git a/assets/images/my_wallet_bg.png b/assets/images/my_wallet_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..9e585d9be62dbbf5579fc455e2d916b5f57efcdf GIT binary patch literal 14036 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 bF@DVES^kodz5b#!6h9iOw^d4%tsnmn6w9h? literal 0 HcmV?d00001 diff --git a/assets/images/question_icon.png b/assets/images/question_icon.png new file mode 100644 index 0000000000000000000000000000000000000000..22b0209f611f28f2e4142113a5c9b627fbf4ae5b GIT binary patch literal 469 zcmV;`0V@89P)Px#1am@3R0s$N2z&@+hyVZqe@R3^R9JHQaEH7M`||yN$K?I3p)x4>9(_{fT{Tx^cvF9;X^WBR-}TI{LpwTAi6(H%#MsvuhJfQ znze6vRa6cTW47TRKUPV92kgYu$jc09j_|+j7KOZ40XwZ%HvoVSIP}VK<8M6#00000 LNkvXXu0mjf`MS+v literal 0 HcmV?d00001 diff --git a/lib/controller/mine/my_wallet_controller.dart b/lib/controller/mine/my_wallet_controller.dart index 90c156e..962fa25 100644 --- a/lib/controller/mine/my_wallet_controller.dart +++ b/lib/controller/mine/my_wallet_controller.dart @@ -18,6 +18,8 @@ class MyWalletController extends GetxController { final size = 10.obs; + final visibility = false.obs; + late UserApi _userApi; late final EasyRefreshController listRefreshController; @@ -78,12 +80,8 @@ class MyWalletController extends GetxController { final response = await _userApi.getWalletAccountRecord( pageNum: page.value, pageSize: size.value, - recordTimeFrom: timeActive.value == 1 ? - formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 30) : - timeActive.value == 2 ? formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 90) : - timeActive.value == 3 ? formatStartTimestamp(DateTime.now().millisecondsSinceEpoch - 86400000 * 180) : - "", - recordTimeTo: formatEndTimestamp(DateTime.now().millisecondsSinceEpoch), + recordTimeFrom: "", + recordTimeTo: "", ); if (response.data.isSuccess && response.data.data != null) { walletHistoryList.addAll(response.data.data?.records ?? []); diff --git a/lib/generated/assets.dart b/lib/generated/assets.dart index a476b12..0e6b11c 100644 --- a/lib/generated/assets.dart +++ b/lib/generated/assets.dart @@ -140,6 +140,7 @@ class Assets { static const String imagesMinePre = 'assets/images/mine_pre.png'; static const String imagesMore = 'assets/images/more.png'; static const String imagesMoreIcon = 'assets/images/more_icon.png'; + static const String imagesMyWalletBg = 'assets/images/my_wallet_bg.png'; static const String imagesOnlineIcon = 'assets/images/online_icon.png'; static const String imagesPhoneChecked = 'assets/images/phone_checked.png'; static const String imagesPhoneHelp = 'assets/images/phone_help.png'; @@ -150,6 +151,7 @@ class Assets { static const String imagesPlatVoiceMessageSelf = 'assets/images/plat_voice_message_self.png'; static const String imagesPlayIcon = 'assets/images/play_icon.png'; static const String imagesPlayer = 'assets/images/player.png'; + static const String imagesQuestionIcon = 'assets/images/question_icon.png'; static const String imagesRealChecked = 'assets/images/real_checked.png'; static const String imagesRealName = 'assets/images/real_name.png'; static const String imagesRealUncheck = 'assets/images/real_uncheck.png'; diff --git a/lib/network/rtc_api.g.dart b/lib/network/rtc_api.g.dart index 5aa117a..febd393 100644 --- a/lib/network/rtc_api.g.dart +++ b/lib/network/rtc_api.g.dart @@ -433,6 +433,40 @@ class _RtcApi implements RtcApi { return httpResponse; } + @override + Future>> costImGift( + Map data, + ) async { + final _extra = {}; + final queryParameters = {}; + final _headers = {}; + final _data = {}; + _data.addAll(data); + final _options = _setStreamType>>( + Options(method: 'POST', headers: _headers, extra: _extra) + .compose( + _dio.options, + 'dating-agency-chat-audio/user/cost/im-gift', + queryParameters: queryParameters, + data: _data, + ) + .copyWith(baseUrl: _combineBaseUrls(_dio.options.baseUrl, baseUrl)), + ); + final _result = await _dio.fetch>(_options); + late BaseResponse _value; + try { + _value = BaseResponse.fromJson( + _result.data!, + (json) => json as dynamic, + ); + } on Object catch (e, s) { + errorLogger?.logError(e, s, _options); + rethrow; + } + final httpResponse = HttpResponse(_value, _result); + return httpResponse; + } + RequestOptions _setStreamType(RequestOptions requestOptions) { if (T != dynamic && !(requestOptions.responseType == ResponseType.bytes || diff --git a/lib/pages/mine/my_wallet_page.dart b/lib/pages/mine/my_wallet_page.dart index 7e009ea..037578d 100644 --- a/lib/pages/mine/my_wallet_page.dart +++ b/lib/pages/mine/my_wallet_page.dart @@ -1,6 +1,7 @@ import 'package:dating_touchme_app/components/page_appbar.dart'; import 'package:dating_touchme_app/controller/mine/my_wallet_controller.dart'; import 'package:dating_touchme_app/extension/ex_widget.dart'; +import 'package:dating_touchme_app/generated/assets.dart'; import 'package:dating_touchme_app/pages/mine/withdraw_page.dart'; import 'package:easy_refresh/easy_refresh.dart'; import 'package:flutter/material.dart'; @@ -64,224 +65,202 @@ class MyWalletPage extends StatelessWidget { ), child: Column( children: [ - Container( - height: 44.w, - margin: EdgeInsets.only( - top: 9.w, - bottom: 16.w - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - width: 72.w, - height: 44.w, - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - width: 1, - color: Color.fromRGBO(117, 98, 249, controller.timeActive.value == 1 ? 1 : 0) - ) - ) - ), - child: Center( - child: Text( - "最近一个月", - style: TextStyle( - fontSize: 14.w, - color: Color.fromRGBO(51, 51, 51, controller.timeActive.value == 1 ? 1 : .5), - fontWeight: controller.timeActive.value == 1 ? FontWeight.w700 : FontWeight.w400 - ), - ), - ), - ).onTap(() async { - controller.timeActive.value = 1; - controller.page.value = 1; - controller.walletHistoryList.clear(); - await controller.getHistoryList(); - controller.listRefreshController.finishRefresh(IndicatorResult.success); - controller.listRefreshController.finishLoad(IndicatorResult.none); - }), - Container( - width: 72.w, - height: 44.w, - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - width: 1, - color: Color.fromRGBO(117, 98, 249, controller.timeActive.value == 2 ? 1 : 0) - ) - ) - ), - child: Center( - child: Text( - "3个月", - style: TextStyle( - fontSize: 14.w, - color: Color.fromRGBO(51, 51, 51, controller.timeActive.value == 2 ? 1 : .5), - fontWeight: controller.timeActive.value == 2 ? FontWeight.w700 : FontWeight.w400 - ), - ), - ), - ).onTap(() async { - controller.timeActive.value = 2; - controller.page.value = 1; - controller.walletHistoryList.clear(); - await controller.getHistoryList(); - controller.listRefreshController.finishRefresh(IndicatorResult.success); - controller.listRefreshController.finishLoad(IndicatorResult.none); - }), - Container( - width: 72.w, - height: 44.w, - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - width: 1, - color: Color.fromRGBO(117, 98, 249, controller.timeActive.value == 3 ? 1 : 0) - ) - ) - ), - child: Center( - child: Text( - "6个月", - style: TextStyle( - fontSize: 14.w, - color: Color.fromRGBO(51, 51, 51, controller.timeActive.value == 13 ? 1 : .5), - fontWeight: controller.timeActive.value == 3 ? FontWeight.w700 : FontWeight.w400 - ), - ), - ), - ).onTap(() async { - controller.timeActive.value = 3; - controller.page.value = 1; - controller.walletHistoryList.clear(); - await controller.getHistoryList(); - controller.listRefreshController.finishRefresh(IndicatorResult.success); - controller.listRefreshController.finishLoad(IndicatorResult.none); - }), - Container( - width: 72.w, - height: 44.w, - decoration: BoxDecoration( - border: Border( - bottom: BorderSide( - width: 1, - color: Color.fromRGBO(117, 98, 249, controller.timeActive.value == 4 ? 1 : 0) - ) - ) - ), - child: Center( - child: Text( - "全部", - style: TextStyle( - fontSize: 14.w, - color: Color.fromRGBO(51, 51, 51, controller.timeActive.value == 4 ? 1 : .5), - fontWeight: controller.timeActive.value == 4 ? FontWeight.w700 : FontWeight.w400 - ), + if(controller.walletData.value.id != null) Stack( + children: [ + Image.asset( + Assets.imagesMyWalletBg, + width: 346.w, + height: 168.w, + ), + Container( + width: 346.w, + height: 168.w, + margin: EdgeInsets.only( + bottom: 19.w + ), + padding: EdgeInsets.only( + top: 17.w, + right: 13.w, + left: 13.w + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(8.w)), + ), + child: Column( + children: [ + Row( + children: [ + Text( + "钱包余额(元)", + style: TextStyle( + fontSize: 14.w, + color: Colors.white, + fontWeight: FontWeight.w500 + ), + ), + SizedBox(width: 9.w,), + Icon( + controller.visibility.value ? Icons.visibility : Icons.visibility_off, + size: 16.w, + color: Colors.white, + ).onTap((){ + controller.visibility.value = !controller.visibility.value; + }) + ], ), - ), - ).onTap(() async { - controller.timeActive.value = 4; - controller.page.value = 1; - controller.walletHistoryList.clear(); - await controller.getHistoryList(); - controller.listRefreshController.finishRefresh(IndicatorResult.success); - controller.listRefreshController.finishLoad(IndicatorResult.none); - }), - ], - ), - ), - Container( - width: 355.w, - height: 129.w, - margin: EdgeInsets.only( - bottom: 24.w - ), - padding: EdgeInsets.symmetric( - vertical: 12.w - ), - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(10.w)), - color: const Color.fromRGBO(247, 247, 247, 1) - ), - child: Column( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Container( - width: 255.w, - padding: EdgeInsets.symmetric( - horizontal: 16.w - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - Column( - crossAxisAlignment: CrossAxisAlignment.start, - children: [ - Text( - "${controller.walletData.value.totalBalance ?? ""}", - style: TextStyle( - fontSize: 20.w, + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Text( + controller.visibility.value ? "${controller.walletData.value.totalBalance}" : controller.walletData.value.totalBalance.toString().replaceAll(RegExp(r'\d'), '*'), + style: TextStyle( + fontSize: 30.w, + color: Colors.white, + fontWeight: FontWeight.w700 + ), + ), + Container( + width: 108.w, + height: 32.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(32.w)), + color: Colors.white + ), + child: Center( + child: Text( + "提现", + style: TextStyle( + fontSize: 15.w, + color: const Color.fromRGBO(64, 136, 225, 1), fontWeight: FontWeight.w500 + ), ), ), - SizedBox(height: 6.w,), - Text( - "总余额(元)", - style: TextStyle( + ).onTap(() { + Get.to(() => WithdrawPage(availableWithdrawBalance: controller.walletData.value.availableWithdrawBalance ?? 0))?.then((e){ + controller.getWalletData(); + controller.getHistoryList(); + }); + }) + ], + ), + SizedBox(height: 15.w,), + Row( + children: [ + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "可提现(元)", + style: TextStyle( + fontSize: 9.w, + color: Colors.white, + fontWeight: FontWeight.w500 + ), + ), + Text( + "${controller.walletData.value.availableWithdrawBalance}", + style: TextStyle( fontSize: 13.w, - color: const Color.fromRGBO(102, 102, 102, 1) + color: Colors.white, + fontWeight: FontWeight.w700 + ), + ) + ], + ), + Container( + width: 1, + height: 32.w, + color: const Color.fromRGBO(255, 255, 255, .2), + margin: EdgeInsets.symmetric( + horizontal: 20.w + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "计算中(元)", + style: TextStyle( + fontSize: 9.w, + color: Colors.white, + fontWeight: FontWeight.w500 + ), ), - ) - ], + Text( + "${controller.walletData.value.settlementBalance}", + style: TextStyle( + fontSize: 13.w, + color: Colors.white, + fontWeight: FontWeight.w700 + ), + ) + ], + ), + Container( + width: 1, + height: 32.w, + color: const Color.fromRGBO(255, 255, 255, .2), + margin: EdgeInsets.symmetric( + horizontal: 20.w + ), + ), + Column( + crossAxisAlignment: CrossAxisAlignment.start, + children: [ + Text( + "提现中(元)", + style: TextStyle( + fontSize: 9.w, + color: Colors.white, + fontWeight: FontWeight.w500 + ), + ), + Text( + "${controller.walletData.value.frozenBalance}", + style: TextStyle( + fontSize: 13.w, + color: Colors.white, + fontWeight: FontWeight.w700 + ), + ) + ], + ), + ], + ), + Container( + height: 1, + margin: EdgeInsets.only( + top: 16.w, + bottom: 5.w ), - Column( - crossAxisAlignment: CrossAxisAlignment.start, + color: const Color.fromRGBO(255, 255, 255, .2), + ), + Opacity( + opacity: .6, + child: Row( children: [ - Text( - "${controller.walletData.value.settlementBalance ?? ""}", - style: TextStyle( - fontSize: 20.w, - fontWeight: FontWeight.w500, - color: const Color.fromRGBO(117, 98, 249, 1) - ), + Image.asset( + Assets.imagesQuestionIcon, + width: 13.w, + ), + SizedBox( + width: 5.w, ), - SizedBox(height: 6.w,), Text( - "结算中金额(元)", + "提现说明:收益到账后满 3 天方可申请提现,提现金额最低 50 元", style: TextStyle( - fontSize: 13.w, - color: const Color.fromRGBO(102, 102, 102, 1) + fontSize: 9.w, + color: Colors.white ), ) ], ), - ], - ), + ) + ], ), - Container( - width: 255.w, - height: 42.w, - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(42.w)), - color: const Color.fromRGBO(117, 98, 249, 1) - ), - child: Center( - child: Text( - "提现", - style: TextStyle( - fontSize: 14.w, - fontWeight: FontWeight.w500, - color: Colors.white - ), - ), - ), - ).onTap(() { - Get.to(() => WithdrawPage(availableWithdrawBalance: controller.walletData.value.availableWithdrawBalance ?? 0)); - }) - ], - ), + ), + ], ), Padding( padding: EdgeInsetsGeometry.symmetric( diff --git a/lib/pages/mine/vip_page.dart b/lib/pages/mine/vip_page.dart index 1025e5b..16af040 100644 --- a/lib/pages/mine/vip_page.dart +++ b/lib/pages/mine/vip_page.dart @@ -1,4 +1,6 @@ +import 'package:cached_network_image/cached_network_image.dart'; import 'package:dating_touchme_app/components/page_appbar.dart'; +import 'package:dating_touchme_app/controller/global.dart'; import 'package:dating_touchme_app/extension/ex_widget.dart'; import 'package:dating_touchme_app/generated/assets.dart'; import 'package:dating_touchme_app/pages/mine/pay_fail_page.dart'; @@ -30,6 +32,7 @@ class _VipPageState extends State { int payActive = 0; + final userData = GlobalData().userData.obs; @override @@ -89,17 +92,32 @@ class _VipPageState extends State { children: [ Row( children: [ - Image.asset( - Assets.imagesUserAvatar, - width: 60.w, - height: 60.w, + ClipRRect( + borderRadius: BorderRadius.all(Radius.circular(60.w)), + child: (userData.value?.profilePhoto?.isNotEmpty ?? false) ? CachedNetworkImage( + imageUrl: "${userData.value?.profilePhoto ?? ""}?x-oss-process=image/format,webp/resize,w_120", + width: 60.w, + height: 60.w, + imageBuilder: (context, imageProvider) => Container( + decoration: BoxDecoration( + image: DecorationImage( + image: imageProvider, + fit: BoxFit.cover, + ), + ), + ), + ) : Image.asset( + Assets.imagesUserAvatar, + width: 60.w, + height: 60.w, + ) ), SizedBox(width: 15.w,), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [ Text( - "用户昵称", + userData.value?.nickName ?? "", style: TextStyle( fontSize: 18.w, fontWeight: FontWeight.w700 @@ -154,220 +172,149 @@ class _VipPageState extends State { child: Container( width: 375.w, height: 821.h - 270.w, - padding: EdgeInsetsGeometry.symmetric( - vertical: 22.w, - horizontal: 13.w - ), decoration: BoxDecoration( - borderRadius: BorderRadius.vertical( - top: Radius.circular(18.w) - ), - color: Colors.white + borderRadius: BorderRadius.vertical( + top: Radius.circular(18.w) + ), + color: Colors.white ), - child: Column( - children: [ - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + child: SingleChildScrollView( + child: Container( + padding: EdgeInsetsGeometry.symmetric( + vertical: 22.w, + horizontal: 13.w + ), + child: Column( children: [ - VipItem(active: vipActive, index: 0,).onTap((){ - vipActive = 0; - setState(() { + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + VipItem(active: vipActive, index: 0,).onTap((){ + vipActive = 0; + setState(() { - }); - }), - VipItem(active: vipActive, index: 1,).onTap((){ - vipActive = 1; - setState(() { + }); + }), + VipItem(active: vipActive, index: 1,).onTap((){ + vipActive = 1; + setState(() { - }); - }), - VipItem(active: vipActive, index: 2,).onTap((){ - vipActive = 2; - setState(() { + }); + }), + VipItem(active: vipActive, index: 2,).onTap((){ + vipActive = 2; + setState(() { - }); - }), - ], - ), - SizedBox(height: 12.w,), - Row( - children: [ + }); + }), + ], + ), + SizedBox(height: 12.w,), + Row( + children: [ - Checkbox( - value: checked, - onChanged: (value) { - checked = value ?? false; - setState(() { + Checkbox( + value: checked, + onChanged: (value) { + checked = value ?? false; + setState(() { - }); - }, - activeColor: const Color.fromRGBO(117, 98, 249, 1), - side: const BorderSide(color: Colors.grey), - shape: const CircleBorder(), - materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + }); + }, + activeColor: const Color.fromRGBO(117, 98, 249, 1), + side: const BorderSide(color: Colors.grey), + shape: const CircleBorder(), + materialTapTargetSize: MaterialTapTargetSize.shrinkWrap, + ), + Text( + "我已阅读并同意《会员购买协议》", + style: TextStyle( + fontSize: 11.w, + color: const Color.fromRGBO(189, 189, 189, 1) + ), + ) + ], ), - Text( - "我已阅读并同意《会员购买协议》", - style: TextStyle( - fontSize: 11.w, - color: const Color.fromRGBO(189, 189, 189, 1) - ), - ) - ], - ), - SizedBox(height: 25.w,), - Row( - children: [ - Text( - "会员专属特权", - style: TextStyle( - fontSize: 17.w, - fontWeight: FontWeight.w500, - color: const Color.fromRGBO(54, 0, 115, 1) - ), - ) - ], - ), - SizedBox(height: 18.w,), - Container( - padding: EdgeInsets.symmetric( - horizontal: 18.w - ), - child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ - ...vipPrivilege.map((e){ - return VipPrivilege(img: e["img"], label: e["label"]); - }) - ], - ), - ), - SizedBox(height: 15.w,), - Container( - height: 60.w, - padding: EdgeInsets.symmetric( - vertical: 19.w, - horizontal: 18.w - ), - margin: EdgeInsets.only( - bottom: 10.w - ), - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(9.w)), - color: const Color.fromRGBO(117, 98, 249, .1) - ), - child: Row( - children: [ - Image.asset( - Assets.imagesVipChat, - width: 34.w, + SizedBox(height: 25.w,), + Row( + children: [ + Text( + "会员专属特权", + style: TextStyle( + fontSize: 17.w, + fontWeight: FontWeight.w500, + color: const Color.fromRGBO(54, 0, 115, 1) + ), + ) + ], + ), + SizedBox(height: 18.w,), + Container( + padding: EdgeInsets.symmetric( + horizontal: 18.w ), - SizedBox(width: 16.w,), - Text( - "【聊天券】立即得70张,后续每天领7张,共280张", - style: TextStyle( - fontSize: 11.w, - fontWeight: FontWeight.w500 - ), - ) - ], - ), - ), - Container( - height: 60.w, - padding: EdgeInsets.symmetric( - vertical: 19.w, - horizontal: 18.w - ), - margin: EdgeInsets.only( - bottom: 10.w - ), - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(9.w)), - color: const Color.fromRGBO(117, 98, 249, .1) - ), - child: Row( - children: [ - Image.asset( - Assets.imagesVipMessage, - width: 34.w, + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + ...vipPrivilege.map((e){ + return VipPrivilege(img: e["img"], label: e["label"]); + }) + ], ), - SizedBox(width: 16.w,), - Text( - "【消息回执】消息已读!看到了~", - style: TextStyle( - fontSize: 11.w, - fontWeight: FontWeight.w500 - ), - ) - ], - ), - ), - Spacer(), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, - children: [ + ), + SizedBox(height: 15.w,), Container( - width: 86.w, - height: 30.w, + height: 60.w, padding: EdgeInsets.symmetric( - horizontal: 9.w + vertical: 19.w, + horizontal: 18.w + ), + margin: EdgeInsets.only( + bottom: 10.w ), decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(30.w)), - border: Border.all( - width: 1, - color: Color.fromRGBO(117, 98, 249, payActive == 0 ? 1 : 0)), - color: payActive == 0 ? - const Color.fromRGBO(117, 98, 249, .07) : - const Color.fromRGBO(247, 247, 247, 1) + borderRadius: BorderRadius.all(Radius.circular(9.w)), + color: const Color.fromRGBO(117, 98, 249, .1) ), child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Image.asset( - Assets.imagesWechatPay, - width: 17.w, + Assets.imagesVipChat, + width: 34.w, ), + SizedBox(width: 16.w,), Text( - "微信支付", + "【聊天券】立即得70张,后续每天领7张,共280张", style: TextStyle( - fontSize: 11.w, - fontWeight: FontWeight.w500 + fontSize: 11.w, + fontWeight: FontWeight.w500 ), ) ], ), - ).onTap((){ - payActive = 0; - setState(() { - - }); - }), + ), Container( - width: 80.w, - height: 30.w, + height: 60.w, padding: EdgeInsets.symmetric( - horizontal: 12.w + vertical: 19.w, + horizontal: 18.w + ), + margin: EdgeInsets.only( + bottom: 10.w ), decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(30.w)), - border: Border.all( - width: 1, - color: Color.fromRGBO(117, 98, 249, payActive == 1 ? 1 : 0)), - color: payActive == 1 ? - const Color.fromRGBO(117, 98, 249, .07) : - const Color.fromRGBO(247, 247, 247, 1) + borderRadius: BorderRadius.all(Radius.circular(9.w)), + color: const Color.fromRGBO(117, 98, 249, .1) ), child: Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Image.asset( - Assets.imagesAliPay, - width: 17.w, + Assets.imagesVipMessage, + width: 34.w, ), + SizedBox(width: 16.w,), Text( - "支付宝", + "【消息回执】消息已读!看到了~", style: TextStyle( fontSize: 11.w, fontWeight: FontWeight.w500 @@ -375,44 +322,118 @@ class _VipPageState extends State { ) ], ), - ).onTap((){ - payActive = 1; - setState(() { + ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Container( + width: 86.w, + height: 30.w, + padding: EdgeInsets.symmetric( + horizontal: 9.w + ), + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(30.w)), + border: Border.all( + width: 1, + color: Color.fromRGBO(117, 98, 249, payActive == 0 ? 1 : 0)), + color: payActive == 0 ? + const Color.fromRGBO(117, 98, 249, .07) : + const Color.fromRGBO(247, 247, 247, 1) + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset( + Assets.imagesWechatPay, + width: 17.w, + ), + Text( + "微信支付", + style: TextStyle( + fontSize: 11.w, + fontWeight: FontWeight.w500 + ), + ) + ], + ), + ).onTap((){ + payActive = 0; + setState(() { - }); - }), - Container( - width: 161.w, - height: 45.w, - decoration: BoxDecoration( - borderRadius: BorderRadius.all(Radius.circular(45.w)), - gradient: LinearGradient( - begin: Alignment.centerLeft, // 90deg: 从左到右 - end: Alignment.centerRight, - colors: [ - Color.fromRGBO(131, 89, 255, 1), // 起点颜色 - Color.fromRGBO(77, 127, 231, 1), // 中间颜色 - Color.fromRGBO(61, 138, 224, 1), // 终点颜色 - ], - stops: [0.0, 0.7753, 1.0], // 对应 0%、77.53%、100% - ), - ), - child: Center( - child: Text( - "立即开通", - style: TextStyle( - fontSize: 18.w, - color: Colors.white, - fontWeight: FontWeight.w500 + }); + }), + Container( + width: 80.w, + height: 30.w, + padding: EdgeInsets.symmetric( + horizontal: 12.w ), - ), - ), - ).onTap((){ - Get.to(() => PayFailPage()); - }) + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(30.w)), + border: Border.all( + width: 1, + color: Color.fromRGBO(117, 98, 249, payActive == 1 ? 1 : 0)), + color: payActive == 1 ? + const Color.fromRGBO(117, 98, 249, .07) : + const Color.fromRGBO(247, 247, 247, 1) + ), + child: Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Image.asset( + Assets.imagesAliPay, + width: 17.w, + ), + Text( + "支付宝", + style: TextStyle( + fontSize: 11.w, + fontWeight: FontWeight.w500 + ), + ) + ], + ), + ).onTap((){ + payActive = 1; + setState(() { + + }); + }), + Container( + width: 161.w, + height: 45.w, + decoration: BoxDecoration( + borderRadius: BorderRadius.all(Radius.circular(45.w)), + gradient: LinearGradient( + begin: Alignment.centerLeft, // 90deg: 从左到右 + end: Alignment.centerRight, + colors: [ + Color.fromRGBO(131, 89, 255, 1), // 起点颜色 + Color.fromRGBO(77, 127, 231, 1), // 中间颜色 + Color.fromRGBO(61, 138, 224, 1), // 终点颜色 + ], + stops: [0.0, 0.7753, 1.0], // 对应 0%、77.53%、100% + ), + ), + child: Center( + child: Text( + "立即开通", + style: TextStyle( + fontSize: 18.w, + color: Colors.white, + fontWeight: FontWeight.w500 + ), + ), + ), + ).onTap((){ + Get.to(() => PayFailPage()); + }) + ], + ) ], - ) - ], + ), + ), ), ), ), @@ -442,7 +463,6 @@ class _VipItemState extends State { height: 120.h, padding: EdgeInsets.only( top: 16.w, - bottom: 21.w ), decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(18.w)), diff --git a/lib/pages/mine/withdraw_page.dart b/lib/pages/mine/withdraw_page.dart index a8eeabe..1c65dc7 100644 --- a/lib/pages/mine/withdraw_page.dart +++ b/lib/pages/mine/withdraw_page.dart @@ -231,25 +231,54 @@ class WithdrawPage extends StatelessWidget { ], ), SizedBox(height: 16.w,), - Row( - mainAxisAlignment: MainAxisAlignment.spaceBetween, + Column( + crossAxisAlignment: CrossAxisAlignment.start, children: [ - Text( - "可提现金额:${availableWithdrawBalance}元", - style: TextStyle( - fontSize: 12.w, - color: const Color.fromRGBO(153, 153, 153, 1) - ), + Row( + mainAxisAlignment: MainAxisAlignment.spaceBetween, + children: [ + Row( + children: [ + Text( + "可提现金额:${availableWithdrawBalance}元", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(153, 153, 153, 1) + ), + ), + Text( + "全部提现", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(25, 114, 248, 1) + ), + ).onTap((){ + controller.withdrawMoney.value = availableWithdrawBalance.toString(); + controller.withdrawMoneyController.value.value = TextEditingValue( + text: controller.withdrawMoney.value, + selection: TextSelection.fromPosition(TextPosition(offset: controller.withdrawMoney.value.length)), + ); + }) + ], + ), + Text( + "提现记录", + style: TextStyle( + fontSize: 12.w, + color: const Color.fromRGBO(25, 114, 248, 1) + ), + ).onTap((){ + Get.to(() => WithdrawHistoryPage()); + }) + ], ), Text( - "提现记录", + "收益到账后满 3 天方可申请提现,提现金额最低 50 元", style: TextStyle( fontSize: 12.w, - color: const Color.fromRGBO(25, 114, 248, 1) + color: const Color.fromRGBO(153, 153, 153, 1) ), - ).onTap((){ - Get.to(() => WithdrawHistoryPage()); - }) + ) ], ), SizedBox(height: 40.w,), @@ -279,6 +308,10 @@ class WithdrawPage extends StatelessWidget { SmartDialog.showToast('请输入提现金额'); return; } + if(double.parse(controller.withdrawMoney.value) < 50){ + SmartDialog.showToast('最低提现金额为50元'); + return; + } await controller.getServiceFee(); Navigator.of(context).push( TDSlidePopupRoute( @@ -472,11 +505,6 @@ class WithdrawPage extends StatelessWidget { children: [ Row ( children: [ - Image.asset( - Assets.imagesBankIcon, - width: 16.w, - ), - SizedBox(width: 10.w,), Column( crossAxisAlignment: CrossAxisAlignment.start, children: [