1 line
149 KiB
JavaScript
1 line
149 KiB
JavaScript
|
"use strict";(self["webpackChunkmining_pool"]=self["webpackChunkmining_pool"]||[]).push([[956],{4710:function(t,e,s){Object.defineProperty(e,"B",{value:!0}),e.A=void 0,s(44114),s(18111),s(22489),s(20116),s(7588),s(61701),s(18237),s(13579);var i=s(51775),a=s(92500);e.A={name:"CustomerServiceChat",data(){return{searchText:"",inputMessage:"",currentContactId:null,previewVisible:!1,previewImageUrl:"",contacts:[],messages:{},messagesLoading:!1,sending:!1,loadingRooms:!0,stompClient:null,wsConnected:!1,userEmail:"",userType:1,loadingHistory:!1,userViewHistory:!1,userScrolled:!1,history7Params:{id:"",roomId:"",userType:2,email:""},historyAllParams:{id:"",roomId:"",userType:2},receiveUserType:"",manualCreatedRooms:[],chatRooms:[],isWebSocketConnected:!1,connectionStatus:"disconnected",isLoadingMoreContacts:!1,lastContactTime:null,showScrollButton:!1,visibilityHandler:null,reconnectTimer:null,maxReconnectAttempts:5,reconnectInterval:5e3,reconnectAttempts:0,isHandlingError:!1,lastErrorTime:0,lastActivityTime:Date.now(),activityCheckInterval:null,activityEvents:null,activityHandler:null,connectionVerifyTimer:null,connectionVerifyTimeout:6e4,isConnectionVerified:!1,heartbeatInterval:null,heartbeatTimeout:3e4,lastHeartbeatTime:0,connectionCheckInterval:null,connectionCheckTimeout:6e4,hasMoreHistory:!0,noMoreHistoryMessage:""}},computed:{filteredContacts(){return this.searchText?this.contacts.filter((t=>t.name.toLowerCase().includes(this.searchText.toLowerCase()))):this.contacts},currentContact(){return this.contacts.find((t=>t.roomId===this.currentContactId))},currentMessages(){return this.messages[this.currentContactId]||[]}},async created(){try{let t=localStorage.getItem("userEmail");this.userEmail=JSON.parse(t),window.addEventListener("setItem",(()=>{let t=localStorage.getItem("userEmail");this.userEmail=JSON.parse(t)})),await this.fetchRoomList(),this.loadManualCreatedRooms(),console.log(this.userEmail,"初始化的时候"),this.initWebSocket()}catch(t){console.error("初始化失败:",t)}},async mounted(){await this.fetchRoomList();let t=localStorage.getItem("userEmail");this.userEmail=JSON.parse(t),window.addEventListener("setItem",(()=>{let t=localStorage.getItem("userEmail");this.userEmail=JSON.parse(t)})),console.log(this.userEmail,"mounted"),this.$nextTick((()=>{this.$refs.messageContainer&&this.$refs.messageContainer.addEventListener("scroll",this.handleScroll)})),this.$nextTick((()=>{const t=document.querySelector(".cs-contacts");t&&t.addEventListener("scroll",this.handleContactListScroll)})),this.visibilityHandler=()=>{"visible"===document.visibilityState?(console.log("🔍 客服页面重新可见,执行连接状态检查"),this.updateLastActivityTime(),this.performConnectionCheck(),"connected"===this.connectionStatus&&this.isWebSocketConnected?(console.log("✅ 客服页面可见,连接状态正常"),this.heartbeatInterval||this.startHeartbeat(),this.connectionCheckInterval||this.startConnectionCheck()):(console.log("🔄 客服页面可见,检测到连接异常,开始重连"),this.checkAndReconnect())):console.log("📱 客服页面变为隐藏状态")},document.addEventListener("visibilitychange",this.visibilityHandler),this.startActivityCheck(),this.activityEvents=["mousedown","mousemove","keypress","scroll","touchstart","click"],this.activityHandler=()=>{this.updateLastActivityTime()},this.activityEvents.forEach((t=>{document.addEventListener(t,this.activityHandler,!0)})),window.addEventListener("storage",this.handleStorageChange)},methods:{handleKeyDown(t){if("Enter"===t.key)if(t.ctrlKey){const e=t.target,s=e.value,i=e.selectionStart,a=e.selectionEnd;e.value=s.substring(0,i)+"\n"+s.substring(a),e.selectionStart=e.selectionEnd=i+1,t.preventDefault()}else t.preventDefault(),this.sendMessage()},initWebSocket(){if(this.isWebSocketConnected)console.log("WebSocket已连接,跳过初始化");else if(this.stompClient&&"DISCONNECTED"!==this.stompClient.state)console.log("WebSocket正在连接中,跳过初始化");else try{this.stompClient&&this.forceDisconnectAll(),console.log("开始初始化WebSocket连接..
|