mirror of
https://github.com/lakaola/chat-flutter.git
synced 2026-07-02 15:04:21 +08:00
127 lines
3.7 KiB
Dart
127 lines
3.7 KiB
Dart
import 'package:flutter/cupertino.dart';
|
|
import 'package:flutter/material.dart';
|
|
import 'package:flutter_easyloading/flutter_easyloading.dart';
|
|
import 'package:get/get.dart';
|
|
import 'package:demo/config/app_theme.dart';
|
|
import 'package:demo/event/event_message.dart';
|
|
import 'package:demo/views/msg/msg_forward_controller.dart';
|
|
import 'package:demo/tools/tools_enum.dart';
|
|
import 'package:demo/tools/tools_storage.dart';
|
|
import 'package:demo/component/component_contact.dart';
|
|
|
|
// 消息转发
|
|
class MsgForwardView extends GetView<MsgForwardController> {
|
|
// 路由地址
|
|
static const String routeName = '/msg_forward';
|
|
const MsgForwardView({super.key});
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
Get.lazyPut(() => MsgForwardController());
|
|
return Scaffold(
|
|
resizeToAvoidBottomInset: false,
|
|
appBar: AppBar(
|
|
title: const Text('消息转发'),
|
|
),
|
|
body: GetBuilder<MsgForwardController>(builder: (builder) {
|
|
return _buildTabs(context);
|
|
}),
|
|
);
|
|
}
|
|
|
|
_buildTabs(BuildContext context) {
|
|
return DefaultTabController(
|
|
length: 2,
|
|
child: Scaffold(
|
|
resizeToAvoidBottomInset: false,
|
|
appBar: AppBar(
|
|
backgroundColor: Colors.white,
|
|
toolbarHeight: 0,
|
|
bottom: TabBar(
|
|
indicatorColor: AppTheme.color,
|
|
indicatorSize: TabBarIndicatorSize.tab,
|
|
labelStyle: const TextStyle(
|
|
fontSize: 16,
|
|
),
|
|
labelColor: Colors.black,
|
|
tabs: const [
|
|
Tab(
|
|
text: "好友",
|
|
),
|
|
Tab(
|
|
text: "群组",
|
|
),
|
|
],
|
|
),
|
|
),
|
|
body: TabBarView(
|
|
children: [
|
|
ComponentContact(
|
|
dataList: controller.friendList,
|
|
onTap: (contact) {
|
|
_forward(context, contact, ChatTalk.friend);
|
|
},
|
|
),
|
|
ComponentContact(
|
|
dataList: controller.groupList,
|
|
onTap: (contact) {
|
|
_forward(context, contact, ChatTalk.group);
|
|
},
|
|
),
|
|
],
|
|
),
|
|
),
|
|
);
|
|
}
|
|
|
|
// 转发
|
|
_forward(BuildContext context, ContactModel contact, ChatTalk chatTalk) {
|
|
showCupertinoDialog(
|
|
context: context,
|
|
builder: (builder) {
|
|
return CupertinoAlertDialog(
|
|
title: const Text('确认转发?'),
|
|
actions: [
|
|
CupertinoDialogAction(
|
|
child: const Text('取消'),
|
|
onPressed: () {
|
|
Get.back();
|
|
},
|
|
),
|
|
CupertinoDialogAction(
|
|
child: const Text('发送'),
|
|
onPressed: () {
|
|
// 关闭
|
|
Get.back();
|
|
// 提交
|
|
LocalChat localChat = LocalChat(
|
|
chatId: contact.userId,
|
|
title: contact.nickname,
|
|
nickname: contact.nickname,
|
|
portrait: contact.portrait,
|
|
chatTalk: chatTalk,
|
|
);
|
|
// 转发
|
|
List<ForwardModel> dataList = controller.dataList;
|
|
for (var data in dataList) {
|
|
EventChatModel model = EventChatModel(
|
|
localChat,
|
|
data.msgType,
|
|
data.content,
|
|
);
|
|
// 发布消息
|
|
EventMessage().listenSend.add(model);
|
|
}
|
|
// 提醒
|
|
EasyLoading.showToast('转发成功');
|
|
// 返回
|
|
Get.back(result: '@');
|
|
},
|
|
),
|
|
],
|
|
);
|
|
},
|
|
);
|
|
}
|
|
}
|