消息红点提示
This commit is contained in:
@@ -1,18 +1,12 @@
|
||||
import 'package:ef/ef.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutterflow_ui/flutterflow_ui.dart';
|
||||
import 'package:vbvs_app/common/color/appConstants.dart';
|
||||
import 'package:vbvs_app/common/color/app_uri_status.dart';
|
||||
import 'package:vbvs_app/common/util/FitTool.dart';
|
||||
import 'package:vbvs_app/component/tool/ClickableContainer.dart';
|
||||
import 'package:vbvs_app/component/tool/CustomCard.dart';
|
||||
import 'package:vbvs_app/component/tool/TopSlideNotification.dart';
|
||||
import 'package:vbvs_app/controller/device/device_share_controller.dart';
|
||||
import 'package:vbvs_app/controller/message/message_controller.dart';
|
||||
import 'package:vbvs_app/controller/mh_controller/message_controller.dart';
|
||||
import 'package:vbvs_app/controller/theme_controller/ThemeController.dart';
|
||||
import 'package:vbvs_app/enum/MessageStatus.dart';
|
||||
import 'package:vbvs_app/model/api_response.dart';
|
||||
import 'package:vbvs_app/pages/device_bind/componnet/bind_dialog.dart';
|
||||
|
||||
class MhMessageListWidget extends StatefulWidget {
|
||||
final data;
|
||||
@@ -25,12 +19,19 @@ class MhMessageListWidget extends StatefulWidget {
|
||||
|
||||
class _MhMessageListWidgetState extends State<MhMessageListWidget> {
|
||||
ThemeController themeController = Get.find();
|
||||
MessageController messageController = Get.find();
|
||||
DeviceShareController deviceShareController = Get.find();
|
||||
MhMessageController messageController = Get.find();
|
||||
late RxMap<String, dynamic> messageInfo;
|
||||
|
||||
// @override
|
||||
// void initState() {
|
||||
// super.initState();
|
||||
// messageInfo = Map<String, dynamic>.from(widget.data).obs; // 复制成 obs
|
||||
// }
|
||||
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
var messageInfo = widget.data;
|
||||
messageInfo = Map<String, dynamic>.from(widget.data).obs;
|
||||
print(messageInfo);
|
||||
return Stack(
|
||||
children: [
|
||||
@@ -40,7 +41,10 @@ class _MhMessageListWidgetState extends State<MhMessageListWidget> {
|
||||
borderRadius: 20.rpx,
|
||||
padding:
|
||||
EdgeInsetsDirectional.fromSTEB(30.rpx, 26.rpx, 30.rpx, 26.rpx),
|
||||
onTap: () {},
|
||||
onTap: () async {
|
||||
messageController.updateMessageReadStatus(messageInfo['type'],
|
||||
mid: messageInfo['_id']);
|
||||
},
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.max,
|
||||
children: [
|
||||
@@ -103,7 +107,7 @@ class _MhMessageListWidgetState extends State<MhMessageListWidget> {
|
||||
colors: [Color(0xFF84F5FF)],
|
||||
enableAnimation: true, // 有点击缩放动画
|
||||
enableGradient: false, // 不用渐变
|
||||
onTap: () {
|
||||
onTap: () async {
|
||||
// if (messageInfo['status'] == 1) {
|
||||
// showConfirmDialog(
|
||||
// context, Container(), "是否确认接受该设备".tr,
|
||||
@@ -130,6 +134,11 @@ class _MhMessageListWidgetState extends State<MhMessageListWidget> {
|
||||
// }
|
||||
// }, onCancel: () {});
|
||||
// }
|
||||
|
||||
await messageController.updateMessageReadStatus(
|
||||
messageInfo['type'],
|
||||
mid: messageInfo['_id']);
|
||||
// await messageController.getMessageList();
|
||||
Get.toNamed('/messageDetail', arguments: messageInfo);
|
||||
},
|
||||
child: Center(
|
||||
@@ -150,6 +159,27 @@ class _MhMessageListWidgetState extends State<MhMessageListWidget> {
|
||||
],
|
||||
),
|
||||
),
|
||||
Obx(() {
|
||||
final info = messageInfo.value;
|
||||
final readTime = info['read_time'];
|
||||
final shouldShowDot = readTime == null || readTime.toString().isEmpty;
|
||||
|
||||
return shouldShowDot
|
||||
? Positioned(
|
||||
top: 30.rpx,
|
||||
right: 30.rpx,
|
||||
child: Container(
|
||||
width: 15.rpx,
|
||||
height: 15.rpx,
|
||||
alignment: Alignment.center,
|
||||
decoration: BoxDecoration(
|
||||
color: Colors.red,
|
||||
shape: BoxShape.circle,
|
||||
),
|
||||
),
|
||||
)
|
||||
: SizedBox.shrink();
|
||||
})
|
||||
],
|
||||
);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user