| | |
| | | <span class="text-group_3">治疗模式</span> |
| | | </div> |
| | | <div class="container-body" style="height: calc(100% - 30px);width: 100%;"> |
| | | <div class="container-body-text" style="color: #3A75B8;font-size: 30;" > |
| | | <div class="container-body-text" style="color: #3A75B8;font-size: 30px;" > |
| | | <span style="font-size: 30px;" v-if="deviceData.透析方案 ==='HDF'"> {{deviceData?.置换方式==='前置换'?'前':'后'}}</span> {{ deviceData.透析方案 }} |
| | | </div> |
| | | |
| | |
| | | <span class="text-group_3">人工肾</span> |
| | | </div> |
| | | <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 28px;"> |
| | | <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.透析器列表" :key="index"> |
| | | <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.透析器列表" :style="{fontSize:deviceData.透析器列表.length>1?'22px':'28px'}" :key="index"> |
| | | <div class="left-div">{{item.name}}</div> |
| | | <div class="right-div">{{item.数量}}{{item.单位}}</div> |
| | | </div> |
| | |
| | | <span class="text-group_3">一次性循环管路</span> |
| | | </div> |
| | | <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 28px;"> |
| | | <div class="grid-container-text" style="color: #3AB859;" v-for="(item,index) in deviceData.管路列表" :key="index"> |
| | | <div class="grid-container-text" style="color: #3AB859;" v-for="(item,index) in deviceData.管路列表" :style="{fontSize:deviceData.管路列表.length>1?'22px':'28px'}" :key="index"> |
| | | <div class="left-div">{{item.name}}</div> |
| | | <!-- <div class="right-div">{{item.数量}}支</div> --> |
| | | <div class="right-div">{{item.数量}}支</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | <span class="text-group_3">透析液</span> |
| | | </div> |
| | | <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 28px;"> |
| | | <div class="grid-container-text" style="color: #3AB859;" v-for="(item,index) in deviceData.透析液列表" :key="index"> |
| | | <div class="grid-container-text" style="color: #3AB859;" :style="{fontSize:deviceData.透析液列表.length>1?'22px':'28px'}" v-for="(item,index) in deviceData.透析液列表" :key="index"> |
| | | <div class="left-div">{{item.name}}</div> |
| | | <div class="right-div">{{item.数量}}{{item.单位}}</div> |
| | | </div> |
| | |
| | | /> |
| | | <span class="text-group_3">抗凝剂</span> |
| | | </div> |
| | | <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 28px;"> |
| | | <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.抗凝剂列表" :key="index"> |
| | | <div class="grid-container" style="height: calc(100% - 30px);width: 100%;"> |
| | | <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.抗凝剂列表" :style="{fontSize:deviceData.抗凝剂列表.length>1?'22px':'28px'}" :key="index"> |
| | | <div class="left-div">{{item.name}}</div> |
| | | <div class="right-div">{{item.数量}}{{item.单位}}</div> |
| | | </div> |
| | |
| | | <span class="text-group_3">穿刺针</span> |
| | | </div> |
| | | <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 25px;"> |
| | | <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.穿刺针列表" :key="index"> |
| | | <div class="grid-container-text" style="color: #A78718;" v-for="(item,index) in deviceData.穿刺针列表" :style="{fontSize:deviceData.穿刺针列表.length>1?'22px':'28px'}" :key="index"> |
| | | <div class="left-div">{{item.name}}</div> |
| | | <div class="right-div">{{item.数量}}支</div> |
| | | </div> |
| | |
| | | <span class="text-group_3">一次性使用透析护理包</span> |
| | | </div> |
| | | <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 28px;"> |
| | | <div class="grid-container-text" style="color: #1D77BD;" v-for="(item,index) in deviceData.护理包列表" :key="index"> |
| | | <div class="grid-container-text" style="color: #1D77BD;" v-for="(item,index) in deviceData.护理包列表" :style="{fontSize:deviceData.护理包列表.length>1?'22px':'28px'}" :key="index"> |
| | | <div class="left-div">{{item.name}}</div> |
| | | <div class="right-div">{{item.数量}}{{item.单位}}</div> |
| | | </div> |
| | |
| | | <span class="text-group_3">血管通路</span> |
| | | </div> |
| | | <div class="grid-container" style="height: calc(100% - 30px);width: 100%;font-size: 28px;"> |
| | | <div class="grid-container-text" style="color: #1D77BD;" v-for="(item,index) in deviceData.血管通路列表" :key="index"> |
| | | <div class="grid-container-text" style="color: #1D77BD;" v-for="(item,index) in deviceData.血管通路列表" :style="{fontSize:deviceData.血管通路列表.length>1?'22px':'28px'}" :key="index"> |
| | | <div class="left-div">{{item.类型}}</div> |
| | | <div class="right-div" style="width: 200px;">{{item.位置}}</div> |
| | | </div> |
| | |
| | | <el-space fill> |
| | | <el-alert type="warning" show-icon :closable="false"> |
| | | <p>"请输入设备编号后才能使用不然无法定位到数据来源:</p> |
| | | <p>也可以选择二维码图片文件识别</p> |
| | | </el-alert> |
| | | <el-form-item label="设备编号"> |
| | | <el-input v-model="deviceCode" /> |
| | | </el-form-item> |
| | | </el-space> |
| | | </el-form> |
| | | <div> |
| | | <input type="file" pattern="选取二维码" accept="image/*" @change="onFileChange" /> |
| | | </div> |
| | | </span> |
| | | <template #footer> |
| | | <div class="dialog-footer"> |
| | |
| | | |
| | | </template> |
| | | <script lang="ts" setup> |
| | | import { BrowserMultiFormatReader, NotFoundException, ChecksumException, FormatException } from '@zxing/library'; |
| | | import TQS88 from "../img/TQS88.png"; |
| | | import shezhi from '../img/shezhi.png' |
| | | import xinlv from '../img/xinlv.png' |
| | |
| | | ], |
| | | }); |
| | | // 告警提示 |
| | | const textbaojing = ref(""); |
| | | const iscomfig = ref(false); |
| | | // 识别窗口 |
| | | const video = ref<HTMLVideoElement | null>(null); |
| | | // 识别数据流 |
| | | let stream: MediaStream | null = null; |
| | | const centerDialogVisible = ref(false); |
| | | const background = ref(""); |
| | | const txztText = ref(""); |
| | |
| | | }else{ |
| | | ElMessage.warning('请先输入设备编号') |
| | | } |
| | | } |
| | | const onFileChange=async(event: Event)=> { |
| | | const inputElement = event.target as HTMLInputElement; |
| | | if (!inputElement.files || inputElement.files.length === 0) return; |
| | | |
| | | const file = inputElement.files[0]; |
| | | const reader = new FileReader(); |
| | | |
| | | reader.onload = async (e) => { |
| | | if (e.target && typeof e.target.result === 'string') { |
| | | try { |
| | | const codeReader = new BrowserMultiFormatReader(); |
| | | const result = await codeReader.decodeFromImage(undefined, e.target.result); |
| | | deviceCode.value = result.text; |
| | | } catch (err) { |
| | | if (err instanceof NotFoundException) { |
| | | console.error("未找到二维码"); |
| | | } else if (err instanceof ChecksumException) { |
| | | console.error("校验错误"); |
| | | } else if (err instanceof FormatException) { |
| | | console.error("格式错误"); |
| | | } else { |
| | | console.error(err); |
| | | } |
| | | } |
| | | } |
| | | }; |
| | | |
| | | reader.readAsDataURL(file); |
| | | } |
| | | const shaoma=()=>{ |
| | | } |
| | | watch( |
| | | () => deviceData.value.设备变化, |
| | |
| | | } |
| | | |
| | | .right-div { |
| | | width: 120px; /* 固定宽度 */ |
| | | text-align: center; /* 可选:文本居中 */ |
| | | width: 50px; /* 固定宽度 */ |
| | | font-size: 16px; |
| | | display: flex; |
| | | justify-content: center; /* 水平居中 */ |
| | | align-items: center; /* 垂直居中 */ |
| | | |
| | | |
| | | } |