813 lines
28 KiB
JavaScript
813 lines
28 KiB
JavaScript
"use strict";
|
||
const common_vendor = require("../../../common/vendor.js");
|
||
const components_ChatId = require("../../../components/ChatId.js");
|
||
const components_TimeFormatting = require("../../../components/TimeFormatting.js");
|
||
const components_request = require("../../../components/request.js");
|
||
const components_goEasyTool_tool = require("../../../components/goEasyTool/tool.js");
|
||
const textmessage = () => "./messageComponent/textmessage.js";
|
||
const customPKMessage = () => "./messageComponent/customPKMessage.js";
|
||
const imageMessage = () => "./messageComponent/imageMessage.js";
|
||
const videoMessage = () => "./messageComponent/videoMessage.js";
|
||
const voiceMessage = () => "./messageComponent/voiceMessage.js";
|
||
const InvitationComponents = () => "./moreMessageComponents/InvitationComponents.js";
|
||
const _sfc_main = {
|
||
data() {
|
||
return {
|
||
userId: "",
|
||
// 对方用户id
|
||
nickname: "",
|
||
// 对方用户昵称
|
||
avatar: "",
|
||
// 对方用户头像
|
||
chatList: [],
|
||
// 聊天记录
|
||
userinfo: {},
|
||
// 自己用户信息
|
||
ButtonStatus: false,
|
||
// 发送按钮状态
|
||
MoreStatus: false,
|
||
// 更多消息类型弹窗状态
|
||
KeyboardHeight: 0,
|
||
// 键盘高度
|
||
content: "",
|
||
// 输入框内容
|
||
MoreItemStatus: null,
|
||
// 更多消息类型弹窗点击属性
|
||
ioshide: 0,
|
||
// 隐藏ios键盘
|
||
ElementPositioning: null,
|
||
// 元素定位
|
||
scrollviewheight: 0,
|
||
// 滚动视图高度
|
||
Elementheight: 0,
|
||
// 元素高度
|
||
Scrolling: false,
|
||
// 滚动状态
|
||
scrollTop: 0,
|
||
// 滚动高度
|
||
judgescrollTop: false,
|
||
// 判断滚动高度
|
||
onPage: false,
|
||
// 是否在页面
|
||
timer: null,
|
||
// 定时器
|
||
lastTimestamp: null,
|
||
// 上一次刷新时间戳
|
||
LastTime: null,
|
||
// 最后聊天记录的时间戳
|
||
MoreMessageList: [],
|
||
Record: null,
|
||
// 定位记录
|
||
myitem: null,
|
||
//直接发送自定义消息的我的选中主播
|
||
youritem: null,
|
||
//直接发送自定义消息的对方选中主播
|
||
type: null,
|
||
//直接发送自定义消息的消息类型
|
||
voiceStatus: false,
|
||
// 语音状态
|
||
inputfocus: false,
|
||
// 输入框焦点状态
|
||
voicepopUpstart: false,
|
||
// 语音长按状态/false关闭/true开启
|
||
voiceCancelOrSend: false,
|
||
// 语音取消/发送/false发送/true取消
|
||
recorderManager: common_vendor.index.getRecorderManager(),
|
||
playbackStatus: true,
|
||
// 语音播放状态
|
||
popUpList: [
|
||
{
|
||
name: "图片",
|
||
icon: "https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/Album.png",
|
||
type: "Album"
|
||
},
|
||
// {
|
||
// name: "视频",
|
||
// icon: "https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/Video.png",
|
||
// type: "Video",
|
||
// },
|
||
{
|
||
name: "邀请",
|
||
icon: "https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/chat_invite.png",
|
||
type: "Invitation"
|
||
}
|
||
]
|
||
/// 更多消息类型弹窗列表
|
||
};
|
||
},
|
||
onShow() {
|
||
this.onPage = true;
|
||
common_vendor.index.onKeyboardHeightChange((res) => {
|
||
this.KeyboardHeight = res.height * 2 - this.ioshide;
|
||
});
|
||
},
|
||
onHide() {
|
||
this.onPage = false;
|
||
},
|
||
onUnload() {
|
||
this.onPage = false;
|
||
},
|
||
onLoad(options) {
|
||
this.recorderManager.onStop((res) => {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:387", "录音结束", res);
|
||
if (this.ioshide != 0) {
|
||
if (res.fileSize < 20 * 1024) {
|
||
common_vendor.index.showToast({
|
||
title: "您说话太短",
|
||
icon: "none",
|
||
duration: 2e3
|
||
});
|
||
} else {
|
||
if (this.voiceCancelOrSend) {
|
||
this.voiceCancelOrSend = false;
|
||
} else {
|
||
this.sendVoice(res);
|
||
this.voiceCancelOrSend = false;
|
||
}
|
||
}
|
||
} else {
|
||
if (res.fileSize < 2 * 1024) {
|
||
common_vendor.index.showToast({
|
||
title: "您说话太短",
|
||
icon: "none",
|
||
duration: 2e3
|
||
});
|
||
} else {
|
||
if (this.voiceCancelOrSend) {
|
||
this.voiceCancelOrSend = false;
|
||
} else {
|
||
this.sendVoice(res);
|
||
this.voiceCancelOrSend = false;
|
||
}
|
||
}
|
||
}
|
||
});
|
||
common_vendor.index.getStorage({
|
||
key: "userinfo",
|
||
success: (res) => {
|
||
this.userinfo = res.data;
|
||
}
|
||
});
|
||
this.userId = options.userId;
|
||
this.nickname = options.nickname;
|
||
this.avatar = options.avatar;
|
||
this.type = options.type;
|
||
try {
|
||
this.myitem = JSON.parse(options.myitem);
|
||
this.youritem = JSON.parse(options.youritem);
|
||
} catch (e) {
|
||
}
|
||
if (this.type == "pk") {
|
||
setTimeout(() => {
|
||
this.sendCustomMessage();
|
||
}, 500);
|
||
}
|
||
components_goEasyTool_tool.getConversationMessages(this.$goeasy, this.userId, null).then((res) => {
|
||
this.chatList = res.map((item) => {
|
||
item.id = components_ChatId.generateId();
|
||
item.timestampStatus = this.checkInterval(item.timestamp);
|
||
return item;
|
||
});
|
||
setTimeout(() => {
|
||
if (this.chatList.length > 0) {
|
||
this.ElementPositioning = this.chatList[this.chatList.length - 1].id;
|
||
this.LastTime = this.chatList[0].timestamp;
|
||
} else {
|
||
common_vendor.index.showToast({
|
||
title: "您和对方暂无聊天记录,快去聊天吧",
|
||
icon: "none",
|
||
duration: 2e3
|
||
});
|
||
}
|
||
}, 300);
|
||
const query = common_vendor.index.createSelectorQuery().in(this);
|
||
query.select(".inputComponent").boundingClientRect((res2) => {
|
||
this.Elementheight = res2.height * 2;
|
||
}).exec();
|
||
});
|
||
components_goEasyTool_tool.messageRead(this.$goeasy, this.userId).then((res) => {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:469", "已读对方的消息");
|
||
});
|
||
this.getIOSDeviceType();
|
||
var im = this.$goeasy.im;
|
||
im.on(common_vendor.jo.IM_EVENT.PRIVATE_MESSAGE_RECEIVED, this.onPrivateMessageReceived);
|
||
im.on(common_vendor.jo.IM_EVENT.MESSAGE_READ, this.onMessageRead);
|
||
this.getscrollviewheight();
|
||
this.checkRecordPermission();
|
||
},
|
||
methods: {
|
||
//暂停所有播放
|
||
notplayVoice(type) {
|
||
this.playbackStatus = type;
|
||
},
|
||
//发送录音
|
||
sendVoice(res) {
|
||
const im = this.$goeasy.im;
|
||
var message = im.createAudioMessage({
|
||
file: res,
|
||
to: {
|
||
type: common_vendor.jo.IM_SCENE.PRIVATE,
|
||
id: this.userId,
|
||
//对方用户id
|
||
data: { avatar: this.avatar, nickname: this.nickname }
|
||
},
|
||
onProgress: function(event) {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:496", "file uploading:", event);
|
||
}
|
||
//获取上传进度
|
||
});
|
||
components_goEasyTool_tool.sendGroupMessage(this.$goeasy, message).then((ress) => {
|
||
this.ElementPositioning = ress.id = components_ChatId.generateId();
|
||
ress.timestampStatus = this.checkInterval(ress.timestamp);
|
||
this.chatList.push(ress);
|
||
this.judgescrollTop = false;
|
||
});
|
||
},
|
||
//长按语音
|
||
voiceTouchstart() {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:508", "长按语音");
|
||
this.voicepopUpstart = true;
|
||
this.recorderManager.start();
|
||
this.notplayVoice(false);
|
||
},
|
||
//松开语音
|
||
voiceTouchend() {
|
||
setTimeout(() => {
|
||
this.recorderManager.stop();
|
||
}, 100);
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:518", "松开语音");
|
||
this.voicepopUpstart = false;
|
||
},
|
||
//移动语音
|
||
voiceTouchmove(event) {
|
||
const threshold = common_vendor.index.getSystemInfoSync().windowHeight * 0.86;
|
||
try {
|
||
if (event.touches[0].clientY > threshold) {
|
||
this.voiceCancelOrSend = false;
|
||
} else {
|
||
this.voiceCancelOrSend = true;
|
||
}
|
||
} catch (e) {
|
||
}
|
||
},
|
||
//中断语音
|
||
voiceTouchcancel() {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:534", "中断语音");
|
||
this.voicepopUpstart = false;
|
||
this.voiceCancelOrSend = false;
|
||
},
|
||
//语音切换
|
||
onVoice(status) {
|
||
if (status) {
|
||
this.inputfocus = false;
|
||
this.MoreStatus = false;
|
||
} else {
|
||
this.inputfocus = true;
|
||
}
|
||
this.voiceStatus = status;
|
||
},
|
||
//录音权限
|
||
checkRecordPermission() {
|
||
common_vendor.index.getSetting({
|
||
success: (res) => {
|
||
const hasPermission = res.authSetting["scope.record"];
|
||
if (hasPermission === void 0) {
|
||
this.requestPermission();
|
||
} else if (!hasPermission) {
|
||
this.voiceStatus = false;
|
||
common_vendor.index.showModal({
|
||
title: "权限提示",
|
||
content: "需要录音权限才能正常使用功能,请在设置中开启",
|
||
confirmText: "去开启",
|
||
success: (modalRes) => {
|
||
if (modalRes.confirm) {
|
||
common_vendor.index.openSetting({
|
||
success: (settingRes) => {
|
||
if (settingRes.authSetting["scope.record"] === true) {
|
||
this.checkRecordPermission();
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
}
|
||
}
|
||
});
|
||
},
|
||
//请求录音权限
|
||
requestPermission() {
|
||
common_vendor.index.authorize({
|
||
scope: "scope.record",
|
||
fail: (err) => {
|
||
this.voiceStatus = false;
|
||
common_vendor.index.showToast({
|
||
title: "请授予麦克风权限,否则可能导致语音功能异常",
|
||
icon: "none"
|
||
});
|
||
}
|
||
});
|
||
},
|
||
//直接发送自定义消息
|
||
sendCustomMessage() {
|
||
components_request.request({
|
||
url: "pk/createPkRecord",
|
||
method: "POST",
|
||
data: {
|
||
pkIdA: this.youritem.id,
|
||
pkIdB: this.myitem.id,
|
||
userIdA: this.userId,
|
||
userIdB: this.userinfo.id,
|
||
pkTime: this.youritem.pkTime,
|
||
pkNumber: this.youritem.pkNumber,
|
||
anchorIdA: this.youritem.anchorId,
|
||
anchorIdB: this.myitem.anchorId,
|
||
anchorIconA: this.youritem.anchorIcon,
|
||
anchorIconB: this.myitem.anchorIcon,
|
||
piIdA: this.youritem.id,
|
||
piIdB: this.myitem.id
|
||
},
|
||
userInfo: true
|
||
}).then((res) => {
|
||
if (res.code == 200) {
|
||
const customData = {
|
||
id: res.data.id,
|
||
pkIdA: this.youritem.id,
|
||
pkIdB: this.myitem.id
|
||
};
|
||
let order = {
|
||
customData,
|
||
link: "https://vv-1317974657.cos.ap-shanghai.myqcloud.com/util/pk.png",
|
||
text: "PK邀请消息"
|
||
};
|
||
components_goEasyTool_tool.sendCustomMessage(
|
||
this.$goeasy,
|
||
this.type,
|
||
this.userId,
|
||
order,
|
||
this.avatar,
|
||
this.nickname
|
||
).then((res2) => {
|
||
this.ElementPositioning = res2.id = components_ChatId.generateId();
|
||
res2.timestampStatus = this.checkInterval(res2.timestamp);
|
||
this.chatList.push(res2);
|
||
common_vendor.index.showToast({
|
||
title: "发送成功",
|
||
icon: "none"
|
||
});
|
||
});
|
||
} else {
|
||
common_vendor.index.showToast({
|
||
title: res.msg,
|
||
icon: "none"
|
||
});
|
||
}
|
||
});
|
||
},
|
||
//时间显示
|
||
checkInterval(timestamp) {
|
||
if (!this.lastTimestamp) {
|
||
this.lastTimestamp = timestamp;
|
||
return true;
|
||
}
|
||
const timeDiff = timestamp - this.lastTimestamp;
|
||
if (timeDiff >= 3e5) {
|
||
this.lastTimestamp = timestamp;
|
||
return true;
|
||
}
|
||
return false;
|
||
},
|
||
//时间格式化
|
||
TimeFormatting: components_TimeFormatting.TimeFormatting,
|
||
//获取容器高度
|
||
getscrollviewheight() {
|
||
const queryheight = common_vendor.index.createSelectorQuery().in(this);
|
||
queryheight.select(".scroll").boundingClientRect((res) => {
|
||
this.scrollviewheight = res.height;
|
||
}).exec();
|
||
},
|
||
//滚动事件
|
||
onScroll(event) {
|
||
if (!this.judgescrollTop) {
|
||
this.scrollTop = event.detail.scrollTop;
|
||
this.judgescrollTop = true;
|
||
} else if (this.scrollTop - event.detail.scrollTop > this.scrollviewheight) {
|
||
this.Scrolling = true;
|
||
} else if (this.scrollTop - event.detail.scrollTop < this.scrollviewheight) {
|
||
this.Scrolling = false;
|
||
}
|
||
},
|
||
//获取更多聊天记录
|
||
onScrollToUpper() {
|
||
this.lastTimestamp = null;
|
||
components_goEasyTool_tool.getConversationMessages(this.$goeasy, this.userId, this.LastTime).then((res) => {
|
||
this.Record = this.chatList[0].id;
|
||
this.MoreMessageList = res.map((item) => {
|
||
item.id = components_ChatId.generateId();
|
||
item.timestampStatus = this.checkInterval(item.timestamp);
|
||
return item;
|
||
});
|
||
});
|
||
setTimeout(() => {
|
||
this.chatList = [...this.MoreMessageList, ...this.chatList];
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:699", "获取更多聊天记录", this.chatList);
|
||
this.LastTime = this.chatList[0].timestamp;
|
||
this.ElementPositioning = this.Record;
|
||
}, 300);
|
||
},
|
||
//监听已读消息
|
||
onMessageRead(message) {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:706", "1已读消息", message);
|
||
},
|
||
//监听接受消息
|
||
onPrivateMessageReceived(message) {
|
||
if (!this.Scrolling) {
|
||
this.ElementPositioning = message.id = components_ChatId.generateId();
|
||
message.timestampStatus = this.checkInterval(message.timestamp);
|
||
this.judgescrollTop = false;
|
||
} else {
|
||
message.id = components_ChatId.generateId();
|
||
message.timestampStatus = this.checkInterval(message.timestamp);
|
||
}
|
||
this.chatList.push(message);
|
||
if (this.onPage) {
|
||
components_goEasyTool_tool.messageRead(this.$goeasy, this.userId).then((res) => {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:721", "已读对方的消息");
|
||
});
|
||
}
|
||
},
|
||
//发送消息
|
||
onSend() {
|
||
if (this.content != "") {
|
||
components_goEasyTool_tool.sendMessage(
|
||
this.$goeasy,
|
||
this.userId,
|
||
this.content,
|
||
this.avatar,
|
||
this.nickname
|
||
).then((res) => {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:735", "发送成功", res);
|
||
this.ElementPositioning = res.id = components_ChatId.generateId();
|
||
res.timestampStatus = this.checkInterval(res.timestamp);
|
||
this.chatList.push(res);
|
||
this.judgescrollTop = false;
|
||
});
|
||
this.content = "";
|
||
this.ButtonStatus = false;
|
||
}
|
||
},
|
||
//自定义消息发送返回处理
|
||
refreshMessage(message) {
|
||
this.MoreItemStatus = null;
|
||
this.ElementPositioning = message.message.id = components_ChatId.generateId();
|
||
message.timestampStatus = this.checkInterval(message.message.timestamp);
|
||
this.chatList.push(message.message);
|
||
this.judgescrollTop = false;
|
||
this.MoreStatus = false;
|
||
},
|
||
//ios兼容
|
||
getIOSDeviceType() {
|
||
const systemInfo = common_vendor.index.getSystemInfoSync();
|
||
const model = systemInfo.model;
|
||
if (/iPhone X|iPhone11|iPhone12|iPhone13|iPhone14|iPhone15|iPhone16|iPhone15 Pro|iPhone15 Pro Max|iPhone14 Pro|iPhone14 Pro Max|iPhone13 Pro|iPhone13 Pro Max|iPhone12 Pro|iPhone12 Pro Max|iPhone11 Pro|iPhone11 Pro Max|iPhone13 mini|iPhone12 mini|iPhoneXS|iPhoneXS Max/i.test(model)) {
|
||
if (/iPhone X|iPhone XS|iPhone 11 Pro|iPhone 11 Pro Max|iPhone 12 Pro|iPhone 12 Pro Max|iPhone 13 Pro|iPhone 13 Pro Max|iPhone 14 Pro|iPhone 14 Pro Max|iPhone 15 Pro|iPhone 15 Pro Max|iPhone 16/i.test(model)) {
|
||
this.ioshide = 88;
|
||
} else if (/iPhone 12|iPhone 13|iPhone 14/i.test(model)) {
|
||
this.ioshide = 94;
|
||
}
|
||
}
|
||
},
|
||
//更多消息类型弹窗事件
|
||
onMore(Status) {
|
||
if (!this.Scrolling) {
|
||
this.ElementPositioning = null;
|
||
setTimeout(() => {
|
||
this.ElementPositioning = this.chatList[this.chatList.length - 1].id;
|
||
}, 100);
|
||
this.judgescrollTop = false;
|
||
}
|
||
this.getscrollviewheight();
|
||
if (Status) {
|
||
this.MoreStatus = Status;
|
||
this.voiceStatus = false;
|
||
} else {
|
||
this.MoreStatus = Status;
|
||
}
|
||
const query = common_vendor.index.createSelectorQuery().in(this);
|
||
query.select(".inputComponent").boundingClientRect((res) => {
|
||
this.Elementheight = res.height * 2;
|
||
}).exec();
|
||
},
|
||
//更多消息类型弹窗点击事件
|
||
onMoreItem(type) {
|
||
if (type == "Album") {
|
||
this.onSendMedia();
|
||
} else if (type == "Video") {
|
||
this.onSendVideo();
|
||
} else {
|
||
this.MoreItemStatus = type;
|
||
}
|
||
},
|
||
//发送视频
|
||
onSendVideo() {
|
||
var im = this.$goeasy.im;
|
||
common_vendor.index.chooseVideo({
|
||
sourceType: ["album", "camera"],
|
||
success: (res) => {
|
||
var message = im.createVideoMessage({
|
||
file: res,
|
||
//H5获得的视频file对象, Uniapp和小程序调用chooseVideo,success时得到的res对象
|
||
to: {
|
||
type: common_vendor.jo.IM_SCENE.PRIVATE,
|
||
id: this.userId,
|
||
//对方用户id
|
||
data: { avatar: this.avatar, nickname: this.nickname }
|
||
},
|
||
onProgress: function(event) {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:815", "file uploading:", event);
|
||
}
|
||
//获取上传进度
|
||
});
|
||
components_goEasyTool_tool.sendGroupMessage(this.$goeasy, message).then((res2) => {
|
||
this.ElementPositioning = res2.id = components_ChatId.generateId();
|
||
res2.timestampStatus = this.checkInterval(res2.timestamp);
|
||
this.chatList.push(res2);
|
||
this.judgescrollTop = false;
|
||
});
|
||
}
|
||
});
|
||
},
|
||
//发送图片
|
||
onSendMedia() {
|
||
var im = this.$goeasy.im;
|
||
common_vendor.index.chooseImage({
|
||
count: 9,
|
||
//默认9
|
||
sizeType: ["original", "compressed"],
|
||
//可以指定是原图还是压缩图,默认二者都有
|
||
sourceType: ["album", "camera"],
|
||
//从相册选择
|
||
success: (res) => {
|
||
const tempFiles = res.tempFiles;
|
||
tempFiles.forEach((item, index) => {
|
||
var message = im.createImageMessage({
|
||
file: item,
|
||
to: {
|
||
type: common_vendor.jo.IM_SCENE.PRIVATE,
|
||
id: this.userId,
|
||
data: { avatar: this.avatar, nickname: this.nickname }
|
||
},
|
||
onProgress: function(event) {
|
||
common_vendor.index.__f__("log", "at pages/index/chat/chat.vue:845", "上传进度", event);
|
||
}
|
||
//获取上传进度
|
||
});
|
||
components_goEasyTool_tool.sendGroupMessage(this.$goeasy, message).then((res2) => {
|
||
this.ElementPositioning = res2.id = components_ChatId.generateId();
|
||
res2.timestampStatus = this.checkInterval(res2.timestamp);
|
||
this.chatList.push(res2);
|
||
this.judgescrollTop = false;
|
||
});
|
||
});
|
||
}
|
||
});
|
||
},
|
||
// 获取键盘高度
|
||
onFocus(event) {
|
||
if (!this.Scrolling) {
|
||
this.ElementPositioning = null;
|
||
setTimeout(() => {
|
||
this.ElementPositioning = this.chatList[this.chatList.length - 1].id;
|
||
}, 100);
|
||
this.judgescrollTop = false;
|
||
}
|
||
this.getscrollviewheight();
|
||
const query = common_vendor.index.createSelectorQuery().in(this);
|
||
query.select(".inputComponent").boundingClientRect((res) => {
|
||
this.Elementheight = res.height * 2;
|
||
}).exec();
|
||
},
|
||
//键盘消失
|
||
onBlur(event) {
|
||
const query = common_vendor.index.createSelectorQuery().in(this);
|
||
query.select(".inputComponent").boundingClientRect((res) => {
|
||
this.Elementheight = res.height * 2;
|
||
}).exec();
|
||
this.getscrollviewheight();
|
||
},
|
||
//按钮切换
|
||
SendInput(event) {
|
||
const query = common_vendor.index.createSelectorQuery().in(this);
|
||
query.select(".inputComponent").boundingClientRect((res) => {
|
||
this.Elementheight = res.height * 2;
|
||
}).exec();
|
||
if (event.target.value != "") {
|
||
this.ButtonStatus = true;
|
||
} else {
|
||
this.ButtonStatus = false;
|
||
}
|
||
},
|
||
// 返回上一页
|
||
onBack() {
|
||
this.onPage = false;
|
||
common_vendor.wx$1.navigateBack({
|
||
delta: 1
|
||
});
|
||
}
|
||
},
|
||
components: {
|
||
textmessage,
|
||
InvitationComponents,
|
||
customPKMessage,
|
||
imageMessage,
|
||
videoMessage,
|
||
voiceMessage
|
||
}
|
||
};
|
||
if (!Array) {
|
||
const _component_textmessage = common_vendor.resolveComponent("textmessage");
|
||
const _component_customPKMessage = common_vendor.resolveComponent("customPKMessage");
|
||
const _component_imageMessage = common_vendor.resolveComponent("imageMessage");
|
||
const _component_videoMessage = common_vendor.resolveComponent("videoMessage");
|
||
const _component_voiceMessage = common_vendor.resolveComponent("voiceMessage");
|
||
const _component_InvitationComponents = common_vendor.resolveComponent("InvitationComponents");
|
||
(_component_textmessage + _component_customPKMessage + _component_imageMessage + _component_videoMessage + _component_voiceMessage + _component_InvitationComponents)();
|
||
}
|
||
function _sfc_render(_ctx, _cache, $props, $setup, $data, $options) {
|
||
return common_vendor.e({
|
||
a: common_vendor.o(($event) => $options.onMore(false)),
|
||
b: common_vendor.o((...args) => $options.onBack && $options.onBack(...args)),
|
||
c: common_vendor.t($data.nickname),
|
||
d: common_vendor.o(($event) => $options.onMore(false)),
|
||
e: common_vendor.f($data.chatList, (item, index, i0) => {
|
||
return common_vendor.e({
|
||
a: item.timestampStatus
|
||
}, item.timestampStatus ? {
|
||
b: common_vendor.t($options.TimeFormatting(item.timestamp))
|
||
} : {}, {
|
||
c: item.senderId == $data.userId
|
||
}, item.senderId == $data.userId ? common_vendor.e({
|
||
d: $data.avatar,
|
||
e: item.type == "text" || item.type == "audio"
|
||
}, item.type == "text" || item.type == "audio" ? {} : {}, {
|
||
f: item.type == "text"
|
||
}, item.type == "text" ? {
|
||
g: "f4b42ac4-0-" + i0,
|
||
h: common_vendor.p({
|
||
messagetext: item.payload.text
|
||
})
|
||
} : {}, {
|
||
i: item.type == "pk"
|
||
}, item.type == "pk" ? {
|
||
j: "f4b42ac4-1-" + i0,
|
||
k: common_vendor.p({
|
||
message: item.payload
|
||
})
|
||
} : {}, {
|
||
l: item.type == "image"
|
||
}, item.type == "image" ? {
|
||
m: "f4b42ac4-2-" + i0,
|
||
n: common_vendor.p({
|
||
message: item.payload
|
||
})
|
||
} : {}, {
|
||
o: item.type == "video"
|
||
}, item.type == "video" ? {
|
||
p: "f4b42ac4-3-" + i0,
|
||
q: common_vendor.p({
|
||
message: item.payload
|
||
})
|
||
} : {}, {
|
||
r: item.type == "audio"
|
||
}, item.type == "audio" ? {
|
||
s: "f4b42ac4-4-" + i0,
|
||
t: common_vendor.p({
|
||
message: item.payload,
|
||
senderId: item.senderId,
|
||
userId: $data.userinfo.id
|
||
})
|
||
} : {}, {
|
||
v: item.type == "text" || item.type == "audio" ? "#7bbd0093" : "#ffffff"
|
||
}) : {}, {
|
||
w: item.senderId == $data.userinfo.id
|
||
}, item.senderId == $data.userinfo.id ? common_vendor.e({
|
||
x: $data.userinfo.headerIcon,
|
||
y: item.type == "text" || item.type == "audio"
|
||
}, item.type == "text" || item.type == "audio" ? {} : {}, {
|
||
z: item.type == "text"
|
||
}, item.type == "text" ? {
|
||
A: "f4b42ac4-5-" + i0,
|
||
B: common_vendor.p({
|
||
messagetext: item.payload.text
|
||
})
|
||
} : {}, {
|
||
C: item.type == "pk"
|
||
}, item.type == "pk" ? {
|
||
D: "f4b42ac4-6-" + i0,
|
||
E: common_vendor.p({
|
||
message: item.payload
|
||
})
|
||
} : {}, {
|
||
F: item.type == "image"
|
||
}, item.type == "image" ? {
|
||
G: "f4b42ac4-7-" + i0,
|
||
H: common_vendor.p({
|
||
message: item.payload
|
||
})
|
||
} : {}, {
|
||
I: item.type == "video"
|
||
}, item.type == "video" ? {
|
||
J: "f4b42ac4-8-" + i0,
|
||
K: common_vendor.p({
|
||
message: item.payload
|
||
})
|
||
} : {}, {
|
||
L: item.type == "audio"
|
||
}, item.type == "audio" ? {
|
||
M: common_vendor.o($options.notplayVoice, item.id),
|
||
N: "f4b42ac4-9-" + i0,
|
||
O: common_vendor.p({
|
||
message: item.payload,
|
||
senderId: item.senderId,
|
||
userId: $data.userinfo.id,
|
||
playbackStatus: $data.playbackStatus
|
||
})
|
||
} : {}, {
|
||
P: item.type == "text" || item.type == "audio" ? "#7bbd0093" : "#ffffff"
|
||
}) : {}, {
|
||
Q: item.id,
|
||
R: item.id
|
||
});
|
||
}),
|
||
f: common_vendor.o((...args) => $options.onScrollToUpper && $options.onScrollToUpper(...args)),
|
||
g: $data.ElementPositioning,
|
||
h: common_vendor.o((...args) => $options.onScroll && $options.onScroll(...args)),
|
||
i: common_vendor.o(($event) => $options.onMore(false)),
|
||
j: $data.MoreStatus || $data.KeyboardHeight != 0 ? $data.MoreStatus ? 650 + $data.Elementheight + "rpx" : $data.KeyboardHeight != 0 ? $data.KeyboardHeight + $data.Elementheight + "rpx" : "10vh" : "10vh",
|
||
k: !$data.voiceStatus
|
||
}, !$data.voiceStatus ? {
|
||
l: common_vendor.o(($event) => $options.onVoice(!$data.voiceStatus))
|
||
} : {}, {
|
||
m: $data.voiceStatus
|
||
}, $data.voiceStatus ? {
|
||
n: common_vendor.o(($event) => $options.onVoice(!$data.voiceStatus))
|
||
} : {}, {
|
||
o: $data.voiceStatus
|
||
}, $data.voiceStatus ? {
|
||
p: common_vendor.o((...args) => $options.voiceTouchstart && $options.voiceTouchstart(...args)),
|
||
q: common_vendor.o((...args) => $options.voiceTouchend && $options.voiceTouchend(...args)),
|
||
r: common_vendor.o((...args) => $options.voiceTouchmove && $options.voiceTouchmove(...args)),
|
||
s: common_vendor.o((...args) => $options.voiceTouchcancel && $options.voiceTouchcancel(...args))
|
||
} : {}, {
|
||
t: !$data.voiceStatus
|
||
}, !$data.voiceStatus ? {
|
||
v: common_vendor.o([($event) => $data.content = $event.detail.value, (...args) => $options.SendInput && $options.SendInput(...args)]),
|
||
w: common_vendor.o((...args) => $options.onFocus && $options.onFocus(...args)),
|
||
x: $data.inputfocus,
|
||
y: common_vendor.o((...args) => $options.onBlur && $options.onBlur(...args)),
|
||
z: $data.content
|
||
} : {}, {
|
||
A: !$data.ButtonStatus
|
||
}, !$data.ButtonStatus ? {
|
||
B: common_vendor.o(($event) => $options.onMore(!$data.MoreStatus))
|
||
} : {}, {
|
||
C: $data.ButtonStatus
|
||
}, $data.ButtonStatus ? {
|
||
D: common_vendor.o((...args) => $options.onSend && $options.onSend(...args))
|
||
} : {}, {
|
||
E: $data.MoreStatus || $data.KeyboardHeight > 300 ? $data.MoreStatus ? "650rpx" : $data.KeyboardHeight > 300 ? $data.KeyboardHeight + "rpx" : "0" : "0",
|
||
F: common_vendor.f($data.popUpList, (item, index, i0) => {
|
||
return {
|
||
a: item.icon,
|
||
b: common_vendor.t(item.name),
|
||
c: common_vendor.o(($event) => $options.onMoreItem(item.type), index),
|
||
d: index
|
||
};
|
||
}),
|
||
G: $data.MoreStatus || $data.KeyboardHeight > 300 ? $data.MoreStatus ? "0" : $data.KeyboardHeight > 300 ? "0" : $data.KeyboardHeight + "rpx" : "-650rpx",
|
||
H: $data.MoreItemStatus == "Invitation"
|
||
}, $data.MoreItemStatus == "Invitation" ? {
|
||
I: common_vendor.o($options.refreshMessage),
|
||
J: common_vendor.p({
|
||
oppositeId: $data.userId,
|
||
myId: $data.userinfo.id,
|
||
avatar: $data.avatar,
|
||
nickname: $data.nickname
|
||
})
|
||
} : {}, {
|
||
K: common_vendor.o(() => {
|
||
}),
|
||
L: $data.MoreItemStatus == null ? "-1000rpx" : "0",
|
||
M: common_vendor.o(($event) => $options.onMoreItem(null)),
|
||
N: $data.MoreItemStatus == null ? "100vh" : "0",
|
||
O: $data.voiceCancelOrSend ? "#ebebeb" : "#000000a9",
|
||
P: common_vendor.t($data.voiceCancelOrSend ? "取消" : "松手发送"),
|
||
Q: !$data.voiceCancelOrSend ? "#ebebeb" : "#000000a9",
|
||
R: $data.voicepopUpstart == false ? "-1000rpx" : "0",
|
||
S: $data.voicepopUpstart == false ? "100vh" : "0"
|
||
});
|
||
}
|
||
const MiniProgramPage = /* @__PURE__ */ common_vendor._export_sfc(_sfc_main, [["render", _sfc_render], ["__scopeId", "data-v-f4b42ac4"]]);
|
||
wx.createPage(MiniProgramPage);
|
||
//# sourceMappingURL=../../../../.sourcemap/mp-weixin/pages/index/chat/chat.js.map
|