if (!messageCache[currentUser]) messageCache[currentUser] = []; messageCache[currentUser].push(payload); renderMessages(currentUser); adminInput.value = ''; if (users[currentUser]) { users[currentUser].lastMsg = text; renderSidebar(); } } function sendAdminImage(file) { if (!file !currentUser !isReady) return; var u = users[currentUser]; if (!u) return; var reader = new FileReader(); reader.onload = function(e) { var topic = 'chat/' + u.agentId + '/' + currentUser; var payload = { sender: 'admin', senderId: 'admin', senderName: '客服', text: '图片', time: new Date().toLocaleString(), type: 'image', image: e.target.result }; client.publish(topic, JSON.stringify(payload), { qos: 0, retain: false }); if (!messageCache[currentUser]) messageCache[currentUser] = []; messageCache[currentUser].push(payload); renderMessages(currentUser); if (users[currentUser]) { users[currentUser].lastMsg = '图片'; renderSidebar(); } }; reader.readAsDataURL(file); } adminSendBtn.addEventListener('click', sendAdminMessage); adminInput.addEventListener('keydown', function(e) { if (e.key === 'Enter') { e.preventDefault(); sendAdminMessage(); } }); adminFileBtn.addEventListener('click', function() { adminFileInput.click(); }); adminFileInput.addEventListener('change', function() { if (this.files && this.files[0]) { sendAdminImage(this.files[0]); } this.value = ''; }); connect(); })();