update 群聊
This commit is contained in:
parent
9d2bec920f
commit
b99bce26e4
@ -6,12 +6,12 @@ var host = ''
|
||||
var hostGo = ''
|
||||
|
||||
// if (_NODE_) {
|
||||
// host = 'https://love.ufutx.com/api' // 线上环境
|
||||
// hostGo = 'https://love.ufutx.com/go/api' // 线上环境
|
||||
host = 'http://love.ufutx.net/go/api' // 本地环境
|
||||
// hostGo = 'http://health.ufutx.net/go/api' // 本地环境
|
||||
// host = 'https://love.ufutx.com/api' // 线上环境
|
||||
hostGo = 'https://love.ufutx.com/go/api' // 线上环境
|
||||
// host = 'http://love.ufutx.net/go/api' // 本地环境
|
||||
// hostGo = 'http://health.ufutx.net/go/api' // 本地环境
|
||||
// } else {
|
||||
// host = 'https://love.ufutx.com/api' // 线上环境
|
||||
// host = 'https://love.ufutx.com/api' // 线上环境
|
||||
// }
|
||||
|
||||
export const service = {
|
||||
|
||||
@ -560,7 +560,7 @@ page {
|
||||
<template>
|
||||
<view class="ui-chitchat">
|
||||
<image class="m_tips_icon" src="https://image.fulllinkai.com/202305/05/2172ea48286be34e3a4e80a8c2a4571a.png" mode="aspectFit" @tap="reportShow = true"></image>
|
||||
<scroll-view class="ui-scroll-view" style="height: {{windowHeight - bottomBoxH}}rpx;" scroll-y="true" upper-threshold="50" bindscrolltoupper="getHistoryMsg" scroll-into-view="{{toView}}" enable-flex="{{true}}">
|
||||
<scroll-view class="ui-scroll-view" style="height: {{windowHeight - bottomBoxH}}rpx;" :scroll-y="scrollY" upper-threshold="50" bindscrolltoupper="getHistoryMsg" scroll-into-view="{{toView}}" enable-flex="{{true}}">
|
||||
<view class="ui-top-placeholder"></view>
|
||||
<block v-show="loading">
|
||||
<image v-if="chatInfoData.other_real_approved != 1" class="ui-tips-pic" src="https://image.fulllinkai.com/202203/22/2a0d6bba0289f28b8d816e4deb1efa4c.png" mode="widthFix"></image>
|
||||
@ -715,6 +715,7 @@ wepy.page({
|
||||
|
||||
recorderManager: wx.getRecorderManager(),
|
||||
startPoint: 0,
|
||||
scrollY: true,
|
||||
sendLock: true, // audio发送锁
|
||||
microphoneShow: false,
|
||||
microphoneType: false, // 按住或松开
|
||||
@ -838,47 +839,43 @@ wepy.page({
|
||||
vm.openShow = false
|
||||
vm.uploadState = true
|
||||
vm.progressValue = 5
|
||||
try {
|
||||
app.globalData.nim.msg.sendImageMsg({
|
||||
scene: 'p2p',
|
||||
to: vm.otherUserId,
|
||||
type: 'image',
|
||||
filePath: file,
|
||||
onUploadProgress: function (progress) {
|
||||
console.log(progress, '上传进度')
|
||||
vm.progressValue = progress.percentage
|
||||
},
|
||||
onSendBefore: function (msg) {
|
||||
console.log(msg, '上传完成, 图片信息')
|
||||
vm.msgList.push({
|
||||
text: '',
|
||||
attach: vm.calculatePic(msg.attach, msg.type),
|
||||
id: `id_${msg.time}`,
|
||||
isSelf: true,
|
||||
avatar: vm.myAvatar,
|
||||
time: getTime(format(msg.time)),
|
||||
showTime: timeContrast(format(msg.time), vm.lastTime),
|
||||
name: msg.fromNick,
|
||||
userId: msg.from,
|
||||
isSend: msg.status == 'sendFailed' ? 2 : 1, // sendFailed 发送失败
|
||||
msgType: 'image'
|
||||
})
|
||||
vm.lastTime = format(msg.time)
|
||||
vm.callbackSend('picture')
|
||||
vm.$nextTick(() => {
|
||||
vm.toView = `id_${msg.time}`
|
||||
})
|
||||
// 防止图片撑开触发加载历史数据
|
||||
vm.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
vm.uploadState = false
|
||||
}, 500)
|
||||
})
|
||||
}
|
||||
})
|
||||
} catch (err) {
|
||||
vm.sendFileError()
|
||||
}
|
||||
app.globalData.nim.msg.sendImageMsg({
|
||||
scene: 'p2p',
|
||||
to: vm.otherUserId,
|
||||
type: 'image',
|
||||
filePath: file,
|
||||
onUploadProgress: function (progress) {
|
||||
console.log(progress, '上传进度')
|
||||
vm.progressValue = progress.percentage
|
||||
},
|
||||
onSendBefore: function (msg) {
|
||||
console.log(msg, '上传完成, 图片信息')
|
||||
vm.msgList.push({
|
||||
text: '',
|
||||
attach: vm.calculatePic(msg.attach, msg.type),
|
||||
id: `id_${msg.time}`,
|
||||
isSelf: true,
|
||||
avatar: vm.myAvatar,
|
||||
time: getTime(format(msg.time)),
|
||||
showTime: timeContrast(format(msg.time), vm.lastTime),
|
||||
name: msg.fromNick,
|
||||
userId: msg.from,
|
||||
isSend: msg.status == 'sendFailed' ? 2 : 1, // sendFailed 发送失败
|
||||
msgType: 'image'
|
||||
})
|
||||
vm.lastTime = format(msg.time)
|
||||
vm.callbackSend('picture')
|
||||
vm.$nextTick(() => {
|
||||
vm.toView = `id_${msg.time}`
|
||||
})
|
||||
// 防止图片撑开触发加载历史数据
|
||||
vm.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
vm.uploadState = false
|
||||
}, 500)
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
// 发送视频
|
||||
sendVideos(file) {
|
||||
@ -1081,6 +1078,8 @@ wepy.page({
|
||||
}
|
||||
if (item.content_type == 'text' && /\[[^\]]+\]/.test(item.content)) {
|
||||
item.body = vm.transitionMsg(item.content)
|
||||
} else {
|
||||
item.body = item.content
|
||||
}
|
||||
vm.lastTime = format(item.time)
|
||||
})
|
||||
@ -1091,7 +1090,7 @@ wepy.page({
|
||||
setTimeout(() => {
|
||||
data.forEach((item) => {
|
||||
vm.msgList.unshift({
|
||||
text: item.content,
|
||||
text: item.body,
|
||||
attach: vm.calculatePic(item.attach, item.content_type),
|
||||
id: `id_${item.time}`,
|
||||
timestamp: item.time,
|
||||
@ -1109,21 +1108,24 @@ wepy.page({
|
||||
})
|
||||
console.log(vm.msgList, data[0].time, '88888888888888888')
|
||||
vm.$nextTick(() => {
|
||||
if (vm.msgList.length < 8) {
|
||||
vm.toView = `id_${data[0].time}`
|
||||
vm.toView = `id_${data[0].time}`
|
||||
if (vm.msgList.length > 15) {
|
||||
vm.scrollY = false
|
||||
}
|
||||
vm.lastId = `${data[data.length - 1].id}`
|
||||
vm.loading = true
|
||||
// 防止撑开触发加载历史数据
|
||||
setTimeout(() => {
|
||||
vm.uploadState = false
|
||||
vm.scrollY = true
|
||||
}, 500)
|
||||
})
|
||||
})
|
||||
} else {
|
||||
vm.loading = true
|
||||
vm.scrollY = true
|
||||
}
|
||||
if (data && data.length < 7) {
|
||||
if (data && data.length < 15) {
|
||||
vm.finished = true
|
||||
}
|
||||
}
|
||||
|
||||
@ -529,7 +529,7 @@ page {
|
||||
<template>
|
||||
<view class="ui-groupChitchat">
|
||||
<image class="m_tips_icon" @tap="jumpDetailPath" src="https://image.fulllinkai.com/202307/24/8c9d68ecf83230ea5e394aa98ef1765d.png" mode="aspectFit"></image>
|
||||
<scroll-view class="ui-scroll-view" style="height: {{windowHeight - bottomBoxH}}rpx;" scroll-y="true" upper-threshold="50" bindscrolltoupper="getHistoryMsg" scroll-into-view="{{toView}}" enable-flex="{{true}}">
|
||||
<scroll-view class="ui-scroll-view" style="height: {{windowHeight - bottomBoxH}}rpx;" :scroll-y="scrollY" upper-threshold="50" bindscrolltoupper="getHistoryMsg" scroll-into-view="{{toView}}" enable-flex="{{true}}">
|
||||
<view class="ui-top-placeholder"></view>
|
||||
<view class="ui-tips-box" v-show="loading">
|
||||
<view class="font_28 color333 bold">
|
||||
@ -543,7 +543,7 @@ page {
|
||||
<view class="ui-msg-data-box" v-show="msgList.length > 0">
|
||||
<!-- <view class="text-center font_2 ui-pb-24 color666" v-if="finished">没有更多消息了</view>-->
|
||||
<view v-for="(item, index) in msgList" :key="index" class="ui-msg-data" id="{{item.id}}">
|
||||
<block v-if="item.msgType == 'notification' && item.tips">
|
||||
<block v-if="item.msgType == '7' && item.tips">
|
||||
<!--群消息通知-->
|
||||
<view class="text-center color999 font_24">{{item.tips}}</view>
|
||||
</block>
|
||||
@ -555,20 +555,20 @@ page {
|
||||
<view class="ui-relative">
|
||||
<view v-if="!item.isSelf && membersData.user_team.show_other_nick" class="font_26 color999 ui-pb-8">{{item.name}}</view>
|
||||
<!--文本加表情信息-->
|
||||
<view class="{{!item.isSelf ? 'ui-left-msg-radius ui-msg-left color3' : 'ui-right-msg-radius ui-msg-right white'}} font_28" v-if="item.msgType == 'text'">
|
||||
<view class="{{!item.isSelf ? 'ui-left-msg-radius ui-msg-left color3' : 'ui-right-msg-radius ui-msg-right white'}} font_28" v-if="item.msgType == '0'">
|
||||
<rich-text nodes="{{item.text}}"></rich-text>
|
||||
</view>
|
||||
<!--图片信息-->
|
||||
<image v-if="item.msgType == 'image'" class="ui-msg-left-pic" :style="{maxWidth: item.attach.w + 'rpx', maxHeight: item.attach.h + 'rpx'}" :src="item.attach.url" mode="aspectFill" @tap.stop="previewImage(item.attach.url)"></image>
|
||||
<image v-if="item.msgType == '1'" class="ui-msg-left-pic" :style="{maxWidth: item.attach.w + 'rpx', maxHeight: item.attach.h + 'rpx'}" :src="item.attach.url" mode="aspectFill" @tap.stop="previewImage(item.attach.url)"></image>
|
||||
<!--音频信息-->
|
||||
<view v-if="item.msgType == 'audio'" class="{{!item.isSelf ? 'ui-left-msg-radius ui-left-audio' : 'ui-right-msg-radius ui-right-audio white' }} ui-audio-box font_36 f-fc" :style="{width: item.audioDur < 20 ? '120rpx' :item.audioDur < 40 ? '180rpx' : '320rpx', maxWidth: '320rpx!important', minWidth: '120rpx!important'}" @tap.stop="playAudio(item.attach, index)">
|
||||
<view v-if="item.msgType == '2'" class="{{!item.isSelf ? 'ui-left-msg-radius ui-left-audio' : 'ui-right-msg-radius ui-right-audio white' }} ui-audio-box font_36 f-fc" :style="{width: item.audioDur < 20 ? '120rpx' :item.audioDur < 40 ? '180rpx' : '320rpx', maxWidth: '320rpx!important', minWidth: '120rpx!important'}" @tap.stop="playAudio(item.attach, index)">
|
||||
<image v-if="!item.isSelf" class="{{!audioState || playAudioIndex != index ? 'ui-audio-icon' : 'ui-audio-icon-l-play'}}" src="https://image.fulllinkai.com/202308/09/a0e320ef4f498309745d35f6798e970f.png" mode="aspectFit" lazy-load="false"></image>
|
||||
<image v-else class="{{!audioState || playAudioIndex != index ? 'ui-audio-icon' : 'ui-audio-icon-r-play'}}" src="https://image.fulllinkai.com/202308/09/5514071f2d388102b5672e46ea1922f4.png" mode="aspectFit" lazy-load="false"></image>
|
||||
<view v-if="!audioState || playAudioIndex != index">{{item.audioDur+ '"'}}</view>
|
||||
<view v-else>{{audioTime + '"'}}</view>
|
||||
</view>
|
||||
<!--视频信息-->
|
||||
<view v-if="item.msgType == 'video'" :style="{width: item.attach.w + 'rpx', height: item.attach.h + 'rpx', display: videoIndex == index ? 'none' : 'block'}" class="liveImg" mode="widthFix" @tap.stop="playVideo(index, item.id)">
|
||||
<view v-if="item.msgType == '3'" :style="{width: item.attach.w + 'rpx', height: item.attach.h + 'rpx', display: videoIndex == index ? 'none' : 'block'}" class="liveImg" mode="widthFix" @tap.stop="playVideo(index, item.id)">
|
||||
<image v-if="videoIndex != index" class="ui-video-box" :src="item.attach.poster" :style="{width: item.attach.w + 'rpx', height: item.attach.h + 'rpx'}">
|
||||
<view class="ui-vide-poster">
|
||||
<image class="ui-video_play_icon" src="https://image.fulllinkai.com/202308/17/42c88bf039bb56f85cfcb9af0392ffb6.png"></image>
|
||||
@ -673,6 +673,7 @@ wepy.page({
|
||||
|
||||
recorderManager: wx.getRecorderManager(),
|
||||
startPoint: 0,
|
||||
scrollY: true,
|
||||
sendLock: true, // audio发送锁
|
||||
microphoneShow: false,
|
||||
microphoneType: false, // 按住或松开
|
||||
@ -707,6 +708,7 @@ wepy.page({
|
||||
toView: '',
|
||||
uploadState: false,
|
||||
progressValue: 0, // 上传进度
|
||||
lastId: '', // 历史记录分页数据最后一条id
|
||||
lastTime: '', // 历史记录分页数据最后一条的时间戳
|
||||
lastMsgId: '', // 历史记录分页数据最后一条的id
|
||||
beginTime: '', // 历史记录分页数据最后一条的时间
|
||||
@ -724,10 +726,10 @@ wepy.page({
|
||||
// 获取群成员信息
|
||||
getMembers() {
|
||||
let vm = this
|
||||
vm.$post({url: `${service.host}/chat/group/detail?team_id=${vm.otherUserId}`}).then(({code, data}) => {
|
||||
vm.$get({url: `${service.host}/team/${vm.otherUserId}/detail`}).then(({code, data}) => {
|
||||
if (code === 0) {
|
||||
// 第一次进入页面的时候才请求历史消息
|
||||
if (!vm.membersData.id) {
|
||||
if (!vm.membersData.user_team) {
|
||||
vm.$nextTick(() => {
|
||||
// 获取历史消息
|
||||
vm.getHistoryMsg()
|
||||
@ -771,11 +773,6 @@ wepy.page({
|
||||
send() {
|
||||
let vm = this
|
||||
let timeData = new Date().getTime()
|
||||
let data = {
|
||||
to_user_id: vm.otherUserId,
|
||||
content: vm.msg,
|
||||
type: 'text'
|
||||
}
|
||||
if (!vm.msg) {
|
||||
vm.$showToast('请输入聊天内容')
|
||||
return
|
||||
@ -792,106 +789,83 @@ wepy.page({
|
||||
name: vm.myName,
|
||||
userId: vm.myUserId,
|
||||
isSend: 0,
|
||||
msgType: 'text'
|
||||
msgType: '0'
|
||||
})
|
||||
vm.emojiShow = false
|
||||
vm.msg = ''
|
||||
vm.replyContent = ''
|
||||
vm.toView = `id_${timeData}`
|
||||
let msgIndex = 0
|
||||
let msgNewObj = {}
|
||||
msgIndex = vm.msgList.findIndex((e) => e.timestamp == timeData)
|
||||
vm.$post({url: `${service.host}/chat/message/send`, data}).then(({code, data}) => {
|
||||
if (code == 0) {
|
||||
app.globalData.nim.msg.sendTextMsg({
|
||||
scene: 'team',
|
||||
to: vm.otherUserId,
|
||||
body: data.content,
|
||||
isSend: 0,
|
||||
onSendBefore: function (msg) {
|
||||
console.log('get msg before', msg)
|
||||
if (/\[[^\]]+\]/.test(data.content)) {
|
||||
data.content = vm.transitionMsg(data.content)
|
||||
}
|
||||
msgNewObj = {
|
||||
text: data.content,
|
||||
attach: '',
|
||||
id: `id_${msg.time}`,
|
||||
isSelf: true,
|
||||
avatar: vm.myAvatar,
|
||||
time: getTime(format(msg.time)),
|
||||
showTime: timeContrast(format(msg.time), vm.lastTime),
|
||||
name: vm.myName,
|
||||
userId: msg.from,
|
||||
isSend: 1,
|
||||
msgType: 'text'
|
||||
}
|
||||
vm.msgList.splice(msgIndex, 1, msgNewObj)
|
||||
vm.lastTime = format(msg.time)
|
||||
}
|
||||
})
|
||||
} else {
|
||||
vm.msgList[msgIndex].isSend = 2
|
||||
app.globalData.nim.msg.sendTextMsg({
|
||||
scene: 'team',
|
||||
to: vm.otherUserId,
|
||||
body: vm.msg,
|
||||
isSend: 0,
|
||||
onSendBefore: function (msg) {
|
||||
console.log('get msg before', msg)
|
||||
if (/\[[^\]]+\]/.test(data.content)) {
|
||||
data.content = vm.transitionMsg(data.content)
|
||||
}
|
||||
msgNewObj = {
|
||||
text: vm.msg,
|
||||
attach: '',
|
||||
id: `id_${msg.time}`,
|
||||
isSelf: true,
|
||||
avatar: vm.myAvatar,
|
||||
time: getTime(format(msg.time)),
|
||||
showTime: timeContrast(format(msg.time), vm.lastTime),
|
||||
name: vm.myName,
|
||||
userId: msg.from,
|
||||
isSend: 1,
|
||||
msgType: '0'
|
||||
}
|
||||
vm.msgList.splice(msgIndex, 1, msgNewObj)
|
||||
vm.lastTime = format(msg.time)
|
||||
vm.callbackSend('text')
|
||||
}
|
||||
wx.hideLoading()
|
||||
}).catch(() => {
|
||||
vm.msgList[msgIndex].isSend = 2
|
||||
wx.hideLoading()
|
||||
})
|
||||
},
|
||||
// 发送图片消息
|
||||
sendPictures(file) {
|
||||
let vm = this
|
||||
let data = {
|
||||
to_user_id: vm.otherUserId,
|
||||
content: vm.msg,
|
||||
type: 'picture'
|
||||
}
|
||||
vm.openShow = false
|
||||
vm.uploadState = true
|
||||
vm.progressValue = 5
|
||||
vm.$post({url: `${service.host}/chat/message/send`, data}).then(({code, data}) => {
|
||||
if (code == 0) {
|
||||
app.globalData.nim.msg.sendImageMsg({
|
||||
scene: 'team',
|
||||
to: vm.otherUserId,
|
||||
type: 'image',
|
||||
filePath: file,
|
||||
onUploadProgress: function (progress) {
|
||||
console.log(progress, '上传进度')
|
||||
vm.progressValue = progress.percentage
|
||||
},
|
||||
onSendBefore: function (msg) {
|
||||
console.log(msg, '上传完成, 图片信息')
|
||||
vm.msgList.push({
|
||||
text: '',
|
||||
attach: vm.calculatePic(msg.attach, msg.type),
|
||||
id: `id_${msg.time}`,
|
||||
isSelf: true,
|
||||
avatar: vm.myAvatar,
|
||||
time: getTime(format(msg.time)),
|
||||
showTime: timeContrast(format(msg.time), vm.lastTime),
|
||||
name: msg.fromNick,
|
||||
userId: msg.from,
|
||||
isSend: 1,
|
||||
msgType: 'image'
|
||||
})
|
||||
vm.lastTime = format(msg.time)
|
||||
vm.$nextTick(() => {
|
||||
vm.toView = `id_${msg.time}`
|
||||
})
|
||||
// 防止图片撑开触发加载历史数据
|
||||
vm.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
vm.uploadState = false
|
||||
}, 500)
|
||||
})
|
||||
}
|
||||
app.globalData.nim.msg.sendImageMsg({
|
||||
scene: 'team',
|
||||
to: vm.otherUserId,
|
||||
type: 'image',
|
||||
filePath: file,
|
||||
onUploadProgress: function (progress) {
|
||||
console.log(progress, '上传进度')
|
||||
vm.progressValue = progress.percentage
|
||||
},
|
||||
onSendBefore: function (msg) {
|
||||
console.log(msg, '上传完成, 图片信息')
|
||||
vm.msgList.push({
|
||||
text: '',
|
||||
attach: vm.calculatePic(msg.attach, msg.type),
|
||||
id: `id_${msg.time}`,
|
||||
isSelf: true,
|
||||
avatar: vm.myAvatar,
|
||||
time: getTime(format(msg.time)),
|
||||
showTime: timeContrast(format(msg.time), vm.lastTime),
|
||||
name: msg.fromNick,
|
||||
userId: msg.from,
|
||||
isSend: 1,
|
||||
msgType: '1'
|
||||
})
|
||||
vm.lastTime = format(msg.time)
|
||||
vm.callbackSend('picture')
|
||||
vm.$nextTick(() => {
|
||||
vm.toView = `id_${msg.time}`
|
||||
})
|
||||
// 防止图片撑开触发加载历史数据
|
||||
vm.$nextTick(() => {
|
||||
setTimeout(() => {
|
||||
vm.uploadState = false
|
||||
}, 500)
|
||||
})
|
||||
}
|
||||
wx.hideLoading()
|
||||
}).catch(() => {
|
||||
wx.hideLoading()
|
||||
})
|
||||
},
|
||||
// 发送视频
|
||||
@ -924,9 +898,10 @@ wepy.page({
|
||||
name: msg.fromNick,
|
||||
userId: msg.from,
|
||||
isSend: 1,
|
||||
msgType: 'video'
|
||||
msgType: '3'
|
||||
})
|
||||
vm.lastTime = format(msg.time)
|
||||
vm.callbackSend('video')
|
||||
vm.$nextTick(() => {
|
||||
vm.toView = `id_${msg.time}`
|
||||
})
|
||||
@ -969,9 +944,10 @@ wepy.page({
|
||||
name: msg.fromNick,
|
||||
userId: msg.from,
|
||||
isSend: 1,
|
||||
msgType: 'audio'
|
||||
msgType: '2'
|
||||
})
|
||||
vm.lastTime = format(msg.time)
|
||||
vm.callbackSend('audio')
|
||||
vm.$nextTick(() => {
|
||||
vm.toView = `id_${msg.time}`
|
||||
})
|
||||
@ -984,6 +960,24 @@ wepy.page({
|
||||
}
|
||||
})
|
||||
},
|
||||
// 发送信息后回调
|
||||
callbackSend(type) {
|
||||
let vm = this
|
||||
let data = {
|
||||
other_user_id: vm.otherUserId * 1,
|
||||
field_7: vm.msg,
|
||||
field_6: type
|
||||
}
|
||||
vm.$post({url: `${service.host}/chat/message/send`, data}).then(() => {
|
||||
wx.hideLoading()
|
||||
vm.msg = ''
|
||||
vm.emojiShow = false
|
||||
vm.replyContent = ''
|
||||
}).catch(() => {
|
||||
vm.uploadState = false
|
||||
wx.hideLoading()
|
||||
})
|
||||
},
|
||||
// 标记IM信息已读
|
||||
sendMsgReceipt() {
|
||||
let vm = this
|
||||
@ -1027,7 +1021,6 @@ wepy.page({
|
||||
},
|
||||
// 获取历史消息数据
|
||||
getHistoryMsg() {
|
||||
let vm = this
|
||||
let vm = this
|
||||
let data = {
|
||||
min_id: vm.lastId
|
||||
@ -1039,7 +1032,8 @@ wepy.page({
|
||||
return
|
||||
}
|
||||
vm.$showLoading('')
|
||||
vm.$get({url: `${service.host}/chat/user/${vm.otherUserId}/message/list`, data}).then(({code, data}) => {
|
||||
|
||||
vm.$get({url: `${service.host}/chat/team/${vm.otherUserId}/message/list`, data}).then(({code, data}) => {
|
||||
if (code === 0) {
|
||||
console.log(data, '-------------------')
|
||||
if (data && data.length > 0) {
|
||||
@ -1048,58 +1042,70 @@ wepy.page({
|
||||
// }
|
||||
data.forEach((item, index) => {
|
||||
item.time = new Date(item.create_time.replace(/[-]/g, '/').replace(/[-]/, '')).getTime()
|
||||
item.attach = item.attach ? JSON.parse(item.attach) : ''
|
||||
item.avatar = 'https://image.fulllinkai.com/202307/18/449c3253ca2bbed9314d39977a486d0e.png'
|
||||
item.showTime = timeContrast(format(item.time), vm.lastTime)
|
||||
item.timing = getTime(format(item.time))
|
||||
if (item.showTime && index > 0) {
|
||||
data[index].showTime = false
|
||||
data[index - 1].showTime = true
|
||||
}
|
||||
if (item.content_type == 'text' && /\[[^\]]+\]/.test(item.content)) {
|
||||
item.body = vm.transitionMsg(item.content)
|
||||
if (item.type == '0' && /\[[^\]]+\]/.test(item.body_arr.msg)) {
|
||||
item.body = vm.transitionMsg(item.body_arr.msg)
|
||||
} else {
|
||||
item.body = item.body_arr.msg
|
||||
}
|
||||
vm.lastTime = format(item.time)
|
||||
})
|
||||
// 获取成员头像后再循环获取数据
|
||||
app.globalData.nim.user.getUsersNameCardFromServer({
|
||||
accounts: [item.from]
|
||||
}).then((res) => {
|
||||
item.avatar = res[0].avatar
|
||||
if (index + 1 == data.length) {
|
||||
vm.lastMsgId = data[data.length - 1].id
|
||||
vm.beginTime = data[data.length - 1].time
|
||||
|
||||
vm.lastMsgId = data[data.length - 1].id
|
||||
vm.beginTime = data[data.length - 1].time
|
||||
|
||||
setTimeout(() => {
|
||||
data.forEach((item) => {
|
||||
vm.msgList.unshift({
|
||||
text: item.content,
|
||||
attach: vm.calculatePic(item.attach, item.content_type),
|
||||
id: `id_${item.time}`,
|
||||
timestamp: item.time,
|
||||
isSelf: item.is_mine == 0 ? false : true,
|
||||
avatar: item.is_mine == 0 ? vm.otherAvatar : vm.myAvatar,
|
||||
time: item.timing,
|
||||
showTime: item.showTime,
|
||||
videoDur: item.content_type == 'video' ? getVideoTime(item.attach.dur) : '',
|
||||
audioDur: item.content_type == 'audio' ? (item.attach.dur / 1000).toFixed(0) : '',
|
||||
name: item.fromNick,
|
||||
isSend: 1,
|
||||
userId: item.from,
|
||||
msgType: item.content_type
|
||||
})
|
||||
})
|
||||
console.log(vm.msgList, data[0].time, '88888888888888888')
|
||||
vm.$nextTick(() => {
|
||||
if (vm.msgList.length < 8) {
|
||||
vm.toView = `id_${data[0].time}`
|
||||
setTimeout(() => {
|
||||
data.forEach((item) => {
|
||||
vm.msgList.unshift({
|
||||
text: item.body,
|
||||
attach: vm.calculatePic(item.body_arr, item.type),
|
||||
id: `id_${item.time}`,
|
||||
timestamp: item.time,
|
||||
isSelf: item.is_mine == 'in' ? false : true,
|
||||
avatar: item.is_mine == 'in' ? item.photo : vm.myAvatar,
|
||||
time: item.timing,
|
||||
showTime: item.showTime,
|
||||
videoDur: item.type == '3' && item.body_arr.dur ? getVideoTime(item.body_arr.dur) : '',
|
||||
audioDur: item.type == '2' && item.body_arr.dur ? (item.body_arr.dur / 1000).toFixed(0) : '',
|
||||
name: item.fromNick,
|
||||
userId: item.from,
|
||||
msgType: item.type,
|
||||
tips: vm.groupNotification(item)
|
||||
})
|
||||
})
|
||||
console.log(vm.msgList, '88888888888888888')
|
||||
vm.$nextTick(() => {
|
||||
vm.toView = `id_${data[0].time}`
|
||||
if (vm.msgList.length > 15) {
|
||||
vm.scrollY = false
|
||||
}
|
||||
vm.lastId = `${data[data.length - 1].id}`
|
||||
vm.loading = true
|
||||
// 防止撑开触发加载历史数据
|
||||
setTimeout(() => {
|
||||
vm.uploadState = false
|
||||
vm.scrollY = true
|
||||
}, 500)
|
||||
})
|
||||
})
|
||||
}
|
||||
vm.lastId = `${data[data.length - 1].id}`
|
||||
vm.loading = true
|
||||
// 防止撑开触发加载历史数据
|
||||
setTimeout(() => {
|
||||
vm.uploadState = false
|
||||
}, 500)
|
||||
})
|
||||
})
|
||||
} else {
|
||||
vm.loading = true
|
||||
vm.scrollY = true
|
||||
}
|
||||
if (data && data.length < 7) {
|
||||
if (data && data.length < 15) {
|
||||
vm.finished = true
|
||||
}
|
||||
}
|
||||
@ -1107,91 +1113,6 @@ wepy.page({
|
||||
wx.hideLoading()
|
||||
console.log(err)
|
||||
})
|
||||
// let data = {}
|
||||
// if (vm.uploadState || vm.videoState) {
|
||||
// return
|
||||
// }
|
||||
// if (!vm.lastMsgId) {
|
||||
// data = {
|
||||
// scene: 'team',
|
||||
// to: vm.otherUserId,
|
||||
// limit: 15
|
||||
// }
|
||||
// } else {
|
||||
// data = {
|
||||
// scene: 'team',
|
||||
// to: vm.otherUserId,
|
||||
// limit: 15,
|
||||
// reverse: false,
|
||||
// endTime: vm.beginTime,
|
||||
// lastMsgId: vm.lastMsgId
|
||||
// }
|
||||
// }
|
||||
// if (vm.finished) {
|
||||
// return
|
||||
// }
|
||||
// vm.$showLoading('')
|
||||
// app.globalData.nim.msgLog.getHistoryMsgs(data).then((object) => {
|
||||
// if (object && object.length > 0) {
|
||||
// if (vm.msgList && vm.msgList.length == 0) {
|
||||
// // 标记IM消息已读
|
||||
// vm.sendMsgReceipt()
|
||||
// }
|
||||
// object.forEach((item, index) => {
|
||||
// item.avatar = 'https://image.fulllinkai.com/202307/18/449c3253ca2bbed9314d39977a486d0e.png',
|
||||
// item.showTime = timeContrast(format(item.time), vm.lastTime)
|
||||
// item.timing = getTime(format(item.time))
|
||||
// if (item.showTime && index > 0) {
|
||||
// object[index].showTime = false
|
||||
// object[index - 1].showTime = true
|
||||
// }
|
||||
// if (item.type == 'text' && /\[[^\]]+\]/.test(item.body)) {
|
||||
// item.body = vm.transitionMsg(item.body)
|
||||
// }
|
||||
// vm.lastTime = format(item.time)
|
||||
// // 获取成员头像后再循环获取数据
|
||||
// app.globalData.nim.user.getUsersNameCardFromServer({
|
||||
// accounts: [item.from]
|
||||
// }).then((res) => {
|
||||
// item.avatar = res[0].avatar
|
||||
// if (index + 1 == object.length) {
|
||||
// vm.lastMsgId = object[object.length - 1].idServer
|
||||
// vm.beginTime = object[object.length - 1].time
|
||||
//
|
||||
// setTimeout(() => {
|
||||
// object.forEach((item) => {
|
||||
// vm.msgList.unshift({
|
||||
// text: item.body,
|
||||
// attach: vm.calculatePic(item.attach, item.type),
|
||||
// id: `id_${item.time}`,
|
||||
// timestamp: item.time,
|
||||
// isSelf: item.flow == 'in' ? false : true,
|
||||
// avatar: item.flow == 'in' ? item.avatar : vm.myAvatar,
|
||||
// time: item.timing,
|
||||
// showTime: item.showTime,
|
||||
// videoDur: item.type == 'video' ? getVideoTime(item.attach.dur) : '',
|
||||
// audioDur: item.type == 'audio' ? (item.attach.dur / 1000).toFixed(0) : '',
|
||||
// name: item.fromNick,
|
||||
// userId: item.from,
|
||||
// msgType: item.type,
|
||||
// tips: vm.groupNotification(item)
|
||||
// })
|
||||
// })
|
||||
// console.log(vm.msgList, '88888888888888888')
|
||||
// vm.toView = `id_${object[0].time}`
|
||||
// vm.loading = true
|
||||
// })
|
||||
// }
|
||||
// })
|
||||
// })
|
||||
// } else {
|
||||
// vm.loading = true
|
||||
// }
|
||||
// if (object && object.length < 15) {
|
||||
// vm.finished = true
|
||||
// }
|
||||
// wx.hideLoading()
|
||||
// })
|
||||
},
|
||||
// 监听底部输入框的高度
|
||||
changeInputHeight(e) {
|
||||
@ -1392,23 +1313,23 @@ wepy.page({
|
||||
// 群通知消息判断
|
||||
groupNotification (e) {
|
||||
let text = ``
|
||||
if (e.type == 'notification' && e.attach.type == 'addTeamMembers') {
|
||||
if (e.type == '7' && e.attach.type == 'addTeamMembers') {
|
||||
text = `${e.attach.users[1].nick}邀请${e.attach.users[0].nick}加入群`
|
||||
}
|
||||
if (e.type == 'notification' && e.attach.type == 'leaveTeam') {
|
||||
if (e.type == '7' && e.attach.type == 'leaveTeam') {
|
||||
text = `${e.attach.users[0].nick}离开群`
|
||||
}
|
||||
return text
|
||||
},
|
||||
// 图片大小计算
|
||||
calculatePic(e, type) {
|
||||
if (!e) {
|
||||
if (!e.url) {
|
||||
return ''
|
||||
}
|
||||
let wRatio = 0
|
||||
if (type == 'video' && e.url && e.url.includes('?')) {
|
||||
if (type == '3' && e.url && e.url.includes('?')) {
|
||||
e.poster = `${e.url}&vframe`
|
||||
} else if (type == 'video' && e.url) {
|
||||
} else if (type == '3' && e.url) {
|
||||
e.poster = `${e.url}?vframe`
|
||||
}
|
||||
if (e.w > e.h) {
|
||||
@ -1523,7 +1444,7 @@ wepy.page({
|
||||
let vm = this
|
||||
let imageArr = []
|
||||
vm.msgList.forEach((item) => {
|
||||
if (item.msgType == 'image') {
|
||||
if (item.msgType == '1') {
|
||||
imageArr.push(item.attach.url)
|
||||
}
|
||||
})
|
||||
|
||||
Loading…
Reference in New Issue
Block a user