From 2d931437bd4087f159979f46cd86b6523746c9c6 Mon Sep 17 00:00:00 2001 From: 18631081161 <2088094923@qq.com> Date: Sun, 28 Jul 2024 17:43:50 +0800 Subject: [PATCH] =?UTF-8?q?=E8=AE=B0=E5=BF=86=E5=8D=A1.?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- assets/images/ic_memory_card.png | Bin 0 -> 47082 bytes lib/beans/invite_new_bean.dart | 17 ++++++ lib/beans/invite_new_bean.g.dart | 19 +++++++ lib/beans/user_info_bean.dart | 4 ++ lib/beans/user_info_bean.g.dart | 11 +++- lib/dialog/memory_card_dialog.dart | 85 +++++++++++++++++++++++++++++ lib/network/NetworkConfig.dart | 3 + lib/tools/chat/chat_page.dart | 53 ++++++++++-------- lib/tools/home/home_chat_page.dart | 12 +++- lib/tools/login/login_model.dart | 26 +++++++++ lib/tools/login/login_page.dart | 6 +- lib/tools/me/me_model.dart | 1 + 12 files changed, 212 insertions(+), 25 deletions(-) create mode 100644 assets/images/ic_memory_card.png create mode 100644 lib/beans/invite_new_bean.dart create mode 100644 lib/beans/invite_new_bean.g.dart create mode 100644 lib/dialog/memory_card_dialog.dart diff --git a/assets/images/ic_memory_card.png b/assets/images/ic_memory_card.png new file mode 100644 index 0000000000000000000000000000000000000000..78f03c397dac93770990b7f7f20a737c868159a1 GIT binary patch literal 47082 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ా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 NtmJozS~0_*{|9?G8~6YK literal 0 HcmV?d00001 diff --git a/lib/beans/invite_new_bean.dart b/lib/beans/invite_new_bean.dart new file mode 100644 index 0000000..36bd1b3 --- /dev/null +++ b/lib/beans/invite_new_bean.dart @@ -0,0 +1,17 @@ +import 'package:json_annotation/json_annotation.dart'; + +part 'invite_new_bean.g.dart'; + +///标签 +@JsonSerializable(explicitToJson: true) +class InviteNewBean { + String? imgUrl; + int? type; + + + InviteNewBean(this.imgUrl, this.type); + + factory InviteNewBean.fromJson(Map json) => _$InviteNewBeanFromJson(json); + + Map toJson() => _$InviteNewBeanToJson(this); +} diff --git a/lib/beans/invite_new_bean.g.dart b/lib/beans/invite_new_bean.g.dart new file mode 100644 index 0000000..0de5db8 --- /dev/null +++ b/lib/beans/invite_new_bean.g.dart @@ -0,0 +1,19 @@ +// GENERATED CODE - DO NOT MODIFY BY HAND + +part of 'invite_new_bean.dart'; + +// ************************************************************************** +// JsonSerializableGenerator +// ************************************************************************** + +InviteNewBean _$InviteNewBeanFromJson(Map json) => + InviteNewBean( + json['imgUrl'] as String?, + (json['type'] as num?)?.toInt(), + ); + +Map _$InviteNewBeanToJson(InviteNewBean instance) => + { + 'imgUrl': instance.imgUrl, + 'type': instance.type, + }; diff --git a/lib/beans/user_info_bean.dart b/lib/beans/user_info_bean.dart index 933c14f..c5aa76d 100644 --- a/lib/beans/user_info_bean.dart +++ b/lib/beans/user_info_bean.dart @@ -1,5 +1,6 @@ import 'package:json_annotation/json_annotation.dart'; +import 'invite_new_bean.dart'; import 'me_character_info_bean.dart'; part 'user_info_bean.g.dart'; @@ -14,6 +15,9 @@ class UserInfoBean { int? remainingChatCount; List? characterInfo; int? memoryCardCount; + InviteNewBean? inviteNewUser; + int? hasTalked; + int? photographs; UserInfoBean(this.currency, this.userIconUrl, this.userId, this.nickName, this.remainingChatCount, this.characterInfo, this.memoryCardCount); diff --git a/lib/beans/user_info_bean.g.dart b/lib/beans/user_info_bean.g.dart index 250bb62..a15d58b 100644 --- a/lib/beans/user_info_bean.g.dart +++ b/lib/beans/user_info_bean.g.dart @@ -16,7 +16,13 @@ UserInfoBean _$UserInfoBeanFromJson(Map json) => UserInfoBean( ?.map((e) => MeCharacterInfoBean.fromJson(e as Map)) .toList(), (json['memoryCardCount'] as num?)?.toInt(), - ); + ) + ..inviteNewUser = json['inviteNewUser'] == null + ? null + : InviteNewBean.fromJson( + json['inviteNewUser'] as Map) + ..hasTalked = (json['hasTalked'] as num?)?.toInt() + ..photographs = (json['photographs'] as num?)?.toInt(); Map _$UserInfoBeanToJson(UserInfoBean instance) => { @@ -27,4 +33,7 @@ Map _$UserInfoBeanToJson(UserInfoBean instance) => 'remainingChatCount': instance.remainingChatCount, 'characterInfo': instance.characterInfo?.map((e) => e.toJson()).toList(), 'memoryCardCount': instance.memoryCardCount, + 'inviteNewUser': instance.inviteNewUser?.toJson(), + 'hasTalked': instance.hasTalked, + 'photographs': instance.photographs, }; diff --git a/lib/dialog/memory_card_dialog.dart b/lib/dialog/memory_card_dialog.dart new file mode 100644 index 0000000..680518c --- /dev/null +++ b/lib/dialog/memory_card_dialog.dart @@ -0,0 +1,85 @@ +import 'package:flutter/material.dart'; + +import '../network/NetworkConfig.dart'; + +class MemoryCardDialog extends StatefulWidget { + Function onTap; + + MemoryCardDialog({required this.onTap}); + + @override + State createState() => _MemoryCardDialogState(); +} + +class _MemoryCardDialogState extends State { + @override + void initState() { + // TODO: implement initState + super.initState(); + } + + @override + Widget build(BuildContext context) { + return Material( + type: MaterialType.transparency, //透明类型 + color: Color(0x1A000000), + child: Container( + decoration: + BoxDecoration(color: Color(0xFF19191A), borderRadius: BorderRadius.only(topLeft: Radius.circular(7), topRight: Radius.circular(7))), + child: Column( + mainAxisSize: MainAxisSize.min, + children: [ + Container( + width: 24.7, + height: 3, + margin: EdgeInsets.only(top: 12), + decoration: BoxDecoration(color: Color(0xFF272734), borderRadius: BorderRadius.all(Radius.circular(7))), + ), + Container( + margin: EdgeInsets.only(top: 38, left: 22, bottom: 19), + child: Row( + mainAxisAlignment: MainAxisAlignment.center, + children: [ + Container( + decoration: BoxDecoration(color: Color(0xFF2A2A2A), borderRadius: BorderRadius.all(Radius.circular(7))), + child: Image( + width: 155, + height: 100, + image: AssetImage('assets/images/ic_memory_card.png'), + ), + ), + Container( + margin: EdgeInsets.only(left: 30), + child: Text( + "x ${NetworkConfig.userInfoBean?.memoryCardCount}", + style: TextStyle(color: Color(0xFFFF9000)), + ), + ) + ], + ), + ), + GestureDetector( + onTap: () { + widget.onTap(); + }, + child: Container( + width: double.infinity, + height: 40, + margin: EdgeInsets.all(18), + alignment: Alignment.center, + decoration: BoxDecoration( + color: Color(0xFFFF9000), + borderRadius: BorderRadius.all(Radius.circular(7)), + ), + child: Text( + '使用记忆提升卡', + style: TextStyle(fontSize: 16, fontWeight: FontWeight.w600), + ), + ), + ), + ], + ), + ), + ); + } +} diff --git a/lib/network/NetworkConfig.dart b/lib/network/NetworkConfig.dart index 1a453dc..2e5efcc 100644 --- a/lib/network/NetworkConfig.dart +++ b/lib/network/NetworkConfig.dart @@ -1,3 +1,5 @@ +import '../beans/user_info_bean.dart'; + class NetworkConfig { static String ServerDomain_Online = BASE_URLS[SELECT_INDEX]; static String deviceID = ""; //设备ID @@ -25,6 +27,7 @@ class NetworkConfig { static String userName = ""; static String Version = "1.0.0"; static String Language = "en"; + static UserInfoBean? userInfoBean; static const String accountLogin = "api/Account/AccountLogIn"; //登录 static const String sendPhoneNumber = "api/Account/SendPhoneNumber"; //获取验证码 diff --git a/lib/tools/chat/chat_page.dart b/lib/tools/chat/chat_page.dart index 6e50366..ed7832e 100644 --- a/lib/tools/chat/chat_page.dart +++ b/lib/tools/chat/chat_page.dart @@ -13,7 +13,9 @@ import '../../beans/send_message_bean.dart'; import '../../common/func.dart'; import '../../custom/custom_popup.dart'; import '../../dialog/delete_dialog.dart'; +import '../../dialog/memory_card_dialog.dart'; import '../../dialog/restart_chat_dialog.dart'; +import '../../network/NetworkConfig.dart'; import 'chat_info_page.dart'; import 'chat_model.dart'; @@ -341,25 +343,25 @@ class _ChatPageState extends State { ), ///关注 - Positioned( - right: 0, - child: GestureDetector( - onTap: () { - isHalf = !isHalf; - setState(() {}); - }, - child: Container( - width: 50, - height: 24, - alignment: Alignment.center, - decoration: BoxDecoration(color: Color(0x33000000), borderRadius: BorderRadius.all(Radius.circular(12))), - child: Text( - '+ 关注', - style: TextStyle(fontSize: 12, color: Colors.white), - ), - ), - ), - ), + // Positioned( + // right: 0, + // child: GestureDetector( + // onTap: () { + // isHalf = !isHalf; + // setState(() {}); + // }, + // child: Container( + // width: 50, + // height: 24, + // alignment: Alignment.center, + // decoration: BoxDecoration(color: Color(0x33000000), borderRadius: BorderRadius.all(Radius.circular(12))), + // child: Text( + // '+ 关注', + // style: TextStyle(fontSize: 12, color: Colors.white), + // ), + // ), + // ), + // ), ], ), ), @@ -567,8 +569,15 @@ class _ChatPageState extends State { setState(() { isMore = false; }); - // EasyLoading.show(status: 'loading...'); - // _viewmodel.delChat(widget.characterId); + if (NetworkConfig.userInfoBean!.memoryCardCount! > 0) { + FunctionUtil.bottomSheetDialog(context, MemoryCardDialog( + onTap: () { + EasyLoading.showToast("status"); + }, + )); + } else { + Navigator.pushNamed(context, "/ShopPage"); + } }, child: Column( mainAxisSize: MainAxisSize.min, @@ -758,7 +767,7 @@ class _ChatPageState extends State { child: Text( chatList[index].content!, style: const TextStyle( - fontSize: 16, + fontSize: 14, color: Color(0xFFE8E8E8), ), ), diff --git a/lib/tools/home/home_chat_page.dart b/lib/tools/home/home_chat_page.dart index 340977a..fef1d60 100644 --- a/lib/tools/home/home_chat_page.dart +++ b/lib/tools/home/home_chat_page.dart @@ -13,6 +13,7 @@ import '../../beans/send_message_bean.dart'; import '../../common/func.dart'; import '../../custom/custom_popup.dart'; import '../../dialog/delete_dialog.dart'; +import '../../dialog/memory_card_dialog.dart'; import '../../dialog/restart_chat_dialog.dart'; import '../../network/NetworkConfig.dart'; import '../chat/chat_info_page.dart'; @@ -565,6 +566,15 @@ class _HomeChatPageState extends State with AutomaticKeepAliveClie }); // EasyLoading.show(status: 'loading...'); // _viewmodel.delChat(widget.characterId); + if (NetworkConfig.userInfoBean!.memoryCardCount! > 0) { + FunctionUtil.bottomSheetDialog(context, MemoryCardDialog( + onTap: () { + EasyLoading.showToast("status"); + }, + )); + } else { + Navigator.pushNamed(context, "/ShopPage"); + } }, child: Column( mainAxisSize: MainAxisSize.min, @@ -758,7 +768,7 @@ class _HomeChatPageState extends State with AutomaticKeepAliveClie child: Text( chatList[index].content!, style: const TextStyle( - fontSize: 16, + fontSize: 14, color: Color(0xFFE8E8E8), ), ), diff --git a/lib/tools/login/login_model.dart b/lib/tools/login/login_model.dart index d7e59e2..48077ed 100644 --- a/lib/tools/login/login_model.dart +++ b/lib/tools/login/login_model.dart @@ -5,6 +5,7 @@ import 'package:talk/network/NetworkConfig.dart'; import 'package:talk/network/RequestCenter.dart'; import '../../beans/login_bean.dart'; +import '../../beans/user_info_bean.dart'; import '../../network/BaseEntity.dart'; class LoginModel { @@ -59,6 +60,8 @@ class LoginModel { final SharedPreferences prefs = await SharedPreferences.getInstance(); await prefs.setString('token', loginBean.token!); + getUserInfo(); + streamController.sink.add({ 'code': "login", //有数据 'data': dataEntity.message, @@ -73,4 +76,27 @@ class LoginModel { print("errorEntity==${errorEntity.message}"); }); } + + ///用户信息 + Future getUserInfo() async { + RequestCenter.instance.requestGet(NetworkConfig.getUserInfo, {}, (BaseEntity dataEntity) { + if (dataEntity.code == 0) { + UserInfoBean userInfoBean = UserInfoBean.fromJson(dataEntity.data); + NetworkConfig.userInfoBean = userInfoBean; + + streamController.sink.add({ + 'code': "getUserInfo", //有数据 + 'data': userInfoBean, + }); + } else { + streamController.sink.add({ + 'code': "error", // + 'data': dataEntity.message, + }); + } + }, (ErrorEntity errorEntity) { + print("errorEntity==${errorEntity.message}"); + }); + } + } diff --git a/lib/tools/login/login_page.dart b/lib/tools/login/login_page.dart index 584b903..b7b173c 100644 --- a/lib/tools/login/login_page.dart +++ b/lib/tools/login/login_page.dart @@ -85,6 +85,10 @@ class _LoginPageState extends State { break; case "login": EasyLoading.showToast(newData['data']); + break; + + case "getUserInfo": + EasyLoading.dismiss(); Navigator.pushReplacementNamed(context, "/HomePage"); break; @@ -204,7 +208,7 @@ class _LoginPageState extends State { onTap: () { if (phoneText != "" && codeText != "") { if (isCheck) { - EasyLoading.showToast("登录"); + EasyLoading.show(status: "'loading...'"); _viewmodel.login(phoneText, codeText, 1, ""); } else { EasyLoading.showToast("请选中协议"); diff --git a/lib/tools/me/me_model.dart b/lib/tools/me/me_model.dart index 33d39e3..e027b28 100644 --- a/lib/tools/me/me_model.dart +++ b/lib/tools/me/me_model.dart @@ -21,6 +21,7 @@ class MeModel { RequestCenter.instance.requestGet(NetworkConfig.getUserInfo, {}, (BaseEntity dataEntity) { if (dataEntity.code == 0) { UserInfoBean userInfoBean = UserInfoBean.fromJson(dataEntity.data); + NetworkConfig.userInfoBean = userInfoBean; streamController.sink.add({ 'code': "getUserInfo", //有数据