feat: 私信
This commit is contained in:
@ -1,30 +1,39 @@
|
||||
import 'dart:convert';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_smart_dialog/flutter_smart_dialog.dart';
|
||||
import 'package:get/get.dart';
|
||||
import 'package:hive/hive.dart';
|
||||
import 'package:pilipala/http/msg.dart';
|
||||
import 'package:pilipala/models/msg/session.dart';
|
||||
import 'package:pilipala/pages/whisper/index.dart';
|
||||
import '../../utils/feed_back.dart';
|
||||
import '../../utils/storage.dart';
|
||||
|
||||
class WhisperDetailController extends GetxController {
|
||||
late int talkerId;
|
||||
int? talkerId;
|
||||
late String name;
|
||||
late String face;
|
||||
late String mid;
|
||||
late String heroTag;
|
||||
RxList<MessageItem> messageList = <MessageItem>[].obs;
|
||||
//表情转换图片规则
|
||||
List<dynamic>? eInfos;
|
||||
RxList<dynamic> eInfos = [].obs;
|
||||
final TextEditingController replyContentController = TextEditingController();
|
||||
Box userInfoCache = GStrorage.userInfo;
|
||||
List emoteList = [];
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
super.onInit();
|
||||
talkerId = int.parse(Get.parameters['talkerId']!);
|
||||
if (Get.parameters.containsKey('talkerId')) {
|
||||
talkerId = int.parse(Get.parameters['talkerId']!);
|
||||
} else {
|
||||
talkerId = int.parse(Get.parameters['mid']!);
|
||||
}
|
||||
name = Get.parameters['name']!;
|
||||
face = Get.parameters['face']!;
|
||||
mid = Get.parameters['mid']!;
|
||||
heroTag = Get.parameters['heroTag']!;
|
||||
}
|
||||
|
||||
Future querySessionMsg() async {
|
||||
@ -34,7 +43,7 @@ class WhisperDetailController extends GetxController {
|
||||
if (messageList.isNotEmpty) {
|
||||
ackSessionMsg();
|
||||
if (res['data'].eInfos != null) {
|
||||
eInfos = res['data'].eInfos;
|
||||
eInfos.value = res['data'].eInfos;
|
||||
}
|
||||
}
|
||||
} else {
|
||||
@ -73,7 +82,25 @@ class WhisperDetailController extends GetxController {
|
||||
msgType: 1,
|
||||
);
|
||||
if (result['status']) {
|
||||
SmartDialog.showToast('发送成功');
|
||||
String content = jsonDecode(result['data']['msg_content'])['content'];
|
||||
messageList.insert(
|
||||
0,
|
||||
MessageItem(
|
||||
msgSeqno: result['data']['msg_key'],
|
||||
senderUid: userInfo.mid,
|
||||
receiverId: int.parse(mid),
|
||||
content: {'content': content},
|
||||
msgType: 1,
|
||||
timestamp: DateTime.now().millisecondsSinceEpoch,
|
||||
),
|
||||
);
|
||||
eInfos.addAll(emoteList);
|
||||
replyContentController.clear();
|
||||
try {
|
||||
late final WhisperController whisperController =
|
||||
Get.find<WhisperController>();
|
||||
whisperController.refreshLastMsg(talkerId!, message);
|
||||
} catch (_) {}
|
||||
} else {
|
||||
SmartDialog.showToast(result['msg']);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user