diff --git a/src/mixins/plugins.js b/src/mixins/plugins.js index 75163d2..3e032f3 100644 --- a/src/mixins/plugins.js +++ b/src/mixins/plugins.js @@ -85,40 +85,17 @@ const formatRemainTimeData = (endTime) => { const timeContrast = (startTime, endTime) => { let dateEnd = new Date(endTime.replace(/-/g, '/')) let dateBegin = new Date(startTime.replace(/-/g, '/')) - let retValue = {} let date3 = dateEnd.getTime() - dateBegin.getTime() // 时间差的毫秒数 // 计算出相差天数 let days = Math.floor(date3 / (24 * 3600 * 1000)) - retValue.Days = days let years = Math.floor(days / 365) - retValue.Years = years let months = Math.floor(days / 30) - retValue.Months = months // 计算出小时数 let leave1 = date3 % (24 * 3600 * 1000) // 计算天数后剩余的毫秒数 let hours = Math.floor(leave1 / (3600 * 1000)) - retValue.Hours = hours // 计算相差分钟数 let leave2 = leave1 % (3600 * 1000) // 计算小时数后剩余的毫秒数 let minutes = Math.floor(leave2 / (60 * 1000)) - retValue.Minutes = minutes - // 计算相差秒数 - let leave3 = leave2 % (60 * 1000) // 计算分钟数后剩余的毫秒数 - let seconds = Math.round(leave3 / 1000) - retValue.Seconds = seconds - let strTime = '' - if (years >= 1) { - strTime = years + '年前' - } else if (months >= 1) { - strTime = months + '个月前' - } else if (days >= 1) { - strTime = days + '天前' - } else if (hours >= 1) { - strTime = hours + '小时前' - } else { - strTime = minutes + '分钟前' - } - retValue.PubTime = strTime return years >= 1 || months >= 1 || hours >= 1 || minutes >= 5 } diff --git a/src/pages/news/chitchat.wpy b/src/pages/news/chitchat.wpy index 8ba36a3..c325efc 100644 --- a/src/pages/news/chitchat.wpy +++ b/src/pages/news/chitchat.wpy @@ -788,6 +788,7 @@ wepy.page({ uploadState: false, progressValue: 0, // 上传进度 lastId: '', // 历史记录分页数据最后一条id + firstTime: '', // 历史记录分页数据第一条的时间戳 lastTime: '', // 历史记录分页数据最后一条的时间戳 lastMsgId: '', // 历史记录分页数据最后一条的id beginTime: '', // 历史记录分页数据最后一条的时间 @@ -845,15 +846,18 @@ wepy.page({ isSelf: true, avatar: vm.myAvatar, time: getTime(format(msg.time)), - showTime: timeContrast(format(msg.time), vm.lastTime), + showTime: timeContrast(vm.firstTime, format(msg.time)), name: vm.myName, userId: msg.from, isSend: 1, msgType: 'text' } - vm.msgList.splice(msgIndex, 1, msgNewObj) - vm.lastTime = format(msg.time) - vm.callbackSend('text') + setTimeout(() => { + vm.msgList.splice(msgIndex, 1, msgNewObj) + vm.firstTime = format(msg.time) + vm.lastTime = format(msg.time) + vm.callbackSend('text') + }) } }) }, @@ -881,12 +885,13 @@ wepy.page({ isSelf: true, avatar: vm.myAvatar, time: getTime(format(msg.time)), - showTime: timeContrast(format(msg.time), vm.lastTime), + showTime: timeContrast(vm.firstTime, format(msg.time)), name: msg.fromNick, userId: msg.from, isSend: msg.status == 'sendFailed' ? 2 : 1, // sendFailed 发送失败 msgType: 'image' }) + vm.firstTime = format(msg.time) vm.lastTime = format(msg.time) vm.callbackSend('picture') vm.$nextTick(() => { @@ -926,13 +931,14 @@ wepy.page({ isSelf: true, avatar: vm.myAvatar, time: getTime(format(msg.time)), - showTime: timeContrast(format(msg.time), vm.lastTime), + showTime: timeContrast(vm.firstTime, format(msg.time)), videoDur: getVideoTime(msg.attach.dur), name: msg.fromNick, userId: msg.from, isSend: 1, msgType: 'video' }) + vm.firstTime = format(msg.time) vm.lastTime = format(msg.time) vm.callbackSend('video') vm.$nextTick(() => { @@ -972,7 +978,7 @@ wepy.page({ isSelf: true, avatar: vm.myAvatar, time: getTime(format(msg.time)), - showTime: timeContrast(format(msg.time), vm.lastTime), + showTime: timeContrast(vm.firstTime, format(msg.time)), videoDur: getVideoTime(msg.attach.dur), audioDur: (msg.attach.dur / 1000).toFixed(0), name: msg.fromNick, @@ -980,6 +986,7 @@ wepy.page({ isSend: 1, msgType: 'audio' }) + vm.firstTime = format(msg.time) vm.lastTime = format(msg.time) vm.callbackSend('audio') vm.$nextTick(() => { @@ -1007,6 +1014,7 @@ wepy.page({ isSend: 2, msgType: 'image' }) + vm.firstTime = format(timeData) vm.lastTime = format(timeData) vm.$nextTick(() => { vm.toView = `id_${timeData}` @@ -1055,7 +1063,7 @@ wepy.page({ isSelf: false, avatar: vm.otherAvatar, time: getTime(format(e.time)), - showTime: timeContrast(format(e.time), vm.msgList && vm.msgList.length > 0 ? `${vm.msgList[vm.msgList.length - 1].timestamp}` : ''), + showTime: timeContrast(vm.firstTime, format(e.time)), videoDur: e.type == 'video' ? getVideoTime(e.attach.dur) : '', audioDur: e.type == 'audio' ? (e.attach.dur / 1000).toFixed(0) : '', name: e.fromNick, @@ -1064,6 +1072,7 @@ wepy.page({ msgType: e.type }) vm.toView = `id_${e.time}` + vm.firstTime = format(e.time) vm.lastTime = format(e.time) }, // 获取历史消息数据 @@ -1096,6 +1105,9 @@ wepy.page({ } else { item.body = item.content } + if (!vm.lastId) { + vm.firstTime = format(data[0].time) + } vm.lastTime = format(item.time) }) diff --git a/src/pages/news/groupChitchat.wpy b/src/pages/news/groupChitchat.wpy index 9a0a191..d453428 100644 --- a/src/pages/news/groupChitchat.wpy +++ b/src/pages/news/groupChitchat.wpy @@ -708,6 +708,7 @@ wepy.page({ uploadState: false, progressValue: 0, // 上传进度 lastId: '', // 历史记录分页数据最后一条id + firstTime: '', // 历史记录分页数据第一条的时间戳 lastTime: '', // 历史记录分页数据最后一条的时间戳 lastMsgId: '', // 历史记录分页数据最后一条的id beginTime: '', // 历史记录分页数据最后一条的时间 @@ -785,6 +786,7 @@ wepy.page({ id: `id_${timeData}`, isSelf: true, avatar: vm.myAvatar, + timestamp: timeData, name: vm.myName, userId: vm.myUserId, isSend: 0, @@ -811,15 +813,18 @@ wepy.page({ isSelf: true, avatar: vm.myAvatar, time: getTime(format(msg.time)), - showTime: timeContrast(format(msg.time), vm.lastTime), + showTime: timeContrast(vm.firstTime, format(msg.time)), name: vm.myName, userId: msg.from, isSend: 1, msgType: '0' } - vm.msgList.splice(msgIndex, 1, msgNewObj) - vm.lastTime = format(msg.time) - vm.callbackSend('text') + setTimeout(() => { + vm.msgList.splice(msgIndex, 1, msgNewObj) + vm.firstTime = format(msg.time) + vm.lastTime = format(msg.time) + vm.callbackSend('text') + }) } }) }, @@ -847,12 +852,13 @@ wepy.page({ isSelf: true, avatar: vm.myAvatar, time: getTime(format(msg.time)), - showTime: timeContrast(format(msg.time), vm.lastTime), + showTime: timeContrast(vm.firstTime, format(msg.time)), name: msg.fromNick, userId: msg.from, isSend: 1, msgType: '1' }) + vm.firstTime = format(msg.time) vm.lastTime = format(msg.time) vm.callbackSend('picture') vm.$nextTick(() => { @@ -892,13 +898,14 @@ wepy.page({ isSelf: true, avatar: vm.myAvatar, time: getTime(format(msg.time)), - showTime: timeContrast(format(msg.time), vm.lastTime), + showTime: timeContrast(vm.firstTime, format(msg.time)), videoDur: getVideoTime(msg.attach.dur), name: msg.fromNick, userId: msg.from, isSend: 1, msgType: '3' }) + vm.firstTime = format(msg.time) vm.lastTime = format(msg.time) vm.callbackSend('video') vm.$nextTick(() => { @@ -937,7 +944,7 @@ wepy.page({ isSelf: true, avatar: vm.myAvatar, time: getTime(format(msg.time)), - showTime: timeContrast(format(msg.time), vm.lastTime), + showTime: timeContrast(vm.firstTime, format(msg.time)), videoDur: getVideoTime(msg.attach.dur), audioDur: (msg.attach.dur / 1000).toFixed(0), name: msg.fromNick, @@ -945,6 +952,7 @@ wepy.page({ isSend: 1, msgType: '2' }) + vm.firstTime = format(msg.time) vm.lastTime = format(msg.time) vm.callbackSend('audio') vm.$nextTick(() => { @@ -983,7 +991,7 @@ wepy.page({ app.globalData.nim.session.resetSessionUnreadCount({ id: `team-${vm.otherUserId}` }).then((res) => { - console.log(res, '///////////---------') + console.log(res, '标记IM信息已读---------') }) }, // 在当前页面接收到别人发送过来的消息 @@ -1008,7 +1016,7 @@ wepy.page({ isSelf: false, avatar: res[0].avatar, time: getTime(format(e.time)), - showTime: timeContrast(format(e.time), vm.msgList && vm.msgList.length > 0 ? `${vm.msgList[vm.msgList.length - 1].timestamp}` : ''), + showTime: timeContrast(vm.firstTime, format(e.time)), videoDur: e.type == 'video' ? getVideoTime(e.attach.dur) : '', audioDur: e.type == 'audio' ? (e.attach.dur / 1000).toFixed(0) : '', name: e.fromNick, @@ -1018,6 +1026,7 @@ wepy.page({ tips: vm.groupNotification(e) }) vm.toView = `id_${e.time}` + vm.firstTime = format(e.time) vm.lastTime = format(e.time) // 标记消息已读 vm.teamsSessions() @@ -1056,6 +1065,9 @@ wepy.page({ } else { item.body = item.body_arr.msg } + if (!vm.lastId) { + vm.firstTime = format(data[0].time) + } vm.lastTime = format(item.time) // 获取成员头像后再循环获取数据 app.globalData.nim.user.getUsersNameCardFromServer({