chatting.js.map 26 KB

1
  1. {"version":3,"sources":["uni-app:///main.js","webpack:///D:/meloinfo/sugarpark-mini-program/pagesSub/chatting/chatting.vue?075a","webpack:///D:/meloinfo/sugarpark-mini-program/pagesSub/chatting/chatting.vue?b630","webpack:///D:/meloinfo/sugarpark-mini-program/pagesSub/chatting/chatting.vue?b4ff","webpack:///D:/meloinfo/sugarpark-mini-program/pagesSub/chatting/chatting.vue?77b8","uni-app:///pagesSub/chatting/chatting.vue","webpack:///D:/meloinfo/sugarpark-mini-program/pagesSub/chatting/chatting.vue?3169","webpack:///D:/meloinfo/sugarpark-mini-program/pagesSub/chatting/chatting.vue?eb90"],"names":["wx","__webpack_require_UNI_MP_PLUGIN__","__webpack_require__","createPage","Page"],"mappings":"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GA;AAgHA,iBAhHA,yBAgHA,CAhHA,EAgHA;AACA;AACA,KAlHA;AAmHA,qBAnHA,+BAmHA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,0EADA;AAEA,wCAFA;AAGA,mFAHA;;AAKA;AACA;AACA;AACA;AACA;AACA,6BADA;AAEA,0BAFA;;AAIA,WALA,MAKA;AACA;AACA;AACA,4CADA;AAEA,wDAFA;AAGA;AACA,yBADA,EAHA;;;AAOA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAlCA;AAmCA;AACA;AACA,OAFA;AAGA,KA7JA;AA8JA,mBA9JA,2BA8JA,CA9JA,EA8JA;AACA;AACA;AACA,uBADA;AAEA;AACA,yBAHA;AAIA;AACA,2BALA;AAMA;AACA,6BAPA;AAQA;AACA,qBATA,CASA;AATA;AAWA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAPA,EAOA,IAPA;AAQA,KAvLA;;AAyLA;AACA,mBA1LA,2BA0LA,CA1LA,EA0LA;AACA;AACA;AACA;AACA;AACA,SAHA,MAGA;AACA;AACA;AACA,SAHA,MAGA;AACA;AACA;AACA;AACA;AACA,KAvMA;;AAyMA;AACA,kBA1MA,4BA0MA;AACA;AACA;AACA;AACA;AACA,KA/MA;AAgNA,mBAhNA,6BAgNA;AACA;AACA;AACA;AACA,cADA;AAEA,gDAFA;AAGA;AACA,oBADA,EAHA;;;AAOA;AACA;AACA,KA5NA;AA6NA,mBA7NA,2BA6NA,OA7NA,EA6NA;AACA;AACA;AACA;AACA,OAFA,EAEA,KAFA,CAEA;AACA;AACA,OAJA;AAKA,KApOA,EAtGA,E;;;;;;;;;;;;;AClEA;AAAA;AAAA;AAAA;AAAwqC,CAAgB,ynCAAG,EAAC,C;;;;;;;;;;;ACA5rC;AACA,OAAO,KAAU,EAAE,kBAKd","file":"pagesSub/chatting/chatting.js","sourcesContent":["import 'uni-pages';wx.__webpack_require_UNI_MP_PLUGIN__ = __webpack_require__;\nimport Vue from 'vue'\nimport Page from './pagesSub/chatting/chatting.vue'\ncreatePage(Page)","import { render, staticRenderFns, recyclableRender, components } from \"./chatting.vue?vue&type=template&id=484f328a&scoped=true&\"\nvar renderjs\nimport script from \"./chatting.vue?vue&type=script&lang=js&\"\nexport * from \"./chatting.vue?vue&type=script&lang=js&\"\nimport style0 from \"./chatting.vue?vue&type=style&index=0&id=484f328a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"484f328a\",\n null,\n false,\n components,\n renderjs\n)\n\ncomponent.options.__file = \"pagesSub/chatting/chatting.vue\"\nexport default component.exports","export * from \"-!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/templateLoader.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--16-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/template.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-uni-app-loader/page-meta.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./chatting.vue?vue&type=template&id=484f328a&scoped=true&\"","var components\nvar render = function() {\n var _vm = this\n var _h = _vm.$createElement\n var _c = _vm._self._c || _h\n}\nvar recyclableRender = false\nvar staticRenderFns = []\nrender._withStripped = true\n\nexport { render, staticRenderFns, recyclableRender, components }","import mod from \"-!../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./chatting.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../HBuilderX/plugins/uniapp-cli/node_modules/babel-loader/lib/index.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--12-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/script.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./chatting.vue?vue&type=script&lang=js&\"","<template>\n\t<view class=\"container\">\n\t\t<view id=\"topnav\" class=\"topnav flex-start\" :style=\"{'height':`${topbarOffsetHeight-statusBarHeight}px`,'padding-top':`${statusBarHeight}px`}\">\n\t\t\t<view class=\"nav-item flex-center\" @click=\"back\">\n\t\t\t\t<image :src=\"`${assetsUrl}back.png`\" mode=\"widthFix\" class=\"nav-img\"></image>\n\t\t\t</view>\n\t\t\t<view class=\"nav-center flex-center\">\n\t\t\t\t<view class=\"nav-text font32 fw600\">\n\t\t\t\t\t{{userInfo.nick}}\n\t\t\t\t</view>\n\t\t\t\t<view class=\"nav-tip font20 fw400\" >\n\t\t\t\t\t<text></text>{{onlineState}} · {{userInfo.distance}}\n\t\t\t\t</view>\n\t\t\t</view>\n\t\t\t\n\t\t\t<view class=\"nav-item\"></view>\n\t\t</view>\n\t\t<view class=\"message-list\" :style=\"{'height': `${scrollHeight}px`,'margin-top':`${topbarOffsetHeight}px`}\">\n\t\t\t<TUI-message-list id=\"message-list\" ref=\"messageList\" :conversation=\"conversation\" :scrollHeight=\"scrollHeight\" :topbarOffsetHeight=\"topbarOffsetHeight\" />\n\t\t</view>\n\t\t<view class=\"talk-box\" id=\"talk-box\" @touchmove=\"prevent()\">\n\t\t\t<view class=\"input-box flex-between\">\n\t\t\t\t<input type=\"text\" class=\"input\" confirm-type=\"send\" placeholder=\"请输入消息…\" v-model=\"inputText\" placeholder-style=\"color:#7D7DA4 ;font-size:24rpx\" @confirm=\"sendTextMessage\">\n\t\t\t\t<view class=\"input-btn font22 fw400\" @click=\"sendTextMessage\">\n\t\t\t\t\t发送\n\t\t\t\t</view>\n\t\t\t</view>\n\t\t\t<view class=\"action-box flex-between\">\n\t\t\t\t<image :src=\"`${assetsUrl}talk-voice.png`\" mode=\"aspectFit\" class=\"act-img\" @click=\"showActionPanel(0)\"></image>\n\t\t\t\t<image :src=\"`${assetsUrl}talk-pic.png`\" mode=\"aspectFit\" class=\"act-img\" @click=\"showActionPanel(1)\"></image>\n\t\t\t\t<image :src=\"`${assetsUrl}talk-video.png`\" mode=\"aspectFit\" class=\"act-img\" @click=\"showActionPanel(2)\"></image>\n\t\t\t\t<image :src=\"`${assetsUrl}talk-emo.png`\" mode=\"aspectFit\" class=\"act-img\" @click=\"showActionPanel(3)\"></image>\n\t\t\t</view>\n\t\t\t<view class=\"action-panel\" :style=\"{'padding-bottom':`${showActionIndex===-1?'68rpx':'20rpx'}`}\">\n\t\t\t\t<view class=\"voice-panel flex-center\" v-if=\"showActionIndex===0\">\n\t\t\t\t\t<view class=\"voice-text font22 fw400\">\n\t\t\t\t\t\t{{voiceText}}\n\t\t\t\t\t</view>\n\t\t\t\t\t<image :src=\"`${assetsUrl}talk-voice-${isRecording?'delete':'open'}.png`\" mode=\"aspectFill\" class=\"voice-img\" @longpress=\"handleLongPress\" @touchmove=\"handleTouchMove\" @touchend=\"handleTouchEnd\"></image>\n\t\t\t\t</view>\n\t\t\t\t<view class=\"emoji-box\" v-if=\"showActionIndex===3\">\n\t\t\t\t\t<TUI-Emoji @enterEmoji=\"appendMessage\"></TUI-Emoji>\n\t\t\t\t</view>\n\t\t\t</view>\n\t\t</view>\n\t\t<view v-if=\"videoPlay\" class=\"container-box\" @tap.stop=\"stopVideoHander\">\n\t\t\t<video\n\t\t\t\tv-if=\"videoPlay\"\n\t\t\t\tclass=\"video-message\"\n\t\t\t\t:src=\"videoMessage.payload.videoUrl||videoMessage.videoUrl\"\n\t\t\t\t:poster=\"videoMessage.payload.thumbUrl||videoMessage.videoCover\"\n\t\t\t\tobject-fit=\"cover\"\n\t\t\t\terror=\"videoError\"\n\t\t\t\tautoplay=\"true\"\n\t\t\t\tdirection=\"0\"\n\t\t\t\tshow-fullscreen-btn=\"false\"\n\t\t\t\t:style=\"{'width':`${videoMessage.payload.thumbWidth||videoMessage.width}px`,'height':`${videoMessage.payload.thumbHeight||videoMessage.height}px`}\"\n\t\t\t/>\n\t\t</view>\n\t</view>\n</template>\n\n<script>\n\timport TUIEmoji from '../../components/tui-chat/message-elements/emoji/index';\n\timport TUIMessageList from '../../components/tui-chat/message-list/index';\n\t\n\texport default {\n\t\tcomponents: {\n\t\t\tTUIMessageList,\n\t\t\tTUIEmoji\n\t\t},\n\t\tdata() {\n\t\t\treturn {\n\t\t\t\tassetsUrl:this.$util.assetsUrl,\n\t\t\t\tscrollHeight:0,\n\t\t\t\ttopNavHeight:0,\n\t\t\t\tuserInfo:null,\n\t\t\t\tmessageList:[],\n\t\t\t\tmessage:null,//消息实例\n\t\t\t\tonlineState:'',\n\t\t\t\tscrollRefreshing:false,\n\t\t\t\tscrollTriggered:true,\n\t\t\t\tconversation:'',\n\t\t\t\tconversationID: '',\n\t\t\t\tinputText:'',\n\t\t\t\tshowSendBtn:false,\n\t\t\t\tshowActionIndex:-1,\n\t\t\t\trecorderManager:null,\n\t\t\t\tvoiceText:'按住说话,松手发送',\n\t\t\t\trecordTimeTotal:60,//最大长度,30秒\n\t\t\t\tisRecording:false,\n\t\t\t\tcanSend:false,\n\t\t\t\tstartPoint:0,\n\t\t\t\tvideoPlay: false,\n\t\t\t\tvideoMessage: {},\n\t\t\t\t\n\t\t\t\t\n\t\t\t}\n\t\t},\n\t\tcomputed: {\n\t\t\tstatusBarHeight() {\n\t\t\t\treturn this.$store.state.statusBarHeight;\n\t\t\t},\n\t\t\ttopbarOffsetHeight() {\n\t\t\t\treturn this.$store.state.topbarOffsetHeight;\n\t\t\t}\n\t\t},\n\t\tcreated() {\n\t\t\tuni.$on('videoPlayerHandler', value => {\n\t\t\t\tthis.videoPlay = value.isPlay;\n\t\t\t\tthis.videoMessage = value.message;\n\t\t\t});\n\t\t\tuni.authorize({\n\t\t\t\tscope:'scope.record',\n\t\t\t\tsuccess:()=>{\n\t\t\t\t\tthis.startRecordManage();\n\t\t\t\t},\n\t\t\t\tfail:err=>{\n\t\t\t\t\tuni.showModal({\n\t\t\t\t\t\tcontent: '检测到您没打开录音功能权限,是否去设置打开?',\n\t\t\t\t\t\tconfirmText: \"确认\",\n\t\t\t\t\t\tcancelText: '取消',\n\t\t\t\t\t\tsuccess:res=>{\n\t\t\t\t\t\t\tif(res.confirm){\n\t\t\t\t\t\t\t\tuni.openSetting({\n\t\t\t\t\t\t\t\t\tsuccess:ress=>{\n\t\t\t\t\t\t\t\t\t\tif(ress.authSetting){\n\t\t\t\t\t\t\t\t\t\t\tthis.startRecordManage();\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t})\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t})\n\t\t\t\t}\n\t\t\t})\n\t\t},\n\t\tonLoad(options) {\n\t\t\tthis.conversationID=options.conversationid;\n\t\t\tuni.$TUIKit.setMessageRead({\n\t\t\t\tconversationID:this.conversationID\n\t\t\t})\n\t\t\tuni.$TUIKit.getConversationProfile(this.conversationID).then(res => {\n\t\t\t\tconst { conversation } = res.data;\n\t\t\t\tthis.conversation = conversation;\n\t\t\t});\n\t\t\tlet pages=getCurrentPages();\n\t\t\tlet prePage=pages[pages.length-2];\n\t\t\tthis.userInfo=prePage.$vm.userInfo;\n\t\t\t\n\t\t},\n\t\tmounted() {\n\t\t\t\n\t\t\tif(this.userInfo.lastActiveTime===0||this.userInfo.online){\n\t\t\t\tthis.onlineState='在线';\n\t\t\t}\n\t\t\telse if(this.userInfo.lastActiveTime<30&&!this.userInfo.online){\n\t\t\t\tthis.onlineState='刚刚';\n\t\t\t}\n\t\t\telse{\n\t\t\t\tthis.onlineState='离线';\n\t\t\t}\n\t\t\tsetTimeout(()=>{\n\t\t\t\tthis.computedScollviewHeight();\n\t\t\t},500)\n\t\t\t\n\t\t\t\n\t\t},\n\t\tmethods: {\n\t\t\tback(){\n\t\t\t\tuni.navigateBack({\n\t\t\t\t\tdelta:1\n\t\t\t\t})\n\t\t\t},\n\t\t\tprevent(){\n\t\t\t\treturn false;\n\t\t\t},\n\t\t\tstopVideoHander() {\n\t\t\t\tthis.videoPlay = false;\n\t\t\t},\n\t\t\t/**\n\t\t\t * 计算scroll高度\n\t\t\t */\n\t\t\tcomputedScollviewHeight() {\n\t\t\t\tlet query = uni.createSelectorQuery().in(this);\n\t\t\t\tlet heightLeaf =0;\n\t\t\t\tquery.selectAll('#topnav,#talk-box').boundingClientRect(data => {\n\t\t\t\t\tdata.forEach(item=>{\n\t\t\t\t\t\theightLeaf+=item.height;\n\t\t\t\t\t})\n\t\t\t\t}).exec(() => {\n\t\t\t\t\tlet sysInfo = uni.getSystemInfoSync();\n\t\t\t\t\tthis.scrollHeight = sysInfo.windowHeight - heightLeaf;\n\t\t\t\t\tthis.$refs.messageList.scrollToButtom();\n\t\t\t\t});\n\t\t\t\n\t\t\t},\n\t\t\t/**\n\t\t\t * 推荐下拉刷新、加载更多\n\t\t\t */\n\t\t\tscrollRefresh(){\n\t\t\t\tif (this.scrollRefreshing) \n\t\t\t\t{\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\tthis.scrollRefreshing = true;\n\t\t\t\tsetTimeout(() => {\n\t\t\t\t\tthis.scrollTriggered = false;\n\t\t\t\t\tthis.scrollRefreshing = false;\n\t\t\t\t}, 1000);\n\t\t\t\tthis.isLoadPreData=true;\n\t\t\t\n\t\t\t},\n\t\t\tscrollPulling(e) {},\n\t\t\tscrollRestore() {this.scrollTriggered = true;},\n\t\t\tscrollAbort() {},\n\t\t\tscrollToBottom(){},\n\t\t\tshowActionPanel(index){\n\t\t\t\tif(this.showActionIndex===index){\n\t\t\t\t\tthis.showActionIndex=-1;\n\t\t\t\t\tsetTimeout(()=>{\n\t\t\t\t\t\tthis.computedScollviewHeight();\n\t\t\t\t\t},50)\n\t\t\t\t\treturn;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t\tswitch(index){\n\t\t\t\t\tcase 0:\n\t\t\t\t\t\tthis.showActionIndex=index;\n\t\t\t\t\t\tsetTimeout(()=>{\n\t\t\t\t\t\t\tthis.computedScollviewHeight();\n\t\t\t\t\t\t},50)\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 1:\n\t\t\t\t\t\tthis.showActionIndex=-1;\n\t\t\t\t\t\tuni.chooseImage({\n\t\t\t\t\t\t\tcount: 1,\n\t\t\t\t\t\t\tsizeType: ['original', 'compressed'],\n\t\t\t\t\t\t\tsourceType: ['album', 'camera'],\n\t\t\t\t\t\t\tsuccess:res=>{\n\t\t\t\t\t\t\t console.log(res)\n\t\t\t\t\t\t\t\tconst message = uni.$TUIKit.createImageMessage({\n\t\t\t\t\t\t\t\t\tto: String(this.userInfo.id),\n\t\t\t\t\t\t\t\t\tconversationType: this.conversation.type,\n\t\t\t\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\t\t\t\tfile: res\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tonProgress:event=>{}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tthis.$sendTIMMessage(message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 2:\n\t\t\t\t\t\tuni.chooseVideo({\n\t\t\t\t\t\t\tsourceType: ['album', 'camera'],\n\t\t\t\t\t\t\tmaxDuration: 60,\n\t\t\t\t\t\t\tcamera: 'back',\n\t\t\t\t\t\t\tsuccess:res=>{\n\t\t\t\t\t\t\t\tconst message = uni.$TUIKit.createVideoMessage({\n\t\t\t\t\t\t\t\t\tto: String(this.userInfo.id),\n\t\t\t\t\t\t\t\t\tconversationType: this.conversation.type,\n\t\t\t\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\t\t\t\tfile: res\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t\tonProgress:event=>{}\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\tthis.$sendTIMMessage(message);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t})\n\t\t\t\t\tbreak;\n\t\t\t\t\tcase 3:\n\t\t\t\t\t\tthis.showActionIndex=index;\n\t\t\t\t\t\tsetTimeout(()=>{\n\t\t\t\t\t\t\tthis.computedScollviewHeight();\n\t\t\t\t\t\t},50)\n\t\t\t\t\tbreak;\n\t\t\t\t}\n\t\t\t\t\n\t\t\t},\n\t\t\tappendMessage(e) {\n\t\t\t\tthis.inputText+=e.detail.message;\n\t\t\t},\n\t\t\tstartRecordManage(){\n\t\t\t\t// 加载声音录制管理器\n\t\t\t\tthis.recorderManager = uni.getRecorderManager();\n\t\t\t\tconsole.log(this.recorderManager)\n\t\t\t\tthis.recorderManager.onStop(res => {\n\t\t\t\t\tconsole.log(res)\n\t\t\t\t\tclearInterval(this.recordTimer);\n\t\t\t\t\t// 兼容 uniapp 打包app,duration 和 fileSize 需要用户自己补充\n\t\t\t\t\t// 文件大小 = (音频码率) x 时间长度(单位:秒) / 8\n\t\t\t\t\tlet msg = {\n\t\t\t\t\t\tduration: res.duration ? res.duration : this.recordTime * 1000,\n\t\t\t\t\t\ttempFilePath: res.tempFilePath,\n\t\t\t\t\t\tfileSize: res.fileSize ? res.fileSize : ((48 * this.recordTime) / 8) * 1024\n\t\t\t\t\t};\n\t\t\t\t\tuni.hideLoading();\n\t\t\t\t\t// 兼容 uniapp 语音消息没有duration\n\t\t\t\t\tif (this.canSend) {\n\t\t\t\t\t\tif (msg.duration < 1000) {\n\t\t\t\t\t\t\tuni.showToast({\n\t\t\t\t\t\t\t\ttitle: '录音时间太短',\n\t\t\t\t\t\t\t\ticon: 'none'\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t// res.tempFilePath 存储录音文件的临时路径\n\t\t\t\t\t\t\tconst message = uni.$TUIKit.createAudioMessage({\n\t\t\t\t\t\t\t\tto: String(this.userInfo.id),\n\t\t\t\t\t\t\t\tconversationType: this.conversation.type,\n\t\t\t\t\t\t\t\tpayload: {\n\t\t\t\t\t\t\t\t\tfile: msg\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\tthis.$sendTIMMessage(message);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t\tthis.startPoint=0;\n\t\t\t\t\tthis.isRecording=false;\n\t\t\t\t\tthis.canSend=true;\n\t\t\t\t\tthis.voiceText='按住说话,松手发送';\n\t\t\t\t});\n\t\t\t\tthis.recorderManager.onError(err=>{\n\t\t\t\t\tconsole.log(err)\n\t\t\t\t})\n\t\t\t},\n\t\t\thandleLongPress(e) {\n\t\t\t\tuni.vibrateShort();\n\t\t\t\tthis.recorderManager.start({\n\t\t\t\t\tduration: 60000,\n\t\t\t\t\t// 录音的时长,单位 ms,最大值 600000(10 分钟)\n\t\t\t\t\tsampleRate: 44100,\n\t\t\t\t\t// 采样率\n\t\t\t\t\tnumberOfChannels: 1,\n\t\t\t\t\t// 录音通道数\n\t\t\t\t\tencodeBitRate: 192000,\n\t\t\t\t\t// 编码码率\n\t\t\t\t\tformat: 'aac' // 音频格式,选择此格式创建的音频消息,可以在即时通信 IM 全平台(Android、iOS、微信小程序和Web)互通\n\t\t\t\t});\n\t\t\t\tthis.startPoint=e.touches[0];\n\t\t\t\tthis.voiceText='正在录音,上划可取消';\n\t\t\t\tthis.isRecording=true;\n\t\t\t\tthis.recordTime=0;\n\t\t\t\tthis.recordTimer = setInterval(() => {\n\t\t\t\t\tthis.recordTime++;\n\t\t\t\t\tif(this.recorTime>=this.recordTimeTotal){\n\t\t\t\t\t\tthis.recorderManager.stop();\n\t\t\t\t\t\tclearInterval(this.recordTimer);\n\t\t\t\t\t\tthis.recordTimer=null;\n\t\t\t\t\t}\n\t\t\t\t}, 1000);\n\t\t\t},\n\t\t\t\n\t\t\t// 录音时的手势上划移动距离对应文案变化\n\t\t\thandleTouchMove(e) {\n\t\t\t\tif (this.isRecording) {\n\t\t\t\t\tif (this.startPoint.clientY - e.touches[e.touches.length - 1].clientY > 100) {\n\t\t\t\t\t\tthis.voiceText='松开手指,取消发送';\n\t\t\t\t\t\tthis.canSend=false;\n\t\t\t\t\t} else if (this.startPoint.clientY - e.touches[e.touches.length - 1].clientY > 20) {\n\t\t\t\t\t\tthis.voiceText='上划可取消';\n\t\t\t\t\t\tthis.canSend=true;\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.voiceText='抬起停止';\n\t\t\t\t\t\tthis.canSend=true;\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t},\n\t\t\t\n\t\t\t// 手指离开页面滑动\n\t\t\thandleTouchEnd() {\n\t\t\t\tthis.isRecording=false;\n\t\t\t\tthis.voiceText='按住说话,松手发送';\n\t\t\t\tuni.hideLoading();\n\t\t\t\tthis.recorderManager.stop();\n\t\t\t},\n\t\t\tsendTextMessage() {\n\t\t\t\tconst to = String(this.userInfo.id);\n\t\t\t\tconst text =this.inputText;\n\t\t\t\tconst message = uni.$TUIKit.createTextMessage({\n\t\t\t\t\tto,\n\t\t\t\t\tconversationType: this.conversation.type,\n\t\t\t\t\tpayload: {\n\t\t\t\t\t\ttext\n\t\t\t\t\t}\n\t\t\t\t});\n\t\t\t\tthis.inputText='';\n\t\t\t\tthis.$sendTIMMessage(message);\n\t\t\t},\n\t\t\t$sendTIMMessage(message) {\n\t\t\t\tthis.$EventBus.$emit('sendMessage', message)\n\t\t\t\tuni.$TUIKit.sendMessage(message).then((res) => {\n\t\t\t\t\tthis.$refs.messageList.scrollToButtom();\n\t\t\t\t}).catch((error) => {\n\t\t\t\t\tconsole.log(error)\n\t\t\t\t})\n\t\t\t},\n\t\t\t\n\t\t}\n\t}\n</script>\n\n<style lang=\"scss\" scoped>\n.container{\n\twidth: 100vw;\n\theight: 100vh;\n\tbackground-color: $bgcolor1;\n\tposition: relative;\n\toverflow: hidden;\n\t.topnav {\n\t\tpadding: 0 10rpx;\n\t\tposition: fixed;\n\t\ttop: 0;\n\t\tleft: 0;\n\t\twidth: 100vw;\n\t\tz-index: 100;\n\t\tbackground-color: $bgcolor1;\n\t\t.nav-item{\n\t\t\twidth: 40rpx;\n\t\t\theight: 40rpx;\n\t\t\tmargin-left: 16rpx;\n\t\t\t\n\t\t\t.nav-img{\n\t\t\t\twidth: 40rpx;\n\t\t\t\theight: 40rpx;\n\t\t\t}\n\t\t}\n\t\t.nav-center{\n\t\t\tflex: 1;\n\t\t\tflex-direction: column;\n\t\t\t.nav-text{\n\t\t\t\t\n\t\t\t\tcolor: $fontcolor5;\n\t\t\t\theight: 40rpx;\n\t\t\t\ttext-align: center;\n\t\t\t}\n\t\t\t.nav-tip{\n\t\t\t\tcolor:$fontcolor2;\n\t\t\t}\n\t\t}\n\t\t\n\t}\n\t.talk-box{\n\t\tposition: fixed;\n\t\tbottom: 0;\n\t\tleft: 0;\n\t\twidth: 100vw;\n\t\tpadding-top: 16rpx;\n\t\tbackground-color: $bgcolor1;\n\t\t.input-box{\n\t\t\tmargin: 0rpx 32rpx;\n\t\t\theight: 80rpx;\n\t\t\tborder-radius: 80rpx;\n\t\t\tbackground-color: $bgcolor4;\n\t\t\tpadding: 0 24rpx;\n\t\t\t.input{\n\t\t\t\twidth: 100%;\n\t\t\t\theight: 100%;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tfont-size: 22rpx;\n\t\t\t}\n\t\t\t.input-btn{\n\t\t\t\tbackground-color: $primary;\n\t\t\t\tcolor: #ffffff;\n\t\t\t\tborder-radius: 16rpx;\n\t\t\t\theight: 56rpx;\n\t\t\t\tline-height: 56rpx;\n\t\t\t\twidth: 120rpx;\n\t\t\t\ttext-align: center;\n\t\t\t\t\n\t\t\t}\n\t\t}\n\t\t.action-box{\n\t\t\tpadding: 0rpx 0rpx 20rpx 0rpx;\n\t\t\tmargin: 0 90rpx;\n\t\t\tmargin-top: 36rpx;\n\t\t\t.act-img{\n\t\t\t\twidth: 56rpx;\n\t\t\t\theight: 56rpx;\n\t\t\t}\n\t\t}\n\t\t.action-panel{\n\t\t\twidth: 100vw;\n\t\t\t.voice-panel{\n\t\t\t\theight: 400rpx;\n\t\t\t\tflex-direction: column;\n\t\t\t\t.voice-text{\n\t\t\t\t\tcolor: #7D7DA4;\n\t\t\t\t\ttext-align: center;\n\t\t\t\t\t\n\t\t\t\t}\n\t\t\t\t.voice-img{\n\t\t\t\t\twidth: 200rpx;\n\t\t\t\t\theight: 200rpx;\n\t\t\t\t\tmargin-top: 40rpx;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t\t.emoji-box{\n\t\t\tpadding: 0 11rpx;\n\t\t\tbox-sizing: border-box;\n\t\t\theight: 400rpx;\n\t\t\tflex-wrap: wrap;\n\t\t\ttransition: height .3s;\n\t\t\t.emoji-item{\n\t\t\t\twidth: 64rpx;\n\t\t\t\theight: 64rpx;\n\t\t\t\tpadding: 20rpx;\n\t\t\t\t.emoji-img{\n\t\t\t\t\twidth: 64rpx;\n\t\t\t\t\theight: 64rpx;\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\t.container-box {\n\t\tposition: fixed;\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\talign-items: center;\n\t\tleft: 0;\n\t\tright: 0;\n\t\tbottom: 0;\n\t\ttop: 0;\n\t\tbackground-color: rgba(0, 0, 0, 0.5);\n\t\t.video-message {\n\t\t\twidth: 90vw;\n\t\t\theight: auto;\n\t\t}\n\t}\n}\n</style>\n\n","import mod from \"-!../../../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./chatting.vue?vue&type=style&index=0&id=484f328a&lang=scss&scoped=true&\"; export default mod; export * from \"-!../../../../HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../HBuilderX/plugins/uniapp-cli/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/loaders/stylePostLoader.js!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-2!../../../../HBuilderX/plugins/uniapp-cli/node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-3!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/sass-loader/dist/cjs.js??ref--8-oneOf-1-4!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/webpack-preprocess-loader/index.js??ref--8-oneOf-1-5!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/vue-cli-plugin-uni/packages/vue-loader/lib/index.js??vue-loader-options!../../../../HBuilderX/plugins/uniapp-cli/node_modules/@dcloudio/webpack-uni-mp-loader/lib/style.js!./chatting.vue?vue&type=style&index=0&id=484f328a&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\n if(module.hot) {\n // 1663896637401\n var cssReload = require(\"D:/HBuilderX/plugins/uniapp-cli/node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {\"hmr\":true,\"publicPath\":\"../../\",\"locals\":false});\n module.hot.dispose(cssReload);\n module.hot.accept(undefined, cssReload);\n }\n "],"sourceRoot":""}