diff --git a/jiuyi2/api/news.js b/jiuyi2/api/news.js
index 2d9c258e..a5f24aa7 100644
--- a/jiuyi2/api/news.js
+++ b/jiuyi2/api/news.js
@@ -208,10 +208,11 @@ export const news = {
})
},
- // 群聊发消息
+ // 消息列表
getMessageList(param) {
return util.request({
- url: `/user/chat/getMessageList`,
+ // url: `/user/chat/getMessageList`,
+ url: `/user/chat/getMsgListById`,
query: param.query,
data: param.data,
method: 'GET'
diff --git a/jiuyi2/components/footerMenu/footerMenu.vue b/jiuyi2/components/footerMenu/footerMenu.vue
index f52ce3cb..a42a390f 100644
--- a/jiuyi2/components/footerMenu/footerMenu.vue
+++ b/jiuyi2/components/footerMenu/footerMenu.vue
@@ -15,6 +15,9 @@ import {
reactive,
watch,
} from 'vue'
+import {
+ onLoad,
+} from "@dcloudio/uni-app"
// 工具库
import util from '@/common/js/util';
const {
@@ -149,6 +152,8 @@ onMounted(() => {
//
// proxy.$refs.alert.open()
+})
+onLoad(()=>{
// 获取未读消息数量
getNoReadNum()
})
@@ -182,6 +187,7 @@ function handleMenu(item) {
else uni.navigateTo({
url: `/${item.pagePath}`,
})
+ getNoReadNum()
return
}
//
@@ -221,9 +227,10 @@ function getNoReadNum() {
return
}
- const unreadCount = uni.$chat.getTotalUnreadMessageCount();
-
+ // #ifdef APP
+ const unreadCount = uni.$chat.getTotalUnreadMessageCount();
noReadNum.value = +unreadCount > 99 ? '99+' : unreadCount;
+ // #endif
}
diff --git a/jiuyi2/components/index/collectAdd.vue b/jiuyi2/components/index/collectAdd.vue
index aa75f010..1ad3f062 100644
--- a/jiuyi2/components/index/collectAdd.vue
+++ b/jiuyi2/components/index/collectAdd.vue
@@ -43,9 +43,11 @@
})
onBeforeUnmount(() => {
+ // #ifdef APP
uni.offKeyboardHeightChange(rs => {
console.log('rs', rs)
})
+ // #endif
})
/**
diff --git a/jiuyi2/components/news/book.vue b/jiuyi2/components/news/book.vue
index 8577e803..d03f1e35 100644
--- a/jiuyi2/components/news/book.vue
+++ b/jiuyi2/components/news/book.vue
@@ -1,430 +1,433 @@
@@ -449,10 +452,10 @@
{{ item.letter }}
+ :key="secIndex" @click="handleSwipeAction($event, user)">
- {{user.remark || user.userNickname}}
+ {{ user.remark || user.userNickname }}
@@ -475,7 +478,7 @@
@@ -489,47 +492,47 @@
\ No newline at end of file
diff --git a/jiuyi2/components/news/msgList.vue b/jiuyi2/components/news/msgList.vue
index debed427..0030eda5 100644
--- a/jiuyi2/components/news/msgList.vue
+++ b/jiuyi2/components/news/msgList.vue
@@ -69,7 +69,7 @@ const list = reactive([])
onMounted(() => {
if (props.type == 0) {
getList()
- } else if(props.type == 1) {
+ } else if (props.type == 1) {
// 视频消息
} else if (props.type == 2) {
// 商城消息
@@ -79,7 +79,7 @@ onMounted(() => {
})
onUnmounted(() => {
- // removeListener()
+ removeListener()
})
// 开启监听消息
@@ -93,7 +93,9 @@ function addListener() {
// 移除监听
function removeListener() {
- uni.$chat.on(TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED);
+ // #ifdef APP
+ uni.$chat.off(TencentCloudChat.EVENT.CONVERSATION_LIST_UPDATED);
+ // #endif
}
// 获取消息列表
@@ -104,7 +106,8 @@ function getList() {
}
}).then(rs => {
if (rs.code == 200) {
- list.data = handleList(rs.data);
+ // list.data = handleList(rs.data);
+ list.data = handleList(JSON.parse(rs.msg).SessionItem);
return
}
util.alert({
@@ -112,17 +115,6 @@ function getList() {
showCancel: false,
})
})
-
- // // 验证sdk是否准备完毕
- // let isReady = uni.$chat.isReady();
- // if (!isReady) {
- // setTimeout(function () {
- // getList();
- // }, 1000);
- // return
- // }
-
- // uni.$chat.getMessageList({})
}
/**
@@ -130,53 +122,37 @@ function getList() {
* @param {Object} item
*/
function handleList(list) {
- list.forEach(item => {
- item.callbackJson = JSON.parse(item.callbackJson);
-
- if (item.groupId != null) {
- item.unreadCount = getGroupNoReadNum(item.groupId)
- }
- if (item.callbackJson.callback_json.length) {
- let msgType = item.callbackJson.callback_json[0].MsgType;
- if (msgType == TencentCloudChat.TYPES.MSG_TEXT) {
- item.chatText = item.callbackJson.callback_json[0].MsgContent.Text
- } else if (msgType == TencentCloudChat.TYPES.MSG_IMAGE) {
- item.chatText = '[图片]'
- } else if (msgType == TencentCloudChat.TYPES.MSG_AUDIO) {
- item.chatText = '[语音]'
- } else if (msgType == TencentCloudChat.TYPES.MSG_VIDEO) {
- item.chatText = '[视频]'
- } else if (msgType == TencentCloudChat.TYPES.MSG_CUSTOM) {
- if (item.callbackJson.callback_json[0].businessType == 'redPacket') {
- item.chatText = `[红包] ${item.callbackJson.blessing}`
- } else if (item.callbackJson.callback_json[0].businessType == '1') {
- // if (item.callbackJson.callback_json[0].call_type == '1') {
- // item.chatText = '[语音通话]'
- // } else if (item.callbackJson.callback_json[0].call_type == '2') {
- // item.chatText = '[视频通话]'
- // }
- }
- }
- }
- })
-
- return list
-}
-
-// 查询群聊未读数量
-function getGroupNoReadNum(groupId) {
// 验证sdk是否准备完毕
let isReady = uni.$chat.isReady();
if (!isReady) {
setTimeout(function () {
- getGroupNoReadNum(groupId);
+ handleList(list);
}, 800);
return
}
- const unreadCount = uni.$chat.getTotalUnreadMessageCount('GROUP', groupId);
+ list.forEach(item => {
+ item.MsgTime = handleDate(item.MsgTime)
- return unreadCount;
+ let type = item.Type == 1 ? `C2C${item.To_Account}` : `GROUP${item.GroupId}`;
+ uni.$chat.getConversationProfile(type).then(rs => {
+ let res = rs.data.conversation;
+
+ item.chatText = res.lastMessage.messageForShow;
+ item.unreadCount = res.unreadCount;
+ if (item.Type == 1) {
+ item.avatar = res.userProfile.avatar;
+ item.name = res.userProfile.nick;
+ } else if (item.Type == 2) {
+ item.avatar = res.groupProfile.avatar;
+ item.name = res.groupProfile.name;
+ item.num = res.groupProfile.memberCount;
+ }
+
+ })
+ })
+
+ return list
}
// // 点击用户
@@ -204,14 +180,14 @@ function handleChat(item) {
// 单聊
if (item.groupId == null) {
param.type = 'C2C'
- param.name = `${item.callbackJson.from_name}`
- param.msgId = `${item.callbackJson.from_id}`
+ param.name = `${item.name}`
+ param.msgId = `${item.To_Account}`
} else {
// 群聊
param.type = 'GROUP'
- param.name = `${item.groupChatDTO.name}`
- param.msgId = `${item.groupId}`
- param.num = `${item.groupChatDTO.memberCount}`
+ param.name = `${item.name}`
+ param.msgId = `${item.GroupId}`
+ param.num = `${item.num}`
}
setRead(item)
@@ -240,7 +216,7 @@ function delMsg(item) {
return
}
- let conversationId = item.groupId == null ? `C2C${item.fromId}` : `GROUP${item.groupId}`;
+ let conversationId = item.Type == 1 ? `C2C${item.To_Account}` : `GROUP${item.GroupId}`;
uni.$chat.deleteConversation(conversationId).then(rs => {
getList()
@@ -258,7 +234,7 @@ function setRead(item) {
return
}
- let conversationId = item.groupId == null ? `C2C${item.fromId}` : `GROUP${item.groupId}`;
+ let conversationId = item.Type == 1 ? `C2C${item.To_Account}` : `GROUP${item.GroupId}`;
uni.$chat.setMessageRead({
conversationID: conversationId,
}).then(rs => {
@@ -266,6 +242,21 @@ function setRead(item) {
})
}
+// 时间转换
+function handleDate(timestamp) {
+ var timestamp = +timestamp * 1000;
+ var date = new Date(timestamp);
+
+ var M = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1) + '-';
+ var D = (date.getDate() < 10 ? '0' + date.getDate() : date.getDate()) + ' ';
+ var h = (date.getHours() < 10 ? '0' + date.getHours() : date.getHours()) + ':';
+ var m = (date.getMinutes() < 10 ? '0' + date.getMinutes() : date.getMinutes()) + ':';
+ var s = (date.getSeconds() < 10 ? '0' + date.getSeconds() : date.getSeconds());
+
+ var formattedDate = M + D + h + m + s;
+ return formattedDate
+}
+
@@ -326,25 +317,28 @@ function setRead(item) {
@click="handleMenu($event, item)">
-
+
+
+
{{ item.unreadCount }}
-
+ {{ item.name }}
+
- {{ util.formatTime('MM-dd HH:mm', item.createTime) }}
+ {{ util.formatTime('MM-dd HH:mm', item.MsgTime) }}
{{ item.chatText }}
diff --git a/jiuyi2/pages/news/chat/chat.vue b/jiuyi2/pages/news/chat/chat.vue
index 809c204c..9d2f7842 100644
--- a/jiuyi2/pages/news/chat/chat.vue
+++ b/jiuyi2/pages/news/chat/chat.vue
@@ -155,7 +155,9 @@ function addListener() {
}, 200)
}
+ // #ifdef APP
uni.$chat.on(TencentCloudChat.EVENT.MESSAGE_RECEIVED, onMessageReceived);
+ // #endif
}
// 监听内容滚动
@@ -210,6 +212,7 @@ function sendMsg(param) {
data: param.data,
}).then((rs) => {
if (rs.code == 200) {
+ getHistory()
param.success ? param.success() : ''
return
}
@@ -310,15 +313,15 @@ function getMoreHistroy() {
*/
function getHistory(param = {}) {
// 验证sdk是否准备完毕
+ // #ifdef APP
let isReady = uni.$chat.isReady();
- //
if (!isReady && userinfo.value.id) {
setTimeout(function () {
- getHistory(param)
+ getHistory()
}, 200);
return
}
- //
+ // #endif
loading.value = true
// 获取单聊聊天记录
diff --git a/jiuyi2/pages/news/news.vue b/jiuyi2/pages/news/news.vue
index d1144e2d..994fc7ce 100644
--- a/jiuyi2/pages/news/news.vue
+++ b/jiuyi2/pages/news/news.vue
@@ -94,7 +94,9 @@ function imLoading() {
// 移除监听
function removeListener() {
+ // #ifdef APP
uni.$chat.off(TencentCloudChat.EVENT.SDK_READY);
+ // #endif
}
/**