From e33fd6e926ed689d120974a49658ef195bfe4636 Mon Sep 17 00:00:00 2001
From: zhangchen <1652267879@qq.com>
Date: 星期五, 25 七月 2025 17:41:48 +0800
Subject: [PATCH] Merge branch 'ID1825-床旁副屏改版' into test
---
src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue | 601 ++++++++++++++++++++++++++++--------------------------
1 files changed, 311 insertions(+), 290 deletions(-)
diff --git a/src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue b/src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue
index 341fdc5..f9c8129 100644
--- a/src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue
+++ b/src/views/mobile/bedsideAuxiliaryScreen/pages/UnderTreatment.vue
@@ -1,328 +1,346 @@
<template>
- <div class="under-treatment-container" :style="{ '--height': height + 'px' }">
- <div class="left-box">
- <div class="left-row1">
- <div class="left-row1-col1">
- <el-image
- :src="pageData.patientPhone"
- style="width: 100%; height: 100%"
- >
- <template #placeholder>
- <div class="image-slot">加载中<span class="dot">...</span></div>
- </template>
- </el-image>
- </div>
- <div class="left-row1-col2">
- <Card
- title="治疗模式"
- :icon="zlmsImg"
- background-color="#ffffff"
- class="mini-card left-row1-col2-row1"
- header-class-name="mini-header"
- >
- <div class="item-box dialysis-mode-content">
- <div class="dialysis-mode-content-box">
- <span class="mini-text">{{
- formatSubstituteMode(pageData.substituteMode)
- }}</span>
- <span class="text">{{ pageData.dialysisPlan }}</span>
+ <div>
+ <div
+ class="under-treatment-container"
+ :style="{ '--height': height + 'px' }"
+ >
+ <div class="left-box">
+ <div class="left-row1">
+ <div class="left-row1-col1">
+ <el-image
+ :src="pageData.patientPhone"
+ style="width: 100%; height: 100%"
+ >
+ <template #placeholder>
+ <div class="image-slot">加载中<span class="dot">...</span></div>
+ </template>
+ </el-image>
+ </div>
+ <div class="left-row1-col2">
+ <Card
+ title="治疗模式"
+ :icon="zlmsImg"
+ background-color="#ffffff"
+ class="mini-card left-row1-col2-row1"
+ header-class-name="mini-header"
+ >
+ <div class="item-box dialysis-mode-content">
+ <div class="dialysis-mode-content-box">
+ <span class="mini-text">{{
+ formatSubstituteMode(pageData.substituteMode)
+ }}</span>
+ <span class="text">{{ pageData.dialysisPlan }}</span>
+ </div>
</div>
+ </Card>
+ <Card
+ title="处方备注"
+ :icon="zlmsImg"
+ background-color="#ffffff"
+ class="mini-card left-row1-col2-item-row2"
+ header-class-name="mini-header"
+ >
+ <div class="prescription-remarks">
+ {{ pageData.prescriptionRemarks }}
+ </div>
+ </Card>
+ </div>
+ <div class="left-row1-col3">
+ <Card
+ title="透析器"
+ :icon="txqImg"
+ background-color="#ffffff"
+ class="mini-card left-row1-col3-row1"
+ header-class-name="mini-header"
+ >
+ <div class="item-box prescription-ehydration-olume">
+ <span class="text">{{ pageData.dialyzer }}</span>
+ </div>
+ </Card>
+ <Card
+ title="异常指标"
+ :icon="xinlvImg"
+ background-color="#ffffff"
+ class="mini-card left-row1-col3-row2"
+ header-class-name="mini-header"
+ >
+ <div class="dialysis-mode-content">
+ <span
+ v-for="(item, index) in pageData.abnormalItems"
+ :key="index"
+ class="abnormal-indicator"
+ :style="{ color: formatTestColr(item.结果标记) }"
+ >
+ {{ getItemName(item.项目名称) }}
+ {{ formatTestFlag(item.结果标记) }}
+ </span>
+ </div>
+ </Card>
+ </div>
+ </div>
+ <div class="left-row2">
+ <Card
+ title="血温监测"
+ :icon="xinLv2Img"
+ background-color="#ffffff"
+ class="mini-card left-row2-col1"
+ header-class-name="mini-header"
+ >
+ <div class="item-box current-lood0emperature">
+ <span class="text">{{ pageData.currentBloodTemperature }}</span>
</div>
</Card>
<Card
- title="处方备注"
- :icon="zlmsImg"
+ title="血压监测"
+ :icon="xinLv2Img"
background-color="#ffffff"
- class="mini-card left-row1-col2-item-row2"
+ class="mini-card left-row2-col2"
header-class-name="mini-header"
>
- <div class="prescription-remarks">
- {{ pageData.prescriptionRemarks }}
+ <div class="item-box venous-pressure">
+ <span class="text"
+ >{{ pageData.venousPressure }}/{{
+ pageData.transmembranePressure
+ }}</span
+ >
+ </div>
+ </Card>
+ <Card
+ title="血压脉搏趋势图"
+ :icon="xinLv2Img"
+ background-color="#ffffff"
+ class="mini-card ktv-card left-row2-col3"
+ header-class-name="mini-header"
+ >
+ <div style="height: 100%">
+ <div
+ ref="bloodPressureAndPulseEchartRef"
+ style="width: 100%; height: 100%"
+ ></div>
</div>
</Card>
</div>
- <div class="left-row1-col3">
+ <div class="left-row3">
<Card
- title="透析器"
+ title="血容量监测"
+ :icon="xinLv2Img"
+ background-color="#ffffff"
+ class="mini-card left-row3-col1"
+ header-class-name="mini-header"
+ >
+ <div class="item-box current-lood0emperature">
+ <span class="text">{{ pageData.bloodVolumeMonitoring }}</span>
+ </div>
+ </Card>
+ <Card
+ title="KTV监测"
+ :icon="xinLv2Img"
+ background-color="#ffffff"
+ class="mini-card left-row3-col2"
+ header-class-name="mini-header"
+ >
+ <div class="item-box venous-pressure">
+ <span class="text">{{ pageData.ktv }}</span>
+ </div>
+ </Card>
+ <Card
+ title="KTV趋势图"
+ :icon="xinLv2Img"
+ background-color="#ffffff"
+ class="mini-card ktv-card left-row3-col3"
+ header-class-name="mini-header"
+ >
+ <div style="height: 100%">
+ <div
+ ref="ktvListEchartRef"
+ style="width: 100%; height: 100%"
+ ></div>
+ </div>
+ </Card>
+ </div>
+ <div class="left-row4">
+ <Card
+ title="血流量"
:icon="txqImg"
background-color="#ffffff"
- class="mini-card left-row1-col3-row1"
+ class="mini-card left-row4-col"
header-class-name="mini-header"
>
- <div class="item-box prescription-ehydration-olume">
- <span class="text">{{ pageData.dialyzer }}</span>
+ <div class="item-box current-lood0emperature">
+ <span class="text">{{ pageData.bloodFlow }}</span>
</div>
</Card>
<Card
- title="异常指标"
- :icon="xinlvImg"
+ title="透析液流量"
+ :icon="txqImg"
background-color="#ffffff"
- class="mini-card left-row1-col3-row2"
+ class="mini-card left-row4-col"
header-class-name="mini-header"
>
- <div class="dialysis-mode-content">
- <span
- v-for="(item, index) in pageData.abnormalItems"
- :key="index"
- class="abnormal-indicator"
- :style="{ color: formatTestColr(item.结果标记) }"
- >
- {{ getItemName(item.项目名称) }}
- {{ formatTestFlag(item.结果标记) }}
- </span>
+ <div class="item-box current-lood0emperature">
+ <span class="text">{{ pageData.dialysisFluidFlowRate }}</span>
</div>
</Card>
</div>
</div>
- <div class="left-row2">
- <Card
- title="血温监测"
- :icon="xinLv2Img"
- background-color="#ffffff"
- class="mini-card left-row2-col1"
- header-class-name="mini-header"
- >
- <div class="item-box current-lood0emperature">
- <span class="text">{{ pageData.currentBloodTemperature }}</span>
- </div>
- </Card>
- <Card
- title="血压监测"
- :icon="xinLv2Img"
- background-color="#ffffff"
- class="mini-card left-row2-col2"
- header-class-name="mini-header"
- >
- <div class="item-box venous-pressure">
- <span class="text"
- >{{ pageData.venousPressure }}/{{
- pageData.transmembranePressure
- }}</span
- >
- </div>
- </Card>
- <Card
- title="血压脉搏趋势图"
- :icon="xinLv2Img"
- background-color="#ffffff"
- class="mini-card ktv-card left-row2-col3"
- header-class-name="mini-header"
- >
- <div style="height: 100%">
- <div
- ref="bloodPressureAndPulseEchartRef"
- style="width: 100%; height: 100%"
- ></div>
- </div>
- </Card>
- </div>
- <div class="left-row3">
- <Card
- title="血容量监测"
- :icon="xinLv2Img"
- background-color="#ffffff"
- class="mini-card left-row3-col1"
- header-class-name="mini-header"
- >
- <div class="item-box current-lood0emperature">
- <span class="text">{{ pageData.bloodVolumeMonitoring }}</span>
- </div>
- </Card>
- <Card
- title="KTV监测"
- :icon="xinLv2Img"
- background-color="#ffffff"
- class="mini-card left-row3-col2"
- header-class-name="mini-header"
- >
- <div class="item-box venous-pressure">
- <span class="text">{{ pageData.ktv }}</span>
- </div>
- </Card>
- <Card
- title="KTV趋势图"
- :icon="xinLv2Img"
- background-color="#ffffff"
- class="mini-card ktv-card left-row3-col3"
- header-class-name="mini-header"
- >
- <div style="height: 100%">
- <div ref="ktvListEchartRef" style="width: 100%; height: 100%"></div>
- </div>
- </Card>
- </div>
- <div class="left-row4">
- <Card
- title="血流量"
- :icon="txqImg"
- background-color="#ffffff"
- class="mini-card left-row4-col"
- header-class-name="mini-header"
- >
- <div class="item-box current-lood0emperature">
- <span class="text">{{ pageData.bloodFlow }}</span>
- </div>
- </Card>
- <Card
- title="透析液流量"
- :icon="txqImg"
- background-color="#ffffff"
- class="mini-card left-row4-col"
- header-class-name="mini-header"
- >
- <div class="item-box current-lood0emperature">
- <span class="text">{{ pageData.dialysisFluidFlowRate }}</span>
- </div>
- </Card>
- </div>
- </div>
- <div class="right-box">
- <div class="right-box-row1">
- <Card
- title="治疗状态"
- :icon="txztImg"
- background-color="#ffffff"
- class="mini-card right-box-row1-col1"
- header-class-name="mini-header"
- >
- <div class="item-box treatment-status">
- <span class="text">{{ treatmentStatusText }}</span>
- </div>
- </Card>
- <Card
- title="脱水量详情"
- :icon="cljdImg"
- background-color="#ffffff"
- class="mini-card right-box-row1-col2"
- header-class-name="mini-header"
- >
- <div class="dehydrated-level">
- <div class="dehydrated-level-item">
- <span class="item-left"
- >平均脱水量:{{ pageData.averageDehydrationRate }} L</span
- >
- <span class="item-right">(最近3周9次)</span>
+ <div class="right-box">
+ <div class="right-box-row1">
+ <Card
+ title="治疗状态"
+ :icon="txztImg"
+ background-color="#ffffff"
+ class="mini-card right-box-row1-col1"
+ header-class-name="mini-header"
+ >
+ <div class="item-box treatment-status">
+ <span class="text">{{ treatmentStatusText }}</span>
</div>
- <div class="dehydrated-level-item">
- <div class="item-left">
- <span
- >最大脱水量:{{ pageData.maximumDehydrationCapacity }} L</span
+ </Card>
+ <Card
+ title="脱水量详情"
+ :icon="cljdImg"
+ background-color="#ffffff"
+ class="mini-card right-box-row1-col2"
+ header-class-name="mini-header"
+ >
+ <div class="dehydrated-level">
+ <div class="dehydrated-level-item">
+ <span class="item-left"
+ >平均脱水量:{{ pageData.averageDehydrationRate }} L</span
>
- <template v-if="pageData.maximumDehydrationDuration"
- >/
- <span class="level-dete">{{
- pageData.maximumDehydrationDuration
- }}</span>
- </template>
+ <span class="item-right">(最近3周9次)</span>
</div>
- <span class="item-right"
- >({{ pageData.maximumDehydrationCapacityDate }})</span
- >
+ <div class="dehydrated-level-item">
+ <div class="item-left">
+ <span
+ >最大脱水量:{{
+ pageData.maximumDehydrationCapacity
+ }}
+ L</span
+ >
+ <template v-if="pageData.maximumDehydrationDuration"
+ >/
+ <span class="level-dete">{{
+ pageData.maximumDehydrationDuration
+ }}</span>
+ </template>
+ </div>
+ <span class="item-right"
+ >({{ pageData.maximumDehydrationCapacityDate }})</span
+ >
+ </div>
</div>
- </div>
- </Card>
- </div>
- <div class="right-box-row2">
- <Card
- title="时间进度"
- :icon="sjjdImg"
- background-color="#ffffff"
- class="mini-card right-box-row2-item"
- header-class-name="mini-header"
- >
- <div class="progress-box">
- <div class="item-num">
- {{ jgTime4(pageData.dialysisDuration) }}/{{
- pageData.prescriptionDialysisDuration
- }}:{{ pageData.prescriptionDialysisDurationMin }}
+ </Card>
+ </div>
+ <div class="right-box-row2">
+ <Card
+ title="时间进度"
+ :icon="sjjdImg"
+ background-color="#ffffff"
+ class="mini-card right-box-row2-item"
+ header-class-name="mini-header"
+ >
+ <div class="progress-box">
+ <div class="item-num">
+ {{ jgTime4(pageData.dialysisDuration) }}/{{
+ pageData.prescriptionDialysisDuration
+ }}:{{ pageData.prescriptionDialysisDurationMin }}
+ </div>
+ <ProgressBar
+ :percent="
+ (Number(pageData.dialysisDuration) /
+ (Number(pageData.prescriptionDialysisDuration) * 60)) *
+ 100
+ "
+ color="#70A3DD"
+ backgroundColor="#D6DEF1"
+ borderRadius="50%"
+ />
</div>
- <ProgressBar
- :percent="
- (Number(pageData.dialysisDuration) /
- (Number(pageData.prescriptionDialysisDuration) * 60)) *
- 100
- "
- color="#70A3DD"
- backgroundColor="#D6DEF1"
- borderRadius="50%"
- />
- </div>
- </Card>
- <Card
- title="超滤进度"
- :icon="cljdImg"
- background-color="#ffffff"
- class="mini-card right-box-row2-item"
- header-class-name="mini-header"
- >
- <div class="progress-box">
- <div class="item-num">
- {{ pageData.currentDehydrationVolume }}/{{
- pageData.currentDehydrationVolume
- }}({{ pageData.currentUltrafiltrationRate }})
+ </Card>
+ <Card
+ title="超滤进度"
+ :icon="cljdImg"
+ background-color="#ffffff"
+ class="mini-card right-box-row2-item"
+ header-class-name="mini-header"
+ >
+ <div class="progress-box">
+ <div class="item-num">
+ {{ pageData.currentDehydrationVolume }}/{{
+ pageData.currentDehydrationVolume
+ }}({{ pageData.currentUltrafiltrationRate }})
+ </div>
+ <ProgressBar
+ :percent="
+ (pageData.currentDehydrationVolume /
+ pageData.prescriptionDehydrationVolume) *
+ 100
+ "
+ color="#70CAAE"
+ backgroundColor="#D6DEF1"
+ borderRadius="50%"
+ />
</div>
- <ProgressBar
- :percent="
- (pageData.currentDehydrationVolume /
- pageData.prescriptionDehydrationVolume) *
- 100
- "
- color="#70CAAE"
- backgroundColor="#D6DEF1"
- borderRadius="50%"
- />
- </div>
- </Card>
- </div>
- <div class="right-box-row3">
- <Card
- title="临时医嘱"
- :icon="yizhuImg"
- background-color="#ffffff"
- class="mini-card right-box-row2-item"
- header-class-name="mini-header"
- >
- <DoctorAdvice :list="pageData.doctorAdvice" />
- </Card>
- </div>
- <div class="right-box-row4">
- <BlockBotttom
- :icon="dingShiImg"
- text="定时任务"
- backgroundColor="#20C6B6"
- @click="() => onScheduledTasksClick()"
- class="btn"
- />
- <BlockBotttom
- :icon="jiaoHaoImg"
- text="叫号"
- backgroundColor="#20C6B6"
- @click="() => onCallBumberClick()"
- class="btn"
- />
- <BlockBotttom
- :icon="addImg"
- text="添加记录"
- backgroundColor="#409EFF"
- @click="() => onAddRecordClick()"
- class="btn"
- />
- <BlockBotttom
- v-if="!whetherDialysisHasBeenEnded"
- :icon="kaiShiImg"
- text="结束透析"
- backgroundColor="#E6A23C"
- @click="() => onEndClick()"
- class="btn"
- />
+ </Card>
+ </div>
+ <div class="right-box-row3">
+ <Card
+ title="临时医嘱"
+ :icon="yizhuImg"
+ background-color="#ffffff"
+ class="mini-card right-box-row2-item"
+ header-class-name="mini-header"
+ >
+ <DoctorAdvice :list="pageData.doctorAdvice" />
+ </Card>
+ </div>
+ <div class="right-box-row4">
+ <BlockBotttom
+ :icon="dingShiImg"
+ text="定时任务"
+ backgroundColor="#20C6B6"
+ @click="() => onScheduledTasksClick()"
+ class="btn"
+ />
+ <BlockBotttom
+ :icon="jiaoHaoImg"
+ text="叫号"
+ backgroundColor="#20C6B6"
+ @click="() => onCallBumberClick()"
+ class="btn"
+ />
+ <BlockBotttom
+ :icon="addImg"
+ text="添加记录"
+ backgroundColor="#409EFF"
+ @click="() => onAddRecordClick()"
+ class="btn"
+ />
+ <BlockBotttom
+ v-if="!whetherDialysisHasBeenEnded"
+ :icon="kaiShiImg"
+ text="结束透析"
+ backgroundColor="#E6A23C"
+ @click="() => onEndClick()"
+ class="btn"
+ />
+ </div>
</div>
</div>
+ <!-- 定时任务 -->
+ <ScheduledTaskDialog ref="scheduledTaskDialogRef" />
</div>
- <!-- 定时任务 -->
- <ScheduledTaskDialog ref="scheduledTaskDialogRef" />
</template>
<script lang="ts" setup name="UnderTreatment">
-import { computed, ref, onMounted, onBeforeUnmount, watch, defineAsyncComponent } from "vue";
+import {
+ computed,
+ ref,
+ onMounted,
+ onBeforeUnmount,
+ watch,
+ defineAsyncComponent,
+} from "vue";
import * as echarts from "echarts";
import dayjs from "dayjs";
@@ -371,7 +389,6 @@
const bedsideAuxiliaryScreenStore = useBedsideAuxiliaryScreenStore();
const scheduledTaskDialogRef = ref<any>(null);
-
// ktv趋势图的
const ktvListEchartRef = ref<HTMLElement | null>(null);
@@ -653,7 +670,11 @@
/** 定时任务 */
const onScheduledTasksClick = () => {
- if (!bedsideAuxiliaryScreenStore.deviceCode || !bedsideAuxiliaryScreenStore.deviceData.deviceCode) return ElMessage.warning('未初始化或正在进行初始化操作中');
+ if (
+ !bedsideAuxiliaryScreenStore.deviceCode ||
+ !bedsideAuxiliaryScreenStore.deviceData.deviceCode
+ )
+ return ElMessage.warning("未初始化或正在进行初始化操作中");
scheduledTaskDialogRef.value?.openDialog();
};
--
Gitblit v1.8.0