From ade34b5d028f42c71cdea15eb95ae9ffcd49b19c Mon Sep 17 00:00:00 2001
From: zhangchen <1652267879@qq.com>
Date: 星期五, 25 七月 2025 15:47:28 +0800
Subject: [PATCH] Merge branch 'ID1825-床旁副屏改版' into test

---
 src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue |   74 +++++++++++++++++++++++++++++--------
 1 files changed, 58 insertions(+), 16 deletions(-)

diff --git a/src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue b/src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue
index 90a7e6c..341fdc5 100644
--- a/src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue
+++ b/src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue
@@ -318,9 +318,11 @@
       </div>
     </div>
   </div>
+  <!-- 定时任务 -->
+  <ScheduledTaskDialog ref="scheduledTaskDialogRef" />
 </template>
 <script lang="ts" setup name="UnderTreatment">
-import { computed, ref, onMounted, onBeforeUnmount } from "vue";
+import { computed, ref, onMounted, onBeforeUnmount, watch, defineAsyncComponent } from "vue";
 import * as echarts from "echarts";
 import dayjs from "dayjs";
 
@@ -331,6 +333,9 @@
 import DoctorAdvice from "../components/DoctorAdvice/index.vue";
 // @ts-ignore
 import BlockBotttom from "../components/BlockBotttom.vue";
+const ScheduledTaskDialog = defineAsyncComponent(
+  () => import("../components/ScheduledTask.vue")
+);
 import { useBedsideAuxiliaryScreenStore } from "@/store/bedsideAuxiliaryScreen";
 import {
   formatSubstituteMode,
@@ -365,6 +370,9 @@
 
 const bedsideAuxiliaryScreenStore = useBedsideAuxiliaryScreenStore();
 
+const scheduledTaskDialogRef = ref<any>(null);
+
+
 // ktv趋势图的
 const ktvListEchartRef = ref<HTMLElement | null>(null);
 // 血压脉搏趋势图的
@@ -394,7 +402,29 @@
   );
 });
 
-// const;
+watch(
+  () => pageData.value.ktvList,
+  (newVal) => {
+    generateKtvListEchart(newVal);
+  },
+  { deep: true }
+);
+
+watch(
+  () => pageData.value.monitoringRecord,
+  (newVal) => {
+    generatBloodPressureAndPulseEchart(newVal);
+  },
+  { deep: true }
+);
+
+watch(
+  () => props.height,
+  () => {
+    generateKtvListEchart(pageData.value.ktvList);
+    generatBloodPressureAndPulseEchart(pageData.value.monitoringRecord);
+  }
+);
 
 /** 生成ktv趋势图 */
 const generateKtvListEchart = (ktvList: KtvItem[]) => {
@@ -440,7 +470,7 @@
           color: "#70CAAE",
         },
         itemStyle: {
-          color: "#70CAAE",
+          color: (params: any) => getColor(params.value),
         },
       },
     ],
@@ -450,6 +480,12 @@
   };
 
   chart.setOption(option, true); // 第二个参数为 true 表示全量更新
+};
+
+const getColor = (val: number) => {
+  if (val < 1.2) return "#FE0201"; // 红色
+  if (val <= 1.6) return "#70CAAE"; // 绿色
+  return "#FE6500"; // 橙色
 };
 
 /** 生成血压脉搏趋势图 */
@@ -477,9 +513,9 @@
 
   const option = {
     grid: [
-      { top: "20%", height: "27%", left: 30, right: 20 }, // 伸缩压
-      { top: "45%", height: "27%", left: 30, right: 20 }, // 舒张压
-      { top: "67%", height: "27%", left: 30, right: 20 }, // 脉搏
+      { top: "5%", height: "28%", left: 40, right: 20, containLabel: true },
+      { top: "35%", height: "28%", left: 40, right: 20, containLabel: true },
+      { top: "65%", height: "28%", left: 40, right: 20, containLabel: true },
     ],
     tooltip: {
       trigger: "axis",
@@ -494,6 +530,7 @@
         axisLabel: { show: false },
         splitLine: { show: false },
         gridIndex: 0,
+        show: false,
       },
       {
         type: "category",
@@ -504,6 +541,7 @@
         axisLabel: { show: false },
         splitLine: { show: false },
         gridIndex: 1,
+        show: false,
       },
       {
         type: "category",
@@ -514,6 +552,7 @@
         axisLabel: { show: true }, // 最下面一层显示时间轴
         splitLine: { show: false },
         gridIndex: 2,
+        show: false,
       },
     ],
     yAxis: [
@@ -524,9 +563,9 @@
         axisTick: { show: false },
         axisLabel: { show: false },
         splitLine: { show: false },
-        min: 80,
-        max: 180,
-        interval: 20,
+        min: 0,
+        max: 300,
+        interval: 2,
         gridIndex: 0,
       },
       {
@@ -536,9 +575,9 @@
         axisTick: { show: false },
         axisLabel: { show: false },
         splitLine: { show: false },
-        min: 40,
-        max: 120,
-        interval: 20,
+        min: 0,
+        max: 300,
+        interval: 2,
         gridIndex: 1,
       },
       {
@@ -548,9 +587,9 @@
         axisTick: { show: false },
         axisLabel: { show: false },
         splitLine: { show: false },
-        min: 40,
-        max: 140,
-        interval: 20,
+        min: 0,
+        max: 300,
+        interval: 2,
         gridIndex: 2,
       },
     ],
@@ -613,7 +652,10 @@
 };
 
 /** 定时任务 */
-const onScheduledTasksClick = () => {};
+const onScheduledTasksClick = () => {
+  if (!bedsideAuxiliaryScreenStore.deviceCode || !bedsideAuxiliaryScreenStore.deviceData.deviceCode) return ElMessage.warning('未初始化或正在进行初始化操作中');
+  scheduledTaskDialogRef.value?.openDialog();
+};
 
 /** 叫号 */
 const onCallBumberClick = () => {

--
Gitblit v1.8.0