Files
tk-mini-program/unpackage/dist/build/mp-weixin/pages/index/chat/chat.js

2 lines
14 KiB
JavaScript
Raw Normal View History

2025-07-25 16:39:52 +08:00
"use strict";const e=require("../../../common/vendor.js"),t=require("../../../components/ChatId.js"),s=require("../../../components/TimeFormatting.js"),i=require("../../../components/request.js"),o=require("../../../components/goEasyTool/tool.js"),n={data:()=>({userId:"",nickname:"",avatar:"",chatList:[],userinfo:{},ButtonStatus:!1,MoreStatus:!1,KeyboardHeight:0,content:"",MoreItemStatus:null,ioshide:0,ElementPositioning:null,scrollviewheight:0,Elementheight:0,Scrolling:!1,scrollTop:0,judgescrollTop:!1,onPage:!1,timer:null,lastTimestamp:null,LastTime:null,MoreMessageList:[],Record:null,myitem:null,youritem:null,type:null,voiceStatus:!1,inputfocus:!1,voicepopUpstart:!1,voiceCancelOrSend:!1,recorderManager:e.index.getRecorderManager(),playbackStatus:!0,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=!0,e.index.onKeyboardHeightChange((e=>{this.KeyboardHeight=2*e.height-this.ioshide}))},onHide(){this.onPage=!1},onLoad(s){this.recorderManager.onStop((t=>{console.log("录音结束",t),0!=this.ioshide?t.fileSize<20480?e.index.showToast({title:"您说话太短",icon:"none",duration:2e3}):(this.voiceCancelOrSend||this.sendVoice(t),this.voiceCancelOrSend=!1):t.fileSize<2048?e.index.showToast({title:"您说话太短",icon:"none",duration:2e3}):(this.voiceCancelOrSend||this.sendVoice(t),this.voiceCancelOrSend=!1)})),e.index.getStorage({key:"userinfo",success:e=>{this.userinfo=e.data}}),this.userId=s.userId,this.nickname=s.nickname,this.avatar=s.avatar,this.type=s.type;try{this.myitem=JSON.parse(s.myitem),this.youritem=JSON.parse(s.youritem)}catch(n){}"pk"==this.type&&setTimeout((()=>{this.sendCustomMessage()}),500),o.getConversationMessages(this.$goeasy,this.userId,null).then((s=>{this.chatList=s.map((e=>(e.id=t.generateId(),e.timestampStatus=this.checkInterval(e.timestamp),e))),setTimeout((()=>{this.chatList.length>0?(this.ElementPositioning=this.chatList[this.chatList.length-1].id,this.LastTime=this.chatList[0].timestamp):e.index.showToast({title:"您和对方暂无聊天记录,快去聊天吧",icon:"none",duration:2e3})}),300);e.index.createSelectorQuery().in(this).select(".inputComponent").boundingClientRect((e=>{this.Elementheight=2*e.height})).exec()})),o.messageRead(this.$goeasy,this.userId).then((e=>{console.log("已读对方的消息")})),this.getIOSDeviceType();var i=this.$goeasy.im;i.on(e.jo.IM_EVENT.PRIVATE_MESSAGE_RECEIVED,this.onPrivateMessageReceived),i.on(e.jo.IM_EVENT.MESSAGE_READ,this.onMessageRead),this.getscrollviewheight()},methods:{notplayVoice(e){this.playbackStatus=e},sendVoice(s){var i=this.$goeasy.im.createAudioMessage({file:s,to:{type:e.jo.IM_SCENE.PRIVATE,id:this.userId,data:{avatar:this.avatar,nickname:this.nickname}},onProgress:function(e){console.log("file uploading:",e)}});o.sendGroupMessage(this.$goeasy,i).then((e=>{this.ElementPositioning=e.id=t.generateId(),e.timestampStatus=this.checkInterval(e.timestamp),this.chatList.push(e),this.judgescrollTop=!1}))},voiceTouchstart(){console.log("长按语音"),this.voicepopUpstart=!0,this.recorderManager.start(),this.notplayVoice(!1)},voiceTouchend(){setTimeout((()=>{this.recorderManager.stop()}),100),console.log("松开语音"),this.voicepopUpstart=!1},voiceTouchmove(t){const s=.86*e.index.getSystemInfoSync().windowHeight;try{t.touches[0].clientY>s?this.voiceCancelOrSend=!1:this.voiceCancelOrSend=!0}catch(i){}},voiceTouchcancel(){console.log("中断语音"),this.voicepopUpstart=!1,this.voiceCancelOrSend=!1},onVoice(e){this.checkRecordPermission(),e?(this.inputfocus=!1,this.MoreStatus=!1):this.inputfocus=!0,this.voiceStatus=e},checkRecordPermission(){e.index.getSetting({success:t=>{const s=t.authSetting["scope.record"];void 0===s?this.requestPermission():s||(this.voiceStatus=!1,e.index.showModal({title:"权限提示",content:"需要录音权限才能正常<EFBFBD><EFBFBD>