更新消息小红点未读显示

This commit is contained in:
wyf
2025-12-10 16:59:29 +08:00
parent fb5a17830b
commit f2657e4238
5 changed files with 75 additions and 54 deletions

View File

@@ -203,10 +203,6 @@ class MessageController extends GetControllerEx<MessageModel> {
// 拼接 URL添加 type 参数 // 拼接 URL添加 type 参数
String queryUrl = "$serviceAddress$serviceName$serviceApi"; String queryUrl = "$serviceAddress$serviceName$serviceApi";
if (type != null && type.isNotEmpty) {
queryUrl += "?type=$type";
}
String? language = ""; String? language = "";
if (AppConstants().ent_type == APPPackageType.MHT.code) { if (AppConstants().ent_type == APPPackageType.MHT.code) {
if (mhLanguageController.selectLanguage != null) { if (mhLanguageController.selectLanguage != null) {
@@ -228,6 +224,7 @@ class MessageController extends GetControllerEx<MessageModel> {
queryUrl = "$queryUrl&type=$type"; queryUrl = "$queryUrl&type=$type";
} }
queryUrl = "$queryUrl&mid=ALL"; queryUrl = "$queryUrl&mid=ALL";
queryUrl = "$queryUrl";
var response = await EasyDartModule.dio.post(queryUrl); var response = await EasyDartModule.dio.post(queryUrl);
if (response != null) { if (response != null) {

View File

@@ -486,7 +486,7 @@ Future<void> startMessagePolling(int ent_type) async {
} }
} }
_messageTimer = Timer.periodic(Duration(seconds: 10), (timer) async { _messageTimer = Timer.periodic(Duration(seconds: 1), (timer) async {
try { try {
if (ent_type == APPPackageType.MHT.code) { if (ent_type == APPPackageType.MHT.code) {
if (Get.isRegistered<MhMessageController>()) { if (Get.isRegistered<MhMessageController>()) {

View File

@@ -319,14 +319,34 @@ class _HomePageState extends State<HomePage> {
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.end, MainAxisAlignment.end,
children: [ children: [
Container( ClickableContainer(
backgroundColor:
Colors.transparent,
highlightColor:
Colors.transparent,
padding: EdgeInsets.all(0),
onTap: () async {
int login = userInfoController
.model.login!;
if (login == 1) {
await Get.toNamed(
"/updateUserPage");
await userInfoController
.getUserInfo();
userInfoController
.updateAll();
} else {
Get.toNamed("/loginPage");
}
},
child: Container(
constraints: BoxConstraints( constraints: BoxConstraints(
maxWidth: maxWidth:
bodySize.maxWidth * bodySize.maxWidth *
0.6), 0.6),
child: Text( child: Text(
userInfoController.model.user! userInfoController.model
.nick_name ?? .user!.nick_name ??
'未命名'.tr, '未命名'.tr,
style: TextStyle( style: TextStyle(
color: themeController color: themeController
@@ -339,6 +359,7 @@ class _HomePageState extends State<HomePage> {
TextOverflow.ellipsis, TextOverflow.ellipsis,
), ),
), ),
),
// Obx(() { // Obx(() {
// return Row( // return Row(
// children: [ // children: [

View File

@@ -321,8 +321,7 @@ class MainPageBottomChange extends GetView<MainPageController> {
"assets/img/menu/e.svg", "assets/img/menu/n_e.svg", "菜单.小e".tr), "assets/img/menu/e.svg", "assets/img/menu/n_e.svg", "菜单.小e".tr),
getBottomNavigationBarItem("assets/img/menu/message.svg", getBottomNavigationBarItem("assets/img/menu/message.svg",
"assets/img/menu/n_message.svg", "菜单.消息".tr, "assets/img/menu/n_message.svg", "菜单.消息".tr,
showBadge: (messageController.model.body_message_read == 1 || showBadge: true),
messageController.model.system_message_read == 1)),
getBottomNavigationBarItem("assets/img/menu/mine.svg", getBottomNavigationBarItem("assets/img/menu/mine.svg",
"assets/img/menu/n_mine.svg", "菜单.我的".tr), "assets/img/menu/n_mine.svg", "菜单.我的".tr),
]; ];
@@ -350,6 +349,9 @@ class MainPageBottomChange extends GetView<MainPageController> {
if (size == 0) size = 36.rpx; if (size == 0) size = 36.rpx;
Widget buildIcon(String path) { Widget buildIcon(String path) {
return Obx(() {
int type1 = messageController.model.body_message_read!;
int type2 = messageController.model.system_message_read!;
return Padding( return Padding(
padding: EdgeInsets.only(bottom: 6.rpx), padding: EdgeInsets.only(bottom: 6.rpx),
child: isEmpty child: isEmpty
@@ -362,7 +364,7 @@ class MainPageBottomChange extends GetView<MainPageController> {
width: size, width: size,
height: size, height: size,
), ),
if (showBadge) if ((type1 == 1 || type2 == 1) && showBadge)
Positioned( Positioned(
right: -20.rpx, right: -20.rpx,
top: -2.rpx, top: -2.rpx,
@@ -378,6 +380,7 @@ class MainPageBottomChange extends GetView<MainPageController> {
], ],
), ),
); );
});
} }
return BottomNavigationBarItem( return BottomNavigationBarItem(

View File

@@ -703,7 +703,7 @@ class _MinePageState extends State<MinePage> {
mainAxisSize: MainAxisSize.max, mainAxisSize: MainAxisSize.max,
children: [ children: [
Text( Text(
'V1.0.2512.09', 'V1.0.2512.10',
style: TextStyle( style: TextStyle(
fontFamily: 'Inter', fontFamily: 'Inter',
// color: Color(0xFFD9E3EB), // color: Color(0xFFD9E3EB),