import 'package:cached_network_image/cached_network_image.dart'; import 'package:dating_touchme_app/components/page_appbar.dart'; import 'package:dating_touchme_app/extension/ex_widget.dart'; import 'package:dating_touchme_app/generated/assets.dart'; import 'package:dating_touchme_app/pages/setting/match_task_page.dart'; import 'package:dating_touchme_app/widget/live/today_task_dialog.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; import 'package:flutter_smart_dialog/flutter_smart_dialog.dart'; import 'package:get/get.dart'; import 'package:tdesign_flutter/tdesign_flutter.dart'; import '../../controller/discover/room_controller.dart'; import '../../controller/global.dart'; class SettlementPage extends StatefulWidget { const SettlementPage({super.key}); @override State createState() => _SettlementPageState(); } class _SettlementPageState extends State { late final RoomController _roomController; @override void initState() { super.initState(); _roomController = Get.isRegistered() ? Get.find() : Get.put(RoomController()); } @override Widget build(BuildContext context) { return Scaffold( appBar: PageAppbar(title: "", backgroundColor: Colors.transparent, color: Colors.white,), backgroundColor: const Color.fromRGBO(19, 16, 47, 1), body: Container( padding: EdgeInsets.only( top: 100.w, right: 25.w, bottom: 25.w, left: 25.w ), child: Column( children: [ Text( GlobalData().userData!.nickName ?? "", style: TextStyle( fontSize: 14.w, color: Colors.white ), ), SizedBox(height: 62.w,), Stack( clipBehavior: Clip.none, children: [ Container( width: 325.w, height: 154.w, padding: EdgeInsets.only( top: 70.w, right: 26.w, bottom: 38.w, left: 26.w, ), decoration: BoxDecoration( border: Border.all(width: 1.w, color: const Color.fromRGBO(117, 98, 249, 1)), color: const Color.fromRGBO(117, 98, 249, .2) ), child: Row( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ RichText( text: TextSpan( style: TextStyle( color: Colors.white, fontWeight: FontWeight.w500 ), children: [ TextSpan( text: "${_roomController.consumption.value.todayLiveDurationMins}", style: TextStyle( fontSize: 23.w, ) ), TextSpan( text: "分钟", style: TextStyle( fontSize: 12.w, ) ) ] ), ), Text( "今日总开播", style: TextStyle( fontSize: 12.w, color: const Color.fromRGBO(117, 98, 249, 1) ), ) ], ), Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ RichText( text: TextSpan( style: TextStyle( color: Colors.white, fontWeight: FontWeight.w500 ), children: [ TextSpan( text: "${_roomController.consumption.value.todayLiveDurationMins}", style: TextStyle( fontSize: 23.w, ) ), TextSpan( text: "分钟", style: TextStyle( fontSize: 12.w, ) ) ] ), ), Text( "今日有效开播", style: TextStyle( fontSize: 12.w, color: const Color.fromRGBO(117, 98, 249, 1) ), ) ], ), Column( mainAxisAlignment: MainAxisAlignment.spaceBetween, children: [ RichText( text: TextSpan( style: TextStyle( color: Colors.white, fontWeight: FontWeight.w500 ), children: [ TextSpan( text: _roomController.todayLiveIncomeStr.value, style: TextStyle( fontSize: 23.w, ) ), TextSpan( text: "元", style: TextStyle( fontSize: 12.w, ) ) ] ), ), Text( "今日收入", style: TextStyle( fontSize: 12.w, color: const Color.fromRGBO(117, 98, 249, 1) ), ) ], ), ], ), ), Positioned( left: 117.w, top: -52.w, child: Container( width: 90.w, height: 90.w, decoration: BoxDecoration( borderRadius: BorderRadius.all(Radius.circular(90.w)), border: Border.all(width: 2.w, color: Colors.white) ), child: ClipRRect( borderRadius: BorderRadius.all(Radius.circular(86.w)), child: CachedNetworkImage( imageUrl: "${ GlobalData().userData!.profilePhoto ?? ""}?x-oss-process=image/format,webp/resize,w_240", width: 86.w, height: 86.w, fit: BoxFit.cover, placeholder: (context, url) => Container( color: Colors.white38, child: Center( child: CircularProgressIndicator( strokeWidth: 1.w, color: Colors.grey, ), ), ), errorWidget: (context, url, error) => Image.asset( Assets.imagesUserAvatar, width: 86.w, height: 86.w, fit: BoxFit.cover, ), ), ), ), ) ], ), SizedBox(height: 18.w,), Image.asset( Assets.imagesSettlementToday, width: 325.w, ).onTap(() async { try{ await _roomController.getTaskData(); FocusScope.of(context).unfocus(); // 隐藏 overlay SmartDialog.dismiss(); _roomController.setDialogDismiss(true); SmartDialog.show( alignment: Alignment.bottomCenter, maskColor: TDTheme.of(context).fontGyColor2, onDismiss: (){ _roomController.setDialogDismiss(false); }, builder: (_) { return TodayTaskDialog(); }, ); } catch (e){ SmartDialog.showToast('暂无任务'); } }), SizedBox(height: 7.w,), if(false) Image.asset( Assets.imagesSettlementMonth, width: 325.w, ).onTap(() { Get.to(() => MatchTaskPage()); }), Spacer(), Container( width: 325.w, height: 45.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, color: Colors.white, fontWeight: FontWeight.w500 ), ), ), ).onTap(() { // Get.offAll(() => const MainPage()); Get.back(); }) ], ), ), ); } }