gx
chenyc
2023-12-05 ebff3bb9647a2741ed564ecd5333f7a3c27ff5e7
src/views/home/index.vue
@@ -177,7 +177,7 @@
              <el-row>
                <el-col   :span="24" style="text-align: right; line-height: 67px;padding-right: 0px; font-size: 40px;font-weight: 400;color: #EB6F1C;">
                  <div v-if="!dialogVisible">{{clockNum}}S</div>
                  <el-input v-else  v-model="inputCode" ref="inputRef" id="inputCode"  style="width: 200px; height: 40px;"  @change="inputChabge"
                  <el-input   v-else  v-model="inputCode" ref="inputRef" id="inputCode"  style="width: 200px; height: 40px;ime-mode:active"  @change="inputChabge"
                    placeholder="请输入患者卡号或扫描条码" />
                </el-col>
              </el-row>
@@ -216,22 +216,27 @@
import Speech from 'speak-tts'
import { reactive,computed, toRefs, onMounted, watch, ref } from "vue"
import { sendPationCodeApi } from '../../samples/httpApi'
import { formatDate } from '@/utils/formatTime'
import { formatDate,jgTime,isworkTime } from '@/utils/formatTime'
import { confingInfoStore } from '@/stores/StoresConfing'
import {base64toFile} from '@/samples/faceApi'
import{initPort} from '@/samples/portApi'
import{initPort as oumulongHbp9030 } from '@/samples/deviceApi/oumulong-HBP-9030'
import{initPort as  TM2655VP} from '@/samples/deviceApi/TM2655VP'
import{initPort as zhiRongT605 } from '@/samples/deviceApi/zhiRongT605'
import{initPort as taiHengM523 } from '@/samples/deviceApi/taiHengM523'
import{initPort as XK3190A12 } from '@/samples/deviceApi/XK3190A12'
// 读取体重文件
import{toDataTz,todatatzs } from '@/samples/deviceApi/seca101'
import { ElLoading, ElMessage } from 'element-plus'
import { el } from 'element-plus/es/locale'
import { Console } from 'console'
let trackerTask: any = null;
let lsDateTime:any=new Date()
// 标识用的画布
const myCanvas = ref<HTMLCanvasElement | null>(null);
let imgSrc:'';
const msg = ref<string>("没识别到人脸...");
// 实例人脸检查器
// 实例人脸检查器                    ObjectTracker
const myTracker: any = new tracking.ObjectTracker("face");
myTracker.setInitialScale(4);
myTracker.setStepSize(2);
@@ -243,18 +248,26 @@
    context.clearRect(0, 0, myCanvas.value.width, myCanvas.value.height);
  }
  if (event.data.length === 0) {
    // console.log('没有监测到---')
    msg.value = "没识别到人脸...";
  } else if(event.data.length === 1) {
  } else if(event.data.length >= 1){
    trackerTask.stop();
    msg.value = "检测到人脸";
    console.log('监测到人脸样')
    console.log(event.data)
    const myCanvas = document.getElementById("myCanvas");// 
    const thisContext = myCanvas?.getContext("2d");
    const myVideo = document.querySelector("#myVideo") as HTMLVideoElement;
    thisContext.drawImage(myVideo, 0,0, 250, 200);
    imgSrc = myCanvas?.toDataURL('image/png');
    const X= jgTime(lsDateTime,new Date())
    // 转文件
    // 识别框显示才能到传阿里云识别
    if(dialogVisible.value){
    // 识别框显示才能到传阿里云识别并且时间要是工作时间
    if(dialogVisible.value&&X>configData.value.face_push&&isworkTime(new Date())){
      lsDateTime=new Date()
      console.log(X,'上传阿里识别间隔')
      base64toFile(imgSrc)
    }
    setTimeout(() => {
@@ -525,7 +538,11 @@
        }else if(Number(patientInfo.value.pureWeight) !== 0&&patientInfo.value.isAfterMed===1 && patientInfo.value.preWeight>10){
          aimTSL.value = (Number(patientInfo.value.preWeight)- Number(patientInfo.value.pureWeight) - Number(patientInfo.value.clothesWeight)).toFixed(2)
        }
      }
    }else if(patientInfo.value.code===''&&weightInfo.value.result !== "0"){
      speech.value?.speak({ text: "没有识别的患者,请先验证患者" }).then(() => {
        // console.log("播报完成...")
      })
    }
  }
);
// 血压发送了变化
@@ -661,10 +678,23 @@
);
// 文本框点击事件
const inputChabge = () => {
  sendPationCodeApi(inputCode.value)
  setTimeout(function () {
    inputCode.value = ''
  }, 5000)
  console.log(inputCode.value.substring(0,4)==='1553')
  // 更具沅江肾病医院的二维码匹配
  if(inputCode.value.substring(0,4)==='1553'){
    const list=inputCode.value.split(':')
    console.log(list)
    sendPationCodeApi(list[1])
    setTimeout(function () {
      inputCode.value = ''
    }, 5000)
  }else{
    sendPationCodeApi(inputCode.value)
    setTimeout(function () {
      inputCode.value = ''
    }, 5000)
  }
}
// 点击10下关闭程序
const guyanbi = () => {
@@ -677,6 +707,7 @@
  console.log(0%5)
  console.log('页面初始化', os.hostname())
  setTimeout(()=>{
    console.log('8秒后执行')
    console.log('打印设置文件')
    console.log(configData.value)
@@ -686,7 +717,11 @@
    }
    // 是否开启血压计联机
    if(configData.value.Is_xyj){
      oumulongHbp9030(configData.value.xueyanjiPortPath,configData.value.xueyanjiBaudRate)
      if(configData.value.xyj_type==='TM2655'){
        TM2655VP(configData.value.xueyanjiPortPath,configData.value.xueyanjiBaudRate)
      }else{
        oumulongHbp9030(configData.value.xueyanjiPortPath,configData.value.xueyanjiBaudRate)
      }
    }
    // 是否开启志荣体重秤联机
    if(configData.value.Is_tzc){
@@ -697,6 +732,9 @@
      // seca101读取文件
      else if(configData.value.tzc_type==='seca101'){
        console.log('体重是读取文件')
      }// 耀华XK3190-A12
      else if(configData.value.tzc_type==='XK3190-A12'){
        XK3190A12(configData.value.tzcPortPath,configData.value.tzcBaudRate)
      }
      else{
        zhiRongT605(configData.value.tzcPortPath,configData.value.tzcBaudRate)
@@ -728,14 +766,10 @@
      }else {
        timeShidaun.value='晚上好!'
      }
      //5秒一次验证读取体重数据
      console.log(clockNum.value,clockNum.value%5==0)
      if(clockNum.value%3==0){
        // 验证人脸识别已经通过但是还没有体重数据主动获取数据
        if(patientInfo.value.name!==''&&weightInfo.value.result==='0'){
          console.log('主动获取体重')
          todatatzs(patientInfo.value.datetime)
        }
      // 验证人脸识别已经通过但是还没有体重数据主动获取数据
      if(patientInfo.value.name!==''&&weightInfo.value.result==='0'&&configData.value.Is_tzc){
        console.log('主动获取体重')
        todatatzs(patientInfo.value.datetime)
      }
      inputRef.value.focus();