LIJU 3 mesi fa
parent
commit
9c7f62ab83
1 ha cambiato i file con 15 aggiunte e 10 eliminazioni
  1. 15 10
      src/components/medical-advice/temperature/graphics.vue

+ 15 - 10
src/components/medical-advice/temperature/graphics.vue

@@ -882,30 +882,35 @@ export default {
       
       const date = new Date(admissionDateTime);
       const hour = date.getHours();
+      const minute = date.getMinutes();
+      const second = date.getSeconds();
+      
+      // 将时间转换为分钟数,便于精确计算
+      const totalMinutes = hour * 60 + minute + second / 60;
       
       // 标准时间点:02:00, 06:00, 10:00, 14:00, 18:00, 22:00
-      const standardHours = [2, 6, 10, 14, 18, 22];
+      const standardMinutes = [2 * 60, 6 * 60, 10 * 60, 14 * 60, 18 * 60, 22 * 60];
       
       // 计算到每个标准时间点的距离,选择最近的
       let minDistance = Infinity;
       let closestIndex = -1;
       
-      for (let i = 0; i < standardHours.length; i++) {
-        const standardHour = standardHours[i];
+      for (let i = 0; i < standardMinutes.length; i++) {
+        const standardMinute = standardMinutes[i];
         let distance;
         
         // 计算距离,考虑跨天的情况
-        if (Math.abs(hour - standardHour) <= 12) {
+        if (Math.abs(totalMinutes - standardMinute) <= 12 * 60) {
           // 同一天内或相邻天的情况
-          distance = Math.abs(hour - standardHour);
+          distance = Math.abs(totalMinutes - standardMinute);
         } else {
           // 跨天的情况,需要计算最短距离
-          if (hour > standardHour) {
-            // 例如:23点到02点,距离是1小时
-            distance = Math.min(hour - standardHour, (24 - hour) + standardHour);
+          if (totalMinutes > standardMinute) {
+            // 例如:23点到02点
+            distance = Math.min(totalMinutes - standardMinute, (24 * 60 - totalMinutes) + standardMinute);
           } else {
-            // 例如:1点到22点,距离是3小时
-            distance = Math.min(standardHour - hour, (24 - standardHour) + hour);
+            // 例如:1点到22点
+            distance = Math.min(standardMinute - totalMinutes, (24 * 60 - standardMinute) + totalMinutes);
           }
         }