|
@@ -8,6 +8,8 @@ import user from '$config/user';
|
|
import {NoticeType} from "$utils/socket/const";
|
|
import {NoticeType} from "$utils/socket/const";
|
|
import giveGift from "$utils/control/giveGift";
|
|
import giveGift from "$utils/control/giveGift";
|
|
import personalDetail, {OpenType} from '$utils/control/personal-detail';
|
|
import personalDetail, {OpenType} from '$utils/control/personal-detail';
|
|
|
|
+import html from "$utils/tool/html";
|
|
|
|
+import {nextTick} from "vue";
|
|
|
|
|
|
export default <LibMixins>{
|
|
export default <LibMixins>{
|
|
|
|
|
|
@@ -20,7 +22,8 @@ export default <LibMixins>{
|
|
message:'',
|
|
message:'',
|
|
messageData:[],
|
|
messageData:[],
|
|
loadingStatus:true,
|
|
loadingStatus:true,
|
|
- opacity:0
|
|
|
|
|
|
+ opacity:0,
|
|
|
|
+ inputMessage:false
|
|
}
|
|
}
|
|
},
|
|
},
|
|
|
|
|
|
@@ -35,12 +38,12 @@ export default <LibMixins>{
|
|
handler(){
|
|
handler(){
|
|
if (this.uid && this._uid !== this.uid) {
|
|
if (this.uid && this._uid !== this.uid) {
|
|
|
|
|
|
-
|
|
|
|
-
|
|
|
|
socket.off('chat-content',NoticeType.message,{
|
|
socket.off('chat-content',NoticeType.message,{
|
|
userId: (this._uid || '').toString()
|
|
userId: (this._uid || '').toString()
|
|
});
|
|
});
|
|
|
|
|
|
|
|
+ this.message = '';
|
|
|
|
+
|
|
this._uid = this.uid;
|
|
this._uid = this.uid;
|
|
|
|
|
|
this.userInfo = {};
|
|
this.userInfo = {};
|
|
@@ -93,8 +96,12 @@ export default <LibMixins>{
|
|
watchMessage(item){
|
|
watchMessage(item){
|
|
// 清楚未读消息
|
|
// 清楚未读消息
|
|
this.socketUser && this.socketUser.read();
|
|
this.socketUser && this.socketUser.read();
|
|
- this.messageData.push(this.getMessageItem(item));
|
|
|
|
- return this.sendMessageScroll();
|
|
|
|
|
|
+ if (!item.isStatusMessage) {
|
|
|
|
+ this.messageData.push(this.getMessageItem(item));
|
|
|
|
+ return this.sendMessageScroll();
|
|
|
|
+ } else {
|
|
|
|
+ }
|
|
|
|
+
|
|
},
|
|
},
|
|
|
|
|
|
fetch() {
|
|
fetch() {
|
|
@@ -122,7 +129,7 @@ export default <LibMixins>{
|
|
|
|
|
|
// 获取历史消息
|
|
// 获取历史消息
|
|
getMessages(obj){
|
|
getMessages(obj){
|
|
-
|
|
|
|
|
|
+ clearTimeout(this.setOpacityTime);
|
|
this.socketUser.getMessages({
|
|
this.socketUser.getMessages({
|
|
timestamp: this.lastTime,
|
|
timestamp: this.lastTime,
|
|
count:obj.data.pageSize
|
|
count:obj.data.pageSize
|
|
@@ -130,19 +137,23 @@ export default <LibMixins>{
|
|
if (obj.data.unique === this.requestUnique) {
|
|
if (obj.data.unique === this.requestUnique) {
|
|
data.list = data.list || [];
|
|
data.list = data.list || [];
|
|
|
|
|
|
- // 最后的时间
|
|
|
|
- this.lastTime = data.list[data.list.length - 1] && data.list[data.list.length - 1].receivedTime;
|
|
|
|
|
|
+ try {
|
|
|
|
+ // 最后的时间
|
|
|
|
+ this.lastTime = data.list[data.list.length - 1] && data.list[data.list.length - 1].receivedTime;
|
|
|
|
|
|
- data.list = data.list.map((item)=>{
|
|
|
|
- return this.getMessageItem(item);
|
|
|
|
- });
|
|
|
|
|
|
|
|
- this.messageData.unshift(...data.list);
|
|
|
|
|
|
+ data.list = data.list.map((item)=>{
|
|
|
|
+ return this.getMessageItem(item);
|
|
|
|
+ });
|
|
|
|
|
|
|
|
+ this.messageData.unshift(...data.list);
|
|
|
|
+ } catch (e) {
|
|
|
|
+ console.log(e);
|
|
|
|
+ }
|
|
this.scrollToEnd(true);
|
|
this.scrollToEnd(true);
|
|
- }
|
|
|
|
-
|
|
|
|
|
|
|
|
|
|
+ obj.success();
|
|
|
|
+ }
|
|
}).catch(()=>{
|
|
}).catch(()=>{
|
|
obj.fail();
|
|
obj.fail();
|
|
this.opacity = 1;
|
|
this.opacity = 1;
|
|
@@ -152,9 +163,17 @@ export default <LibMixins>{
|
|
// 设置消息
|
|
// 设置消息
|
|
getMessageItem(item){
|
|
getMessageItem(item){
|
|
|
|
|
|
|
|
+ item = JSON.parse(JSON.stringify(item));
|
|
|
|
+
|
|
let uid = item.senderUserId == user.uid() ? user.uid() : this.nowUserInfo.uid;
|
|
let uid = item.senderUserId == user.uid() ? user.uid() : this.nowUserInfo.uid;
|
|
let toUserId = item.senderUserId == user.uid() ? this.nowUserInfo.uid : user.uid();
|
|
let toUserId = item.senderUserId == user.uid() ? this.nowUserInfo.uid : user.uid();
|
|
|
|
|
|
|
|
+ if (!item.content.userInfo && item.content.user) {
|
|
|
|
+ item.content.userInfo = {};
|
|
|
|
+ item.content.userInfo[item.content.user.id] = item.content.user;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+
|
|
return {
|
|
return {
|
|
...item.content,
|
|
...item.content,
|
|
type:item.messageType,
|
|
type:item.messageType,
|
|
@@ -190,15 +209,17 @@ export default <LibMixins>{
|
|
|
|
|
|
if (this.message && verification.trigger[VerificationType.empty](this.message)) {
|
|
if (this.message && verification.trigger[VerificationType.empty](this.message)) {
|
|
|
|
|
|
|
|
+ let message = html.encodeHTML(this.message);
|
|
|
|
+
|
|
this.messageData.push({
|
|
this.messageData.push({
|
|
- message:this.message,
|
|
|
|
|
|
+ message:message,
|
|
type:MessageType.text,
|
|
type:MessageType.text,
|
|
uid:user.uid(),
|
|
uid:user.uid(),
|
|
toUserId: this.nowUserInfo.uid
|
|
toUserId: this.nowUserInfo.uid
|
|
});
|
|
});
|
|
|
|
|
|
this.sendMessageScroll();
|
|
this.sendMessageScroll();
|
|
- this.sendText(this.message);
|
|
|
|
|
|
+ this.sendText(message);
|
|
|
|
|
|
this.message = '';
|
|
this.message = '';
|
|
|
|
|
|
@@ -212,7 +233,7 @@ export default <LibMixins>{
|
|
this.socketUser.send({
|
|
this.socketUser.send({
|
|
messageType: MessageType.text, // 'RC:TxtMsg'
|
|
messageType: MessageType.text, // 'RC:TxtMsg'
|
|
content:socket.addUser({
|
|
content:socket.addUser({
|
|
- message:message,
|
|
|
|
|
|
+ content:message,
|
|
},this.nowUserInfo)
|
|
},this.nowUserInfo)
|
|
});
|
|
});
|
|
}
|
|
}
|