46 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
		
		
			
		
	
	
			46 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			HTML
		
	
	
	
	
	
|  | <!DOCTYPE html> | ||
|  | <html lang="zh-CN"> | ||
|  | <head> | ||
|  |     <meta charset="UTF-8"> | ||
|  |     <title>聊天窗口</title> | ||
|  |     <link rel="stylesheet" href="{{ url_for('static', filename='css/chat.css') }}"> | ||
|  |     <!-- 引入 Socket.IO 客户端库 --> | ||
|  |     <script src="https://cdnjs.cloudflare.com/ajax/libs/socket.io/4.5.4/socket.io.min.js" integrity="sha512-OE+tNYgJBSy/R8gSSzIjcC+3hkT0lj3cPnOeYv50E6n0Pzv1tq9I7YytCTv19Uaz1Lr5un2ngc7IQXBuT7GqdQ==" crossorigin="anonymous" referrerpolicy="no-referrer"></script> | ||
|  |     <!-- 引入 Vue.js --> | ||
|  |     <script src="{{ url_for('static', filename='js/vue.js') }}"></script> | ||
|  |     <!-- 引入 Element UI --> | ||
|  |     <link rel="stylesheet" href="{{ url_for('static', filename='css/element/theme-chalk.css') }}" /> | ||
|  |     <script src="{{ url_for('static', filename='js/element-ui.js') }}"></script> | ||
|  |     <!-- 引入 chat.js --> | ||
|  |     <script src="{{ url_for('static', filename='js/chat.js') }}" defer></script> | ||
|  | </head> | ||
|  | <body> | ||
|  |     <div id="chat-app"> | ||
|  |         <div id="chat-widget"> | ||
|  |             <button id="toggle-chat" @click="toggleChat">打开聊天</button> | ||
|  |             <div id="chat-container" class="hidden"> | ||
|  |                 <div id="messages"> | ||
|  |                     <!-- 消息气泡将动态添加到这里 --> | ||
|  |                     <div v-for="(message, index) in messages" :key="index" class="message" :class="message.type"> | ||
|  |                         <div class="bubble"> | ||
|  |                             [[ message.content ]] | ||
|  |                             <div class="message-time">[[ message.timetext ]]</div> | ||
|  |                         </div> | ||
|  |                     </div> | ||
|  |                 </div> | ||
|  |                 <div id="status-indicator">[[ status ]]</div> | ||
|  |                 <div id="input-area"> | ||
|  |                     <button id="record-btn" @click="toggleRecording"> | ||
|  |                         <img id="record-icon" :src="isRecording ? '/static/images/recording.png' : '/static/images/record.png'" alt="录音"> | ||
|  |                     </button> | ||
|  |                     <input type="text" id="message-input" placeholder="请输入内容..." v-model="newMessage"> | ||
|  |                     <button id="send-btn" @click="sendMessage"> | ||
|  |                         <img src="{{ url_for('static', filename='images/send.png') }}" alt="发送"> | ||
|  |                     </button> | ||
|  |                 </div> | ||
|  |             </div> | ||
|  |         </div> | ||
|  |     </div> | ||
|  | </body> | ||
|  | </html> |