Browse Source

fix: 密封测试

master
guoapeng 2 weeks ago
parent
commit
ff1e9b1aac
  1. 2
      src/components/home/HomeFormula.vue
  2. 9
      src/views/home/chart.vue
  3. 25
      src/views/seal/index.vue

2
src/components/home/HomeFormula.vue

@ -34,7 +34,7 @@ watchEffect(async () => {
</div> </div>
<div v-if="rate" class="title-spend"> <div v-if="rate" class="title-spend">
<span>速率</span> <span>速率</span>
<span style="color: #31cb7a">{{ rate }}</span>g/分钟
<span style="color: #31cb7a">{{ homeStore.disinfectionState.injectedVelocity }}</span>g/分钟
</div> </div>
</div> </div>
</template> </template>

9
src/views/home/chart.vue

@ -137,12 +137,12 @@ onUnmounted(() => {
const formatSeconds = (seconds: number) => { const formatSeconds = (seconds: number) => {
const hours = Math.floor(seconds / 3600) const hours = Math.floor(seconds / 3600)
const minutes = Math.floor((seconds % 3600) / 60) const minutes = Math.floor((seconds % 3600) / 60)
// const remainingSeconds = seconds % 60
const remainingSeconds = seconds % 60
// //
const padZero = (num: number) => num.toString().padStart(2, '0') const padZero = (num: number) => num.toString().padStart(2, '0')
return `${padZero(hours)}:${padZero(minutes)}`
return `${padZero(hours)}:${padZero(minutes)}:${padZero(remainingSeconds)}`
} }
</script> </script>
@ -167,7 +167,10 @@ const formatSeconds = (seconds: number) => {
<span v-if="disinfectionState.state === 'disinfection'"> 预计剩余时间: </span> <span v-if="disinfectionState.state === 'disinfection'"> 预计剩余时间: </span>
<span v-else> 消毒状态 </span> <span v-else> 消毒状态 </span>
</div> </div>
<div v-if="homeStore.disinfectionState.curStateRemainTimeS" class="home-chart-value">
<div
v-if="homeStore.disinfectionState.curStateRemainTimeS && disinfectionState.state !== 'preheat'"
class="home-chart-value"
>
{{ formatSeconds(homeStore.disinfectionState.curStateRemainTimeS) }} {{ formatSeconds(homeStore.disinfectionState.curStateRemainTimeS) }}
</div> </div>
<div v-else class="home-chart-value"> <div v-else class="home-chart-value">

25
src/views/seal/index.vue

@ -6,7 +6,7 @@ import SealInstrumentSvg from 'assets/images/seal/seal-instrument.svg'
import SoftKeyboard from 'components/common/SoftKeyboard/index.vue' import SoftKeyboard from 'components/common/SoftKeyboard/index.vue'
import DashboardChart from 'components/seal/DashboardChart.vue' import DashboardChart from 'components/seal/DashboardChart.vue'
import { roundNumber } from 'libs/utils' import { roundNumber } from 'libs/utils'
import { computed, onMounted, ref, watch } from 'vue'
import { computed, onMounted, onUnmounted, ref, watch } from 'vue'
import { getDeviceStatus } from '@/libs/deviceComm' import { getDeviceStatus } from '@/libs/deviceComm'
import { FtMessage } from '@/libs/message' import { FtMessage } from '@/libs/message'
@ -50,11 +50,21 @@ onMounted(async () => {
params: { inflationTimeMs: 0.3 }, params: { inflationTimeMs: 0.3 },
}) })
inflationTime.value = res.inflationTimeMs inflationTime.value = res.inflationTimeMs
poll = setInterval(() => {
if (sealInfo.value.workState === 'leakTesting') {
sealStore.startLeakTimer()
clearInterval(poll)
}
}, 100)
})
onUnmounted(() => {
clearInterval(poll)
}) })
const stopText = computed(() => (sealInfo.value.workState === 'stopping' ? '停止中...' : '停止测试')) const stopText = computed(() => (sealInfo.value.workState === 'stopping' ? '停止中...' : '停止测试'))
const stopDisabled = computed(() => sealInfo.value.workState === 'stopping' || sealInfo.value.workState === 'idle') const stopDisabled = computed(() => sealInfo.value.workState === 'stopping' || sealInfo.value.workState === 'idle')
let poll: any = 0
function onStartTest() { function onStartTest() {
const statusName = getDeviceStatus() const statusName = getDeviceStatus()
if (statusName) { if (statusName) {
@ -65,7 +75,12 @@ function onStartTest() {
syncSendCmd({ className: 'AirLeakDetectTest', fnName: 'start', params: { inflationTimeMs: 0 } }) syncSendCmd({ className: 'AirLeakDetectTest', fnName: 'start', params: { inflationTimeMs: 0 } })
.then((res) => { .then((res) => {
if (res.ackcode === 0) { if (res.ackcode === 0) {
poll = setInterval(() => {
if (sealInfo.value.workState === 'leakTesting') {
sealStore.startLeakTimer() sealStore.startLeakTimer()
clearInterval(poll)
}
}, 100)
FtMessage.success('开始执行密封测试') FtMessage.success('开始执行密封测试')
} }
else { else {
@ -110,7 +125,7 @@ function handleConfirm(value: string) {
<div class="seal-time-text"> <div class="seal-time-text">
测试时间 测试时间
</div> </div>
<div v-if="sealInfo.workState === 'idle'" class="seal-time-statue seal-time-text">
<div v-if="sealInfo.workState !== 'leakTesting'" class="seal-time-statue seal-time-text">
未开始 未开始
</div> </div>
<div v-else class="seal-test-time"> <div v-else class="seal-test-time">
@ -127,6 +142,10 @@ function handleConfirm(value: string) {
<div v-else-if="sealInfo.workState === 'stabilizingPressure'" class="seal-diff-statue seal-diff-text"> <div v-else-if="sealInfo.workState === 'stabilizingPressure'" class="seal-diff-statue seal-diff-text">
稳压中 稳压中
</div> </div>
<div v-else-if="sealInfo.workState === 'stopping'" class="seal-diff-statue seal-diff-text">
停止中
</div>
<!-- 捡漏中 -->
<div v-else-if="sealInfo.workState === 'leakTesting'" class="seal-test-time"> <div v-else-if="sealInfo.workState === 'leakTesting'" class="seal-test-time">
{{ initialPressure }}Kpa {{ initialPressure }}Kpa
</div> </div>
@ -227,7 +246,7 @@ function handleConfirm(value: string) {
//width: 16rem; //width: 16rem;
height: 5rem; height: 5rem;
border-radius: 15px; border-radius: 15px;
padding: 0 2px 0;
padding: 0 20px;
} }
.seal-time-text { .seal-time-text {
font-size: 1.5rem; font-size: 1.5rem;

Loading…
Cancel
Save