1 line
117 KiB
JavaScript
1 line
117 KiB
JavaScript
|
"use strict";(self["webpackChunkmining_pool"]=self["webpackChunkmining_pool"]||[]).push([[956],{4710:function(t,s,e){Object.defineProperty(s,"B",{value:!0}),s.A=void 0,e(44114),e(18111),e(22489),e(20116),e(7588),e(61701);var i=e(51775),a=e(92500);s.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:"497681109@qq.com",userType:1,loadingHistory:!1,userViewHistory:!1,userScrolled:!1,history7Params:{id:"",roomId:"",userType:2,email:"497681109@qq.com"},historyAllParams:{id:"",roomId:"",userType:2},receiveUserType:"",manualCreatedRooms:[],chatRooms:[],isWebSocketConnected:!1,connectionStatus:"disconnected"}},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{await this.fetchRoomList(),this.contacts.length>0&&this.selectContact(this.contacts[0].roomId),this.loadManualCreatedRooms(),this.initWebSocket()}catch(t){console.error("初始化失败:",t)}},async mounted(){await this.fetchRoomList(),this.contacts.length>0&&this.selectContact(this.contacts[0].roomId);let t=localStorage.getItem("userEmail");this.userEmail=JSON.parse(t),window.addEventListener("setItem",(()=>{let t=localStorage.getItem("userEmail");this.userEmail=JSON.parse(t)})),this.$nextTick((()=>{this.scrollToBottom()})),this.$nextTick((()=>{this.$refs.messageContainer&&this.$refs.messageContainer.addEventListener("scroll",this.handleScroll)}))},methods:{handleKeyDown(t){console.log("e:hhhhshshsshshshhh好的好的和",t),t.ctrlKey||(t.preventDefault(),this.sendMessage())},initWebSocket(){if(!this.isWebSocketConnected)try{const t="https://test.m2pool.com/api/chat/ws";this.stompClient=a.Stomp.client(t),this.stompClient.splitLargeFrames=!0,this.stompClient.debug=t=>{(t.includes("CONNECTED")||t.includes("DISCONNECTED")||t.includes("ERROR"))&&console.log("[客服系统]",t)};const s={email:this.userEmail,type:this.userType};this.stompClient.connect(s,(t=>{console.log("[客服系统] WebSocket 连接成功",t),this.isWebSocketConnected=!0,this.connectionStatus="connected",this.subscribeToMessages()}),(t=>{console.error("[客服系统] WebSocket 错误:",t),this.handleDisconnect()})),this.stompClient.heartbeat.outgoing=2e4,this.stompClient.heartbeat.incoming=2e4}catch(t){console.error("初始化 CustomerService WebSocket 失败:",t),this.handleDisconnect()}},subscribeToMessages(){if(this.stompClient&&this.isWebSocketConnected)try{this.stompClient.subscribe(`/sub/queue/customer/${this.userEmail}`,this.handleIncomingMessage,{id:`customer_${this.userEmail}`}),console.log("CustomerService 成功订阅消息频道:",`/sub/queue/customer/${this.userEmail}`)}catch(t){console.error("CustomerService 订阅消息失败:",t)}},disconnectWebSocket(){if(this.stompClient)try{this.stompClient.subscriptions&&Object.keys(this.stompClient.subscriptions).forEach((t=>{this.stompClient.unsubscribe(t)})),this.stompClient.deactivate(),this.isWebSocketConnected=!1,this.connectionStatus="disconnected"}catch(t){console.error("断开 CustomerService WebSocket 连接失败:",t)}},handleDisconnect(){this.isWebSocketConnected=!1,this.connectionStatus="error",setTimeout((()=>{this.isWebSocketConnected||this.initWebSocket()}),5e3)},getUTCTime(){const t=new Date;return new Date(t.getTime()+6e4*t.getTimezoneOffset())},async sendMessage(){if(!this.inputMessage.trim()||!this.currentContact||this.sending)return;const t=this.inputMessage.trim();this.inputMessage="",this.sending=!0;try{void 0!==this.currentContact.sendUserType?this.receiveUserType=this.currentContact.sendUserType:this.receiveUserType=1;const s={content:t,type:1,email:this.currentContact.name,receiveUserType:this.receiveUserType,roomId:this.currentContactId};this.stompClient.send("/poin
|