更新消息小红点未读显示

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

@@ -132,7 +132,7 @@ class MessageController extends GetControllerEx<MessageModel> {
String queryUrl = "${serviceAddress}${serviceName}${serviceApi}"; String queryUrl = "${serviceAddress}${serviceName}${serviceApi}";
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) {
language = mhLanguageController.selectLanguage.value!.language_code; language = mhLanguageController.selectLanguage.value!.language_code;
} }
@@ -203,12 +203,8 @@ 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) {
language = mhLanguageController.selectLanguage.value!.language_code; language = mhLanguageController.selectLanguage.value!.language_code;
} }
@@ -227,7 +223,8 @@ class MessageController extends GetControllerEx<MessageModel> {
if (type != null) { if (type != null) {
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,24 +319,45 @@ class _HomePageState extends State<HomePage> {
mainAxisAlignment: mainAxisAlignment:
MainAxisAlignment.end, MainAxisAlignment.end,
children: [ children: [
Container( ClickableContainer(
constraints: BoxConstraints( backgroundColor:
maxWidth: Colors.transparent,
bodySize.maxWidth * highlightColor:
0.6), Colors.transparent,
child: Text( padding: EdgeInsets.all(0),
userInfoController.model.user! onTap: () async {
.nick_name ?? int login = userInfoController
'未命名'.tr, .model.login!;
style: TextStyle( if (login == 1) {
color: themeController await Get.toNamed(
.currentColor.sc3, "/updateUserPage");
fontSize: AppConstants() await userInfoController
.normal_text_fontSize, .getUserInfo();
userInfoController
.updateAll();
} else {
Get.toNamed("/loginPage");
}
},
child: Container(
constraints: BoxConstraints(
maxWidth:
bodySize.maxWidth *
0.6),
child: Text(
userInfoController.model
.user!.nick_name ??
'未命名'.tr,
style: TextStyle(
color: themeController
.currentColor.sc3,
fontSize: AppConstants()
.normal_text_fontSize,
),
maxLines: 1,
overflow:
TextOverflow.ellipsis,
), ),
maxLines: 1,
overflow:
TextOverflow.ellipsis,
), ),
), ),
// Obx(() { // Obx(() {

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,34 +349,38 @@ 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 Padding( return Obx(() {
padding: EdgeInsets.only(bottom: 6.rpx), int type1 = messageController.model.body_message_read!;
child: isEmpty int type2 = messageController.model.system_message_read!;
? Container() return Padding(
: Stack( padding: EdgeInsets.only(bottom: 6.rpx),
clipBehavior: Clip.none, child: isEmpty
children: [ ? Container()
SvgPicture.asset( : Stack(
path, clipBehavior: Clip.none,
width: size, children: [
height: size, SvgPicture.asset(
), path,
if (showBadge) width: size,
Positioned( height: size,
right: -20.rpx, ),
top: -2.rpx, if ((type1 == 1 || type2 == 1) && showBadge)
child: Container( Positioned(
width: 14.rpx, right: -20.rpx,
height: 14.rpx, top: -2.rpx,
decoration: const BoxDecoration( child: Container(
color: Colors.red, width: 14.rpx,
shape: BoxShape.circle, height: 14.rpx,
decoration: const BoxDecoration(
color: Colors.red,
shape: BoxShape.circle,
),
), ),
), ),
), ],
], ),
), );
); });
} }
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),