|
@@ -22,8 +22,10 @@
|
|
|
@send="handleSend">
|
|
|
<template #cover>
|
|
|
<div class="cover">
|
|
|
- <i class="lemon-icon-message"></i>
|
|
|
- <p><b>自定义封面 Lemon</b>IMUI</p>
|
|
|
+ <!-- <i class="lemon-icon-message"></i>
|
|
|
+ <p>
|
|
|
+ <b>自定义封面 Lemon</b>IMUI
|
|
|
+ </p> -->
|
|
|
</div>
|
|
|
</template>
|
|
|
<template #message-title="contact">
|
|
@@ -101,13 +103,13 @@
|
|
|
import store from "@/store";
|
|
|
import { getQrCode } from '@/api/qw/login';
|
|
|
import { getDeviceId} from '@/api/qw/account';
|
|
|
-import LemonMessageVoice from "@/components/LemonUI/components/lemon-message-voice";
|
|
|
-import { getContacts,getContactsByUser} from '@/api/qw/im';
|
|
|
+import LemonMessageVoice from "@/components/LemonUI/components/message/voice";
|
|
|
+import { getContactsByUser,getConversation,getMessageList} from '@/api/qw/im';
|
|
|
import ContactsData from "@/components/LemonUI/database/contacts";
|
|
|
import MessagesData from "@/components/LemonUI/database/messages";
|
|
|
import EmojiData from "@/components/LemonUI/database/emoji";
|
|
|
import '@/components/LemonUI/index.css';
|
|
|
-
|
|
|
+let pages = {};
|
|
|
export default {
|
|
|
name: "qqChat",
|
|
|
components: { },
|
|
@@ -248,14 +250,21 @@ export default {
|
|
|
displayName: "June",
|
|
|
avatar: "https://p.qqan.com/up/2018-4/15244505348390471.jpg",
|
|
|
},
|
|
|
+ contactData:null,
|
|
|
+ conversationData:null,
|
|
|
windowWidth: document.documentElement.clientWidth*0.65, //实时屏幕宽度
|
|
|
windowHeight: document.documentElement.clientHeight*0.7, //实时屏幕高度
|
|
|
+ queryParams: {
|
|
|
+ pageNum: 1,
|
|
|
+ pageSize: 10,
|
|
|
+ conversationId: null,
|
|
|
+ },
|
|
|
};
|
|
|
},
|
|
|
created(){
|
|
|
this.initSocket();
|
|
|
- this.$store.dispatch('qwLoginOut').then(() => {
|
|
|
- });
|
|
|
+ // this.$store.dispatch('qwLoginOut').then(() => {
|
|
|
+ // });
|
|
|
},
|
|
|
mounted() {
|
|
|
this.qwUser=store.getters.qwUser;
|
|
@@ -266,8 +275,11 @@ export default {
|
|
|
}, 2000);
|
|
|
return;
|
|
|
}
|
|
|
+ this.UserData.id=this.qwUser.userId;
|
|
|
+ this.UserData.displayName=this.qwUser.nickName;
|
|
|
+ this.UserData.avatar=this.qwUser.avatar;
|
|
|
this.showQW=true;
|
|
|
- this.getContacts(this.qwUser.deviceId);
|
|
|
+
|
|
|
const contactData1 = {
|
|
|
id: "contact-1",
|
|
|
displayName: "工作协作群",
|
|
@@ -301,17 +313,23 @@ export default {
|
|
|
lastSendTime: 3,
|
|
|
lastContent: "你好123",
|
|
|
};
|
|
|
-
|
|
|
const IMUI = this.$refs.IMUI;
|
|
|
|
|
|
- IMUI.initContacts(ContactsData);
|
|
|
-
|
|
|
- var conversationData = ContactsData.filter(item => item.id<=13);
|
|
|
+ var conversationData = ContactsData.filter(item => item.id<=1688856679458971);
|
|
|
conversationData.sort((a1, a2) => {
|
|
|
return a2.lastSendTime - a1.lastSendTime;
|
|
|
});
|
|
|
|
|
|
- IMUI.initConversations(conversationData);
|
|
|
+ this.getContacts(); //获取联系人信息
|
|
|
+ this.getConversation(); //获取会话信息
|
|
|
+
|
|
|
+ // IMUI.initContacts(ContactsData);
|
|
|
+
|
|
|
+ // IMUI.initConversations(conversationData);
|
|
|
+
|
|
|
+ // setTimeout(() => {
|
|
|
+ // IMUI.changeContact(1688856679458971);
|
|
|
+ // }, 500);
|
|
|
|
|
|
IMUI.initMenus([
|
|
|
{
|
|
@@ -368,22 +386,14 @@ export default {
|
|
|
},
|
|
|
]);
|
|
|
|
|
|
- IMUI.initEmoji(EmojiData);
|
|
|
-
|
|
|
- // setTimeout(() => {
|
|
|
- // IMUI.changeContact("13");
|
|
|
- // }, 500);
|
|
|
+ IMUI.initEmoji(EmojiData);
|
|
|
|
|
|
},
|
|
|
|
|
|
methods: {
|
|
|
- initSocket() {
|
|
|
+ initSocket() {
|
|
|
let that=this;
|
|
|
if(!!this.qwIm.socket){
|
|
|
- // this.qwIm.initSocket(userId,true);
|
|
|
- // this.qwIm.socket.onopen = function() {
|
|
|
- // console.log("socket连接成功");
|
|
|
- // };
|
|
|
this.qwIm.socket.onerror = function() {
|
|
|
console.log("连接错误")
|
|
|
};
|
|
@@ -407,14 +417,32 @@ export default {
|
|
|
console.log("socket已经关闭")
|
|
|
};
|
|
|
}
|
|
|
- },
|
|
|
- getContacts(){
|
|
|
+ },
|
|
|
+ getContacts(){
|
|
|
getContactsByUser(this.qwUser.userId).then(response => {
|
|
|
this.contactData = response.data;
|
|
|
this.$refs.IMUI.initContacts(this.contactData);
|
|
|
- console.log("qxj request contactData:"+JSON.stringify(this.contactData));
|
|
|
+ //console.log("qxj request contactData:"+JSON.stringify(this.contactData));
|
|
|
+ });
|
|
|
+ },
|
|
|
+ getConversation(){
|
|
|
+ let that=this;
|
|
|
+ const IMUI = this.$refs.IMUI;
|
|
|
+ getConversation(this.qwUser.userId).then(response => {
|
|
|
+ this.conversationData = response.data;
|
|
|
+ IMUI.initConversations(response.data);
|
|
|
+ var fstConversation=this.conversationData[0];
|
|
|
+ //console.log("qxj fstConversation:"+JSON.stringify(fstConversation));
|
|
|
+ if(fstConversation){
|
|
|
+ IMUI.changeContact(fstConversation.conversationId);
|
|
|
+ // setTimeout(() => {
|
|
|
+ // IMUI.changeContact(1688856679458971);
|
|
|
+ // }, 500);
|
|
|
+ }
|
|
|
+ //console.log("qxj request conversation:"+JSON.stringify(response.data));
|
|
|
});
|
|
|
},
|
|
|
+
|
|
|
messageTimeFormat(time) {
|
|
|
console.log("qxj messageTimeFormat:"+time);
|
|
|
return this.friendlyDate(time);
|
|
@@ -448,31 +476,31 @@ export default {
|
|
|
this.IMUI.openDrawer(params);
|
|
|
},
|
|
|
handlePullMessages(contact, next,instance) {
|
|
|
- const { IMUI } = this.$refs;
|
|
|
- console.log("qxj instance:"+instance.getMessages(instance.currentContactId));
|
|
|
- setTimeout(() => {
|
|
|
- var tmessages=MessagesData[contact.id];
|
|
|
- let messages= tmessages.sort((c1, c2) => c1.sendTime - c2.sendTime);
|
|
|
- var currentMsgs=instance.getMessages(instance.currentContactId);
|
|
|
- var sorMsgs=[];
|
|
|
- var num=0
|
|
|
- for (let index = currentMsgs.length; index < messages.length; index++) {
|
|
|
- const item = messages[index];
|
|
|
- if(num>=5){
|
|
|
- break;
|
|
|
- }
|
|
|
- sorMsgs.push(item);
|
|
|
- num++;
|
|
|
- }
|
|
|
- let isEnd = false;
|
|
|
- if (currentMsgs.length+sorMsgs.length>=messages.length){
|
|
|
- isEnd = true;
|
|
|
- }
|
|
|
- next(MessagesData[contact.id], isEnd);
|
|
|
- }, 3000);
|
|
|
+ const { IMUI } = this.$refs;
|
|
|
+ //console.log("qxj instance:"+instance.getMessages(instance.currentContactId));
|
|
|
+ let isEnd = false;
|
|
|
+ getMessageList(this.queryParams).then(response => {
|
|
|
+ if(response.code==200){
|
|
|
+ isEnd=response.data.isLastPage;
|
|
|
+ next(response.data.list, isEnd);
|
|
|
+ if(!isEnd){
|
|
|
+ pages[contact.conversationId]++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
+ // setTimeout(() => {
|
|
|
+ // let isEnd = true;
|
|
|
+ // next(MessagesData[contact.id], isEnd);
|
|
|
+ // }, 2000);
|
|
|
+
|
|
|
},
|
|
|
handleChangeContact(contact, instance) {
|
|
|
console.log("qxj contact:"+JSON.stringify(contact));
|
|
|
+ if (!pages[contact.conversationId]){
|
|
|
+ pages[contact.conversationId] =1;
|
|
|
+ }
|
|
|
+ this.queryParams.pageNum=pages[contact.conversationId];
|
|
|
+ this.queryParams.conversationId=contact.conversationId;
|
|
|
//instance.updateContact(contact);
|
|
|
instance.closeDrawer();
|
|
|
},
|