From 920e530b68c0f4dba434281ce94c9814e9937db3 Mon Sep 17 00:00:00 2001
From: WXL <1785969728@qq.com>
Date: 星期二, 22 七月 2025 16:36:18 +0800
Subject: [PATCH] 11

---
 public/ConsultationRoom.html |  230 ++++++++++++++++++++++++++++++++------------------------
 1 files changed, 131 insertions(+), 99 deletions(-)

diff --git a/public/ConsultationRoom.html b/public/ConsultationRoom.html
index dd138ec..55fc719 100644
--- a/public/ConsultationRoom.html
+++ b/public/ConsultationRoom.html
@@ -265,8 +265,10 @@
     .control-btn {
       padding: 8px 5px;
       background: rgba(91, 140, 255, 0.1);
-       flex: 1; /* 骞冲潎鍒嗛厤瀹藉害 */
-  min-width: 0; /* 闃叉鍐呭婧㈠嚭 */
+      flex: 1;
+      /* 骞冲潎鍒嗛厤瀹藉害 */
+      min-width: 0;
+      /* 闃叉鍐呭婧㈠嚭 */
       border: none;
       border-radius: 12px;
       color: #4a7dff;
@@ -398,12 +400,12 @@
 
 <body>
   <div id="app">
-    <div class="search-bar">
+    <div class="search-bar" style="display: none;">
       <input class="search-input" type="text" placeholder="璇疯緭鍏ユ埧闂村彿鏌ヨ" id="searchRoomInput">
       <button class="search-btn" id="searchRoomBtn">鏌ヨ</button>
     </div>
 
-    <div class="header">
+    <div class="header" style="display: none;">
       <div class="clinic-title">蹇冪數鍥捐瘖闂村彨鍙风郴缁�</div>
       <div class="clinic-info">
         <div class="room-name" id="roomName">璇婇棿鍔犺浇涓�...</div>
@@ -413,7 +415,7 @@
 
     <div class="main-content">
       <div class="panel">
-        <div class="panel-header">妫�鏌ラ槦鍒�</div>
+        <div class="panel-header">绛夊緟闃熷垪</div>
         <div class="patient-list" id="checkPatientList">
           <div class="empty-state">
             鏆傛棤绛夊緟妫�鏌ョ殑鎮h��
@@ -422,7 +424,7 @@
       </div>
     </div>
 
-    <div class="footer">
+    <div class="footer" style="display: none;">
       <div class="announcement" id="announcementText">
         绯荤粺杩愯涓�...
       </div>
@@ -457,19 +459,29 @@
       roomId: 1,
       timer: null,
       speechSynthesis: window.speechSynthesis || null,
-      apiBaseUrl: 'http://10.0.2.193/admin-api' // 鏍规嵁瀹為檯鎯呭喌淇敼
+      apiBaseUrl: 'http://10.0.2.193/admin-api' 
+      // apiBaseUrl: 'http://localhost:48080/admin-api' 
     };
 
     // 椤甸潰鍔犺浇瀹屾垚鍚庡垵濮嬪寲
-    $(document).ready(function () {
+    // 椤甸潰鍔犺浇瀹屾垚鍚庡垵濮嬪寲
+    document.addEventListener('DOMContentLoaded', function () {
+       // 浠嶶RL鑾峰彇roomId鍙傛暟
+  const urlParams = new URLSearchParams(window.location.search);
+  const roomId = urlParams.get('roomId') || '1'; // 榛樿鍊�1
+  
+  // 璁剧疆鍒版悳绱㈡锛堝彲閫夛級
+  document.getElementById('searchRoomInput').value = roomId;
       // 鍒濆鍖栦簨浠剁洃鍚�
-      $('#searchRoomBtn').click(searchRoom);
-      $('#callBtn').click(initiateSpeak);
-      $('#testSpeakBtn').click(function () { speak('娆㈣繋浣跨敤璇婇棿鍙彿绯荤粺'); });
-      $('#changeRoomBtn').click(changeRoom);
+      document.getElementById('searchRoomBtn').addEventListener('click', searchRoom);
+      document.getElementById('callBtn').addEventListener('click', initiateSpeak);
+      document.getElementById('testSpeakBtn').addEventListener('click', function () {
+        speak('娆㈣繋浣跨敤璇婇棿鍙彿绯荤粺');
+      });
+      document.getElementById('changeRoomBtn').addEventListener('click', changeRoom);
 
       // 鍒濆鍖栨暟鎹�
-      getRoomByIp();
+      getRoomByIp(roomId);
       startScrolling();
 
       // 鍒濆鍖栬闊冲悎鎴�
@@ -480,7 +492,7 @@
 
     // 鎼滅储鎴块棿
     function searchRoom() {
-      var searchInput = $('#searchRoomInput').val().trim();
+      var searchInput = document.getElementById('searchRoomInput').value.trim();
       if (!searchInput) {
         updateAnnouncement('璇疯緭鍏ユ湁鏁堢殑鎴块棿鍙�');
         return;
@@ -488,56 +500,75 @@
 
       updateAnnouncement('姝e湪鏌ヨ ' + searchInput + ' 鎴块棿淇℃伅...');
 
-      // 鐪熷疄API璋冪敤
-      $.ajax({
-        url: appState.apiBaseUrl + '/clinic/room/get-room-by-ip',
-        data: { roomId: searchInput },
-        type: 'GET',
-        dataType: 'json',
-        success: function (response) {
-          appState.roomProfile = response.data || response;
-          updateRoomInfo();
-          updateAnnouncement('宸插姞杞� ' + appState.roomProfile.roomName + ' 淇℃伅');
-          getList(); // 鑾峰彇璇ユ埧闂寸殑鎮h�呭垪琛�
-        },
-        error: function (xhr, status, error) {
-          updateAnnouncement('鏌ヨ鎴块棿澶辫触: ' + (xhr.responseJSON?.message || error));
-          console.error('鏌ヨ鎴块棿澶辫触:', error);
+      var xhr = new XMLHttpRequest();
+      xhr.open('GET', appState.apiBaseUrl + '/clinic/room/get-room-by-ip?roomId=' + encodeURIComponent(searchInput), true);
+      xhr.onreadystatechange = function () {
+        if (xhr.readyState === 4) {
+          if (xhr.status === 200) {
+            try {
+              var response = JSON.parse(xhr.responseText);
+              appState.roomProfile = response.data || response;
+              updateRoomInfo();
+              updateAnnouncement('宸插姞杞� ' + appState.roomProfile.roomName + ' 淇℃伅');
+              getList(); // 鑾峰彇璇ユ埧闂寸殑鎮h�呭垪琛�
+            } catch (e) {
+              updateAnnouncement('瑙f瀽鍝嶅簲鏁版嵁澶辫触');
+              console.error('瑙f瀽鍝嶅簲澶辫触:', e);
+            }
+          } else {
+            updateAnnouncement('鏌ヨ鎴块棿澶辫触: ' + xhr.status);
+            console.error('鏌ヨ鎴块棿澶辫触:', xhr.status);
+          }
         }
-      });
+      };
+      xhr.send();
     }
 
-    // 鑾峰彇鎴块棿淇℃伅
-    // 鑾峰彇鎴块棿淇℃伅 - 浣跨敤鐪熷疄API
-    function getRoomByIp() {
-      var searchInput = $('#searchRoomInput').val().trim();
+    function getRoomByIp(roomId) {
+  // 濡傛灉鏈紶閫抮oomId锛屽皾璇曚粠杈撳叆妗嗚幏鍙�
+  if (!roomId) {
+    roomId = document.getElementById('searchRoomInput').value.trim() || '1';
+  }
 
-      $.ajax({
-        url: appState.apiBaseUrl + '/ecg/screen/room-screen-data',
-        data: { roomId: searchInput },
-        type: 'GET',
-        dataType: 'json',
-        success: function (response) {
+  var xhr = new XMLHttpRequest();
+  xhr.open('GET', appState.apiBaseUrl + '/ecg/screen/room-screen-data?roomId=' + encodeURIComponent(roomId), true);
+  xhr.onreadystatechange = function() {
+    if (xhr.readyState === 4) {
+      if (xhr.status === 200) {
+        try {
+          var response = JSON.parse(xhr.responseText);
           appState.roomProfile = response.data || response;
           updateRoomInfo();
 
-          // 妫�鏌ユ槸鍚︽湁闇�瑕佸彨鍙风殑鎮h��
+          // 鏇存柊褰撳墠roomId鐘舵��
+          appState.roomId = roomId;
+
+          // 妫�鏌ユ槸鍚﹂渶瑕佸彨鍙�
           if (response.data && response.data.called === 0) {
             appState.curSpeakPat = response.data;
             speak('璇�' + response.data.patName + '鍒�' + appState.roomProfile.roomName + '瑁呮満');
           }
-        },
-        error: function (xhr, status, error) {
-          console.error('鑾峰彇鎴块棿淇℃伅澶辫触:', error);
-          // 浣跨敤妯℃嫙鏁版嵁浣滀负鍚庡
-          appState.roomProfile = {
-            roomName: '蹇冪數鍥捐瘖瀹� ' + (appState.roomId + 1),
-            callingScreenType: [40, 10, 30][appState.roomId % 3]
-          };
-          updateRoomInfo();
+        } catch (e) {
+          console.error('瑙f瀽鍝嶅簲澶辫触:', e);
+          fallbackRoomData(roomId);
         }
-      });
+      } else {
+        console.error('鑾峰彇鎴块棿淇℃伅澶辫触:', xhr.status);
+        fallbackRoomData(roomId);
+      }
     }
+  };
+  xhr.send();
+}
+
+// 鍚庡鏁版嵁鍑芥暟
+function fallbackRoomData(roomId) {
+  appState.roomProfile = {
+    roomName: '蹇冪數鍥捐瘖瀹� ' + roomId,
+    callingScreenType: [40, 10, 30][roomId % 3]
+  };
+  updateRoomInfo();
+}
 
     // 鏇存柊鎴块棿淇℃伅鏄剧ず
     function updateRoomInfo() {
@@ -561,36 +592,30 @@
       $('#screenType').text('妯″紡锛�' + screenTypeText);
     }
 
+    // 鑾峰彇鎮h�呭垪琛�
     function getList() {
-      var searchInput = $('#searchRoomInput').val().trim();
+      var searchInput = document.getElementById('searchRoomInput').value.trim();
 
-      $.ajax({
-        url: appState.apiBaseUrl + '/ecg/screen/room-screen-data',
-        data: { roomId: searchInput },
-        type: 'GET',
-        dataType: 'json',
-        success: function (response) {
-          // 鍋囪杩斿洖鏁版嵁缁撴瀯涓� { data: [妫�鏌ラ槦鍒楁暟鎹�, 瑁呮満闃熷垪鏁版嵁] }
-          if (response.data) {
-            console.log(response.data);
-            console.log(response.data[1]);
-            
-            appState.checkRelatedPatientList = response.data[1] || [];
-            console.log();
-            
+      var xhr = new XMLHttpRequest();
+      xhr.open('GET', appState.apiBaseUrl + '/ecg/screen/room-screen-data?roomId=' + encodeURIComponent(searchInput), true);
+      xhr.onreadystatechange = function () {
+        if (xhr.readyState === 4) {
+          if (xhr.status === 200) {
+            try {
+              var response = JSON.parse(xhr.responseText);
+              if (response.data) {
+                appState.checkRelatedPatientList = response.data[1] || [];
+              }
+              updatePatientList();
+            } catch (e) {
+              console.error('瑙f瀽鎮h�呭垪琛ㄥけ璐�:', e);
+            }
           } else {
-            // 妯℃嫙鏁版嵁浣滀负鍚庡
-            // appState.checkRelatedPatientList = generateMockPatients();
+            console.error('鑾峰彇鎮h�呭垪琛ㄥけ璐�:', xhr.status);
           }
-          updatePatientList();
-        },
-        error: function (xhr, status, error) {
-          console.error('鑾峰彇鎮h�呭垪琛ㄥけ璐�:', error);
-          // 浣跨敤妯℃嫙鏁版嵁浣滀负鍚庡
-          // appState.checkRelatedPatientList = generateMockPatients();
-          // updatePatientList();
         }
-      });
+      };
+      xhr.send();
     }
 
     // 寮�濮嬪畾鏃跺埛鏂�
@@ -693,7 +718,6 @@
     }
 
     // 鍙彿鍔熻兘
-    // 鍙彿鍔熻兘锛堜娇鐢ㄧ湡瀹濧PI锛�
     function initiateSpeak() {
       // 鎵惧嚭绛夊緟涓殑鎮h��
       var waitingPatients = [];
@@ -702,31 +726,33 @@
           waitingPatients.push(appState.checkRelatedPatientList[i]);
         }
       }
-      
+
       if (waitingPatients.length === 0) {
         updateAnnouncement('褰撳墠娌℃湁绛夊緟瑁呮満鐨勬偅鑰�');
         return;
       }
 
       var patient = waitingPatients[0];
-      
+
       // 璋冪敤API鏍囪涓哄凡鍙彿
-      $.ajax({
-        url: appState.apiBaseUrl + '/ecg/screen/mark-patient-called',
-        method: 'POST',
-        data: { patientId: patient.id },
-        success: function() {
-          appState.curSpeakPat = {
-            patName: patient.patName,
-            roomName: appState.roomProfile.roomName
-          };
-          speak('璇�' + patient.patName + '鍒�' + appState.roomProfile.roomName + '瑁呮満');
-        },
-        error: function(xhr, status, error) {
-          updateAnnouncement('鍙彿澶辫触: ' + (xhr.responseJSON?.message || error));
-          console.error('鍙彿澶辫触:', error);
+      var xhr = new XMLHttpRequest();
+      xhr.open('POST', appState.apiBaseUrl + '/ecg/screen/mark-patient-called', true);
+      xhr.setRequestHeader('Content-Type', 'application/json');
+      xhr.onreadystatechange = function () {
+        if (xhr.readyState === 4) {
+          if (xhr.status === 200) {
+            appState.curSpeakPat = {
+              patName: patient.patName,
+              roomName: appState.roomProfile.roomName
+            };
+            speak('璇�' + patient.patName + '鍒�' + appState.roomProfile.roomName + '瑁呮満');
+          } else {
+            updateAnnouncement('鍙彿澶辫触: ' + xhr.status);
+            console.error('鍙彿澶辫触:', xhr.status);
+          }
         }
-      });
+      };
+      xhr.send(JSON.stringify({ patientId: patient.id }));
     }
 
     // 璇煶鎾姤
@@ -758,11 +784,17 @@
     }
 
     // 鍒囨崲鎴块棿
-    function changeRoom() {
-      appState.roomId = (appState.roomId + 1) % 3;
-      getRoomByIp();
-      updateAnnouncement('姝e湪鍒囨崲璇婇棿...');
-    }
+  function changeRoom() {
+  // 杞崲roomId锛堢ず渚嬶細1鈫�2鈫�3鈫�1锛�
+  const newRoomId = (parseInt(appState.roomId) % 3) + 1;
+  
+  // 鏇存柊URL浣嗕笉鍒锋柊椤甸潰
+  window.history.pushState({}, '', `?roomId=${newRoomId}`);
+  
+  // 閲嶆柊鍔犺浇鏁版嵁
+  getRoomByIp(newRoomId.toString());
+  updateAnnouncement('姝e湪鍒囨崲鍒拌瘖闂� ' + newRoomId);
+}
   </script>
 </body>
 

--
Gitblit v1.9.3