单应用项目,可以创建很多独立工具类页面 ,不用登录 初始化的页面
chenyc
2025-04-21 34116d24841128af8e7de1729bd1d9d8bc319a60
src/views/deviceWindoes2.vue
@@ -123,7 +123,7 @@
                                <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>
                                 
@@ -136,7 +136,7 @@
                              <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>
@@ -149,9 +149,9 @@
                              <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>
@@ -179,7 +179,7 @@
                            <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>
@@ -491,8 +491,8 @@
                    />
                    <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>
@@ -505,7 +505,7 @@
                    <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>
@@ -523,7 +523,7 @@
                    <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>
@@ -536,7 +536,7 @@
                    <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>
@@ -760,12 +760,16 @@
          <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">
@@ -782,6 +786,7 @@
    
  </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'
@@ -983,8 +988,10 @@
    ],
  });
  // 告警提示
  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("");
@@ -1175,6 +1182,37 @@
    }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.设备变化,
@@ -1912,8 +1950,11 @@
  }
  .right-div {
    width: 120px; /* 固定宽度 */
    text-align: center; /* 可选:文本居中 */
    width: 50px; /* 固定宽度 */
    font-size: 16px;
    display: flex;
    justify-content: center; /* 水平居中 */
    align-items: center; /* 垂直居中 */
    
    
  }