From 39d2dc2cecb658303b569ffe33f3079c385bd99b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=AD=90=E8=B4=A4?= Date: Fri, 8 May 2026 17:39:21 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AF=B9=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/controller/discover/room_controller.dart | 24 +++++++++ .../live/live_room_user_profile_dialog.dart | 49 +++++++++++++------ 2 files changed, 58 insertions(+), 15 deletions(-) diff --git a/lib/controller/discover/room_controller.dart b/lib/controller/discover/room_controller.dart index 228ed13..e61bdea 100644 --- a/lib/controller/discover/room_controller.dart +++ b/lib/controller/discover/room_controller.dart @@ -130,6 +130,30 @@ class RoomController extends GetxController with WidgetsBindingObserver { + + createUserBlack(blackUserId) async { + try { + final response = await _networkService.userApi.userCreateUserBlacklist({ + "blackUserId": blackUserId, + }); + if (response.data.isSuccess) { + + SmartDialog.showToast('已拉黑成功'); + } else { + + // 响应失败,抛出异常 + throw Exception(response.data.message ?? '获取数据失败'); + } + } catch(e){ + print('拉黑失败: $e'); + SmartDialog.showToast('拉黑失败'); + rethrow; + + } finally { + + } + } + getUserData(String miId, int type) async { try { diff --git a/lib/widget/live/live_room_user_profile_dialog.dart b/lib/widget/live/live_room_user_profile_dialog.dart index d8a5a4e..615297e 100644 --- a/lib/widget/live/live_room_user_profile_dialog.dart +++ b/lib/widget/live/live_room_user_profile_dialog.dart @@ -4,6 +4,7 @@ import 'package:dating_touchme_app/extension/ex_widget.dart'; import 'package:dating_touchme_app/generated/assets.dart'; import 'package:dating_touchme_app/model/home/user_info_data.dart'; import 'package:dating_touchme_app/model/live/live_chat_message.dart'; +import 'package:dating_touchme_app/pages/home/report_page.dart'; import 'package:dating_touchme_app/pages/message/chat_page.dart'; import 'package:flutter/material.dart'; import 'package:flutter_screenutil/flutter_screenutil.dart'; @@ -410,7 +411,7 @@ void showUserProfileDialog( SizedBox(height: 15.w), // 底部操作链接 if(isHost) Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ _buildActionLink('私聊', () { SmartDialog.dismiss(); @@ -418,12 +419,6 @@ void showUserProfileDialog( userId: message.userId, )); }), - Container( - width: 1.w, - height: 15.w, - color: const Color.fromRGBO(212, 212, 212, 1), - margin: EdgeInsets.symmetric(horizontal: 15.w), - ), if(!(userData.isFriend ?? false)) _buildActionLink('踢出房间', () async { // 解除连麦 await roomController.kickingRtcChannelUser( @@ -436,26 +431,50 @@ void showUserProfileDialog( SmartDialog.dismiss(); roomController.setDialogDismiss(false); }), - if(!(userData.isFriend ?? false)) Container( + _buildActionLink('送礼', () { + SmartDialog.dismiss(); + onShowGiftPopup(1); + }), + Container( width: 1.w, height: 15.w, color: const Color.fromRGBO(212, 212, 212, 1), margin: EdgeInsets.symmetric(horizontal: 15.w), ), - _buildActionLink('送礼物', () { + _buildActionLink('举报', () { SmartDialog.dismiss(); - onShowGiftPopup(1); - }), + + Get.to(() => ReportPage(id: userData.miUserId ?? "", userId: userData.miUserId ?? "", type: 1,)); + }, color: const Color.fromRGBO(144, 144, 144, 1)), + _buildActionLink('拉黑', () { + SmartDialog.dismiss(); + roomController.createUserBlack(userData.miUserId ?? ""); + }, color: const Color.fromRGBO(144, 144, 144, 1)), ], ), // 底部操作链接 if(!isHost) Row( - mainAxisAlignment: MainAxisAlignment.center, + mainAxisAlignment: MainAxisAlignment.spaceEvenly, children: [ - if(!(userData.isFriend ?? false)) _buildActionLink('送礼物', () { + if(!(userData.isFriend ?? false)) _buildActionLink('送礼', () { SmartDialog.dismiss(); onShowGiftPopup(1); }), + if(!(userData.isFriend ?? false)) Container( + width: 1.w, + height: 15.w, + color: const Color.fromRGBO(212, 212, 212, 1), + margin: EdgeInsets.symmetric(horizontal: 15.w), + ), + _buildActionLink('举报', () { + SmartDialog.dismiss(); + + Get.to(() => ReportPage(id: userData.miUserId ?? "", userId: userData.miUserId ?? "", type: 1,)); + }, color: const Color.fromRGBO(144, 144, 144, 1)), + _buildActionLink('拉黑', () { + SmartDialog.dismiss(); + roomController.createUserBlack(userData.miUserId ?? ""); + }, color: const Color.fromRGBO(144, 144, 144, 1)), ], ), ], @@ -508,7 +527,7 @@ Widget _buildTag(String text, Color bgColor) { ); } -Widget _buildActionLink(String text, VoidCallback onTap) { +Widget _buildActionLink(String text, VoidCallback onTap, {Color color = const Color.fromRGBO(117, 98, 249, 1)}) { return GestureDetector( onTap: onTap, child: Text( @@ -516,7 +535,7 @@ Widget _buildActionLink(String text, VoidCallback onTap) { style: TextStyle( fontSize: 14.w, fontWeight: FontWeight.w500, - color: const Color.fromRGBO(117, 98, 249, 1), + color: color, ), ), );