消毒机设备
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

423 lines
11 KiB

<script lang="ts" setup>
import { sendCmd } from 'apis/system'
import { roundNumber } from 'libs/utils'
import { useDebugStore } from 'stores/debugStore'
import { useHomeStore } from 'stores/homeStore'
import { ref, watchEffect } from 'vue'
const homeStore = useHomeStore()
const debugStore = useDebugStore()
const h2O2SensorData = ref<Home.DisplayrelyMgrParams[]>(homeStore.h2O2SensorData)
const sprayPumpGpmValue = ref<number>(5)
const airLeakDetectTestMode = ref<string>('disinfection')
watchEffect(() => {
const hdData = homeStore.h2O2SensorData
if (hdData && hdData.length) {
h2O2SensorData.value = [...hdData]
}
})
// 加液
const liquidFillingPumpDoLiquidFilling = async () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'liquidFillingPumpDoLiquidFilling',
params: {},
}
await sendCmd(data)
}
// 排液
const liquidFillingPumpDoLiquidDischarge = async () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'liquidFillingPumpDoLiquidDischarge',
params: {},
}
sendCmd(data)
}
// 停止加液 或 排液。停止电机
const liquidFillingPumpDoStop = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'liquidFillingPumpDoStop',
params: {},
}
sendCmd(data)
}
// 打开空压机
const airCompressorDoOpen = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'airCompressorDoOpen',
params: {},
}
sendCmd(data)
}
// 关闭空压机
const airCompressorDoClose = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'airCompressorDoClose',
params: {},
}
sendCmd(data)
}
// 打开加热
const heatingDoOpen = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'heatingDoOpen',
params: {},
}
sendCmd(data)
}
// 关闭加热
const heatingDoClose = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'heatingDoClose',
params: {},
}
sendCmd(data)
}
// 喷液泵控制 喷液(gpm)
const sprayPumpDoForward = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'sprayPumpDoForward',
params: {
gpm: sprayPumpGpmValue.value,
},
}
sendCmd(data)
}
// 喷液泵控制 回流(gpm)
const sprayPumpDoBackward = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'sprayPumpDoBackward',
params: {
gpm: sprayPumpGpmValue.value,
},
}
sendCmd(data)
}
// 喷液泵控制 停止
const onClosePump = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'sprayPumpDoStop',
params: {},
}
sendCmd(data)
}
// 打开风机
const blowerDoOpen = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'blowerDoOpen',
params: {},
}
sendCmd(data)
}
// 关闭风机
const blowerDoClose = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'blowerDoClose',
params: {},
}
sendCmd(data)
}
// 气密性测试模式切换
const airLeakDetectTestModeDoSetMode = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'airLeakDetectTestModeDoSetMode',
params: {
mode: airLeakDetectTestMode.value,
},
}
sendCmd(data)
}
// 打印测试
const printerDoTest = () => {
const data = {
className: 'TestPageCtrlService',
fnName: 'printerDoTest',
params: {},
}
sendCmd(data)
}
</script>
<template>
<div class="dashboard-container">
<main class="main-content">
<!-- 上下布局 -->
<section class="debug-env">
<!-- 左侧HO 传感器数据 -->
<div class="debug-env-left">
<div v-for="(item, index) in h2O2SensorData" :key="index" class="debug-left-lh env-lh">
<div class="debug-env-content">
<div class="debug-label env-content-p" style="text-align: right; width: 8rem">
{{ index === 0 ? '仓内环境' : item.title || `探头${index}` }}
</div>
<div class="env-content-p">
<span>温度</span>
<span class="debug-text">{{ roundNumber(item.temp, 2) }}</span>°C
</div>
<div class="env-content-p">
<span>湿度</span>
<span class="debug-text">{{ roundNumber(item.rh, 2) }}</span>%RH
</div>
<div class="env-content-p">
<span>H₂O₂浓度</span>
<span class="debug-text">{{ roundNumber(item.h2o2, 2) }}</span>ppm
</div>
</div>
</div>
</div>
<!-- 右侧:电机电流 & 加热温度 -->
<div class="debug-env-right">
<div class="env-content-p">
<span class="label">空压机电流</span>
<span class="value">
<span class="debug-text">{{ debugStore.debugPageState?.airCompressorCurrent ?? 0 }}</span>
<span class="unit">A</span>
</span>
</div>
<div class="env-content-p">
<span class="label">风机电流</span>
<span class="value">
<span class="debug-text">{{ debugStore.debugPageState?.blowerCurrent ?? 0 }}</span>
<span class="unit">A</span>
</span>
</div>
<div class="env-content-p">
<span class="label">加热片电流</span>
<span class="value">
<span class="debug-text">{{ debugStore.debugPageState?.heaterCurrent ?? 0 }}</span>
<span class="unit">A</span>
</span>
</div>
</div>
</section>
<hr class="divider">
<div class="debug-lower">
<section>
<div>
<div class="debug-left-lh">
<div class="debug-label">
加液泵控制:
</div>
<div>
<bt-button type="primary" button-text="加液" @click="liquidFillingPumpDoLiquidFilling" />
</div>
<div>
<bt-button type="primary" button-text="排空" @click="liquidFillingPumpDoLiquidDischarge" />
</div>
<div>
<bt-button button-text="停止" @click="liquidFillingPumpDoStop" />
</div>
</div>
<div class="debug-left-lh">
<div class="debug-label">
空压机控制:
</div>
<div>
<bt-button type="primary" button-text="打开" @click="airCompressorDoOpen" />
</div>
<div>
<bt-button button-text="关闭" @click="airCompressorDoClose" />
</div>
</div>
<div class="debug-left-lh">
<div class="debug-label">
加热片控制:
</div>
<div>
<bt-button type="primary" button-text="打开" @click="heatingDoOpen" />
</div>
<div>
<bt-button button-text="关闭" @click="heatingDoClose" />
</div>
</div>
<div class="debug-left-lh">
<div class="debug-label">
气密性阀门模式:
</div>
<div class="debug-bw">
<el-select v-model="airLeakDetectTestMode" placeholder="请选择模式" style="width: 100%">
<el-option label="消毒模式" value="disinfection" />
<el-option label="加压模式" value="inflation" />
<el-option label="泄露测试模式" value="leakTest" />
</el-select>
</div>
<div>
<bt-button type="primary" button-text="切换" @click="airLeakDetectTestModeDoSetMode" />
</div>
</div>
</div>
</section>
<section class="debug-right">
<div>
<div class="debug-left-lh">
<div class="debug-label">
喷液泵控制:
</div>
<div class="debug-bw">
<el-select v-model="sprayPumpGpmValue" placeholder="请选择加液量" style="width: 100%">
<el-option
v-for="opt in [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15]"
:key="opt"
:label="`${opt} gpm`"
:value="opt"
/>
</el-select>
</div>
<div>
<bt-button type="primary" button-text="喷液" @click="sprayPumpDoForward" />
</div>
<div>
<bt-button type="primary" button-text="回流" @click="sprayPumpDoBackward" />
</div>
<div>
<bt-button button-text="停止" @click="onClosePump" />
</div>
</div>
<div class="debug-left-lh">
<div class="debug-label">
风机控制:
</div>
<div>
<bt-button type="primary" button-text="打开" @click="blowerDoOpen" />
</div>
<div>
<bt-button button-text="关闭" @click="blowerDoClose" />
</div>
</div>
<div class="debug-left-lh">
<div class="debug-label">
打印机测试
</div>
<div>
<bt-button type="primary" button-text="测试" @click="printerDoTest" />
</div>
</div>
</div>
</section>
</div>
</main>
</div>
</template>
<style lang="scss" scoped>
$lineHeight: 12vh;
.main-content {
height: $main-container-height;
overflow: hidden;
background: $gradient-color;
padding: 4vh;
font-size: 20px;
.debug-upper {
display: grid;
grid-template-columns: repeat(2, 1fr);
grid-template-rows: auto auto;
}
.debug-lower {
display: grid;
grid-template-columns: repeat(2, 1fr);
}
.debug-left {
.debug-inside {
display: flex;
gap: 1rem;
}
}
}
.divider {
margin-top: 4vh;
margin-bottom: 4vh;
}
.debug-env {
display: flex;
align-items: flex-start;
}
.debug-left-lh {
display: flex;
gap: 1rem;
height: $lineHeight;
.debug-env-content {
display: flex;
.env-content-p {
padding: 5px;
}
}
}
.debug-env-right {
display: flex;
flex-direction: column;
gap: 0.5rem;
margin-left: 20rem;
align-items: flex-start;
}
.env-content-p {
display: flex;
align-items: center;
gap: 0.5rem;
font-size: 1rem;
}
.debug-env-right .env-content-p {
display: flex;
align-items: center;
}
.debug-env-right .env-content-p .label {
display: inline-block;
width: 6.5rem; /* 根据最长文字“加热片电流”微调 */
text-align: right;
margin-right: 0.75rem;
}
.debug-env-right .env-content-p .value {
display: flex;
align-items: baseline;
gap: 0.2rem;
}
.debug-env-right .env-content-p .debug-text {
font-weight: bold;
color: #2892f3;
}
.debug-env-right .env-content-p .unit {
font-size: 0.9em;
}
.env-lh {
height: 5vh;
}
.debug-bw {
width: 10vw;
}
.debug-label {
width: 18vw;
text-align: end;
}
.debug-text {
color: #2892f3;
padding: 5px;
}
</style>