Browse Source

消毒状态

master
maochaoying 2 years ago
parent
commit
4be49cc35b
  1. 9
      src/components/Operator.vue
  2. 51
      src/components/Progress.vue
  3. 4
      src/components/Setting/components/Device.vue
  4. 2
      src/components/dialogs/DisinfectModal.vue
  5. 18
      src/pages/Home.vue
  6. 8
      src/store/modules/operator.js
  7. 2
      src/store/modules/user.js
  8. 6
      src/store/modules/websocket.js

9
src/components/Operator.vue

@ -18,10 +18,7 @@
<div class="warn_wrap">
<p class="warn_text">警报信息</p>
<svg
v-if="
operatorStore.disinfectStatus != 0 &&
operatorStore.disinfectStatus != 3
"
v-if="operatorStore.disinfectStatus != 0"
@click="toDetail"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
@ -138,7 +135,7 @@
width="340"
height="108"
viewBox="0 0 340 108"
v-if="[1, 2].includes(operatorStore.disinfectStatus)"
v-if="[1, 2, 3, 4].includes(operatorStore.disinfectStatus)"
@click="stopDisinfectStatus"
>
<defs>
@ -542,7 +539,7 @@ const startDisinfect = () => {
const realStart = () => {
localStorage.setItem('logVal', logVal.value)
if (![1, 2].includes(operatorStore.disinfectStatus)) {
if (operatorStore.disinfectStatus == 0) {
localStorage.removeItem('bin')
localStorage.removeItem('envir1')
localStorage.removeItem('envir2')

51
src/components/Progress.vue

@ -11,10 +11,7 @@
</p>
</div>
<svg
v-if="
operatorStore.preHeatRaminTimeS <= 0 &&
operatorStore.disinfectStatus == 1
"
v-if="[2, 3].includes(operatorStore.disinfectStatus)"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
fill="none"
@ -43,7 +40,7 @@
</g>
</svg>
<svg
v-if="operatorStore.preHeatRaminTimeS > 0"
v-if="operatorStore.disinfectStatus == 1"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
fill="none"
@ -77,17 +74,41 @@
</g>
</g>
</svg>
<svg
v-if="operatorStore.disinfectStatus == 4"
xmlns="http://www.w3.org/2000/svg"
xmlns:xlink="http://www.w3.org/1999/xlink"
fill="none"
version="1.1"
width="132"
height="52"
viewBox="0 0 132 52"
>
<g>
<g>
<g>
<path
d="M30.16,19.56C29.16,20.88,27.96,22.04,26.56,23.12C25.16,22.08,24,20.96,23.08,19.68L23.16,19.56L30.16,19.56ZM22.84,12.5056C21.2,15.5187,18.32,19,14.16,21.56C15.12,22.28,16.56,23.88,17.2,24.88C18.28,24.12,19.32,23.32,20.24,22.48C21.04,23.52,21.92,24.48,22.92,25.36C20.16,26.76,17,27.84,13.72,28.48C14.56,29.4,15.6,31.2,16.04,32.32C19.88,31.36,23.48,30,26.64,28.12C29.48,29.84,32.76,31.08,36.48,31.84C37.12,30.64,38.32,28.84,39.32,27.92C36.04,27.44,33.04,26.56,30.48,25.4C33.04,23.16,35.16,20.4,36.56,17.08L33.6,15.6394L32.84,15.84L26.08,15.84C26.6,15.0369,27.08,14.2331,27.56,13.43L22.84,12.5056ZM16.76,32.4L16.76,36.52L25.12,36.52L25.12,40.44L20.76,40.44L21.44,37.88L17.12,37.36C16.6,39.72,15.76,42.6,15.04,44.56L16.96,44.56L25.12,44.6006L25.12,50.0169L29.72,50.0169L29.72,44.6L37.96,44.6L37.96,40.44L29.72,40.44L29.72,36.52L37,36.52L37,32.4L29.72,32.4L29.72,30.12L25.12,30.12L25.12,32.4L16.76,32.4ZM2.6,14.04L2.6,49.8962L6.8,49.8962L6.8,18.32L10.12,18.32C9.36,20.96,8.4,24.2,7.48,26.6C10.12,29.44,10.8,32.04,10.8,33.96C10.84,35.16,10.6,36,10.04,36.36C9.72,36.6,9.28,36.72,8.8,36.72C8.28,36.72,7.64,36.72,6.84,36.64C7.52,37.8,7.88,39.6,7.92,40.76C8.92,40.8006,9.92,40.8006,10.72,40.68C11.68,40.52,12.44,40.28,13.12,39.8C14.44,38.84,15.04,37.04,15.04,34.48C15.04,32.08,14.48,29.28,11.68,26.08C12.96,23.04,14.44,19.04,15.6,15.64L12.44,13.8387L11.76,14.04L2.6,14.04ZM54.04,26.28L54.04,29.72L51.88,29.72L51.88,26.28L54.04,26.28ZM57.2,26.28L59.48,26.28L59.48,29.72L57.2,29.72L57.2,26.28ZM51.36,22.76C51.88,21.8,52.32,20.84,52.76,19.8L56.72,19.8C56.4,20.84,56,21.88,55.6,22.76L51.36,22.76ZM50.72,12.425C49.6,17.2,47.52,21.88,44.76,24.84C45.6,25.36,47.08,26.6,47.92,27.4L47.92,33.36C47.92,37.84,47.68,43.8,44.96,47.9625C45.92,48.405,47.68,49.4906,48.4,50.1744C50.12,47.6006,51,44.16,51.44,40.72L54.04,40.72L54.04,47.52L57.2,47.52L57.2,46.12C57.64,47.2,58,48.6,58.08,49.52C59.88,49.52,61.12,49.44,62.16,48.72C63.16,48.04,63.4,46.84,63.4,45.12L63.4,36.8C64.36,37.24,66,38.08,66.76,38.6C67.36,37.72,67.88,36.68,68.4,35.48L72.16,35.48L72.16,39.12L64.56,39.12L64.56,43.24L72.16,43.24L72.16,50.0175L76.72,50.0175L76.72,43.24L82.68,43.24L82.68,39.12L76.72,39.12L76.72,35.48L81.84,35.48L81.84,31.44L76.72,31.44L76.72,28.28L72.16,28.28L72.16,31.44L69.76,31.44C69.96,30.6,70.16,29.76,70.32,28.92L66.8,28.2C70.8,25.96,72.28,22.6,72.96,18.44L77.4,18.44C77.24,21.76,77.04,23.12,76.68,23.56C76.4,23.92,76.08,23.96,75.6,23.96C75.08,23.96,74,23.92,72.72,23.8C73.32,24.84,73.72,26.48,73.8,27.68C75.44,27.72,76.96,27.72,77.88,27.56C78.88,27.44,79.64,27.08,80.32,26.28C81.2,25.2,81.52,22.44,81.72,16.04C81.76,15.52,81.8,14.48,81.8,14.48L64.16,14.48L64.16,18.44L68.64,18.44C68.08,21.4,66.88,23.8,63.4,25.36L63.4,22.76L59.76,22.76C60.6,21.12,61.44,19.32,62,17.76L59.16,15.9994L58.52,16.16L54.12,16.16C54.44,15.2369,54.72,14.2725,54.96,13.3488L50.72,12.425ZM54.04,33.16L54.04,37.2L51.76,37.2C51.84,35.88,51.88,34.56,51.88,33.4L51.88,33.16L54.04,33.16ZM57.2,33.16L59.48,33.16L59.48,37.2L57.2,37.2L57.2,33.16ZM57.2,40.72L59.48,40.72L59.48,45.04C59.48,45.44,59.4,45.56,59.04,45.56L57.2,45.52L57.2,40.72ZM63.4,36.6L63.4,25.8C64.28,26.6006,65.16,27.8819,65.6,28.8025L66.4,28.4025C65.84,31.44,64.8,34.48,63.4,36.6ZM105.36,12.4231L105.36,19.4L91.52,19.4L91.52,39.6838L96.32,39.6838L96.32,37.48L105.36,37.48L105.36,50.0187L110.44,50.0187L110.44,37.48L119.52,37.48L119.52,39.4831L124.56,39.4831L124.56,19.4L110.44,19.4L110.44,12.4231L105.36,12.4231ZM96.32,32.76L96.32,24.12L105.36,24.12L105.36,32.76L96.32,32.76ZM119.52,32.76L110.44,32.76L110.44,24.12L119.52,24.12L119.52,32.76Z"
fill="#2485FF"
fill-opacity="1"
/>
</g>
</g>
</g>
</svg>
<div
class="btn"
v-if="[1, 2].includes(operatorStore.disinfectStatus)"
v-if="[1, 2, 3, 4].includes(operatorStore.disinfectStatus)"
@click="stopDisinfect"
>
结束消毒
</div>
<div
class="btn"
v-if="operatorStore.disinfectStatus == 0"
v-if="
operatorStore.disinfectStatus == 0 ||
operatorStore.disinfectStatus == 5
"
@click="showDetail"
>
返回
@ -696,15 +717,15 @@ onUnmounted(() => {
})
const pauseDisinfect = () => {
if (operatorStore.disinfectStatus == 1) {
webSocketStore.sendCommandMsg(pauseDisinfectionJSON)
}
// if (operatorStore.disinfectStatus == 1) {
// webSocketStore.sendCommandMsg(pauseDisinfectionJSON)
// }
}
const disinfectWarnVisible = ref(false)
const stopDisinfect = () => {
disinfectWarnVisible.value = true
if ([1, 2].includes(operatorStore.disinfectStatus)) {
if ([1, 2, 3, 4].includes(operatorStore.disinfectStatus)) {
webSocketStore.sendCommandMsg(stopDisinfectionJSON)
}
}
@ -714,9 +735,9 @@ const hideDisinfectModal = () => {
}
const continueDisinfect = () => {
if (operatorStore.disinfectStatus == 2) {
webSocketStore.sendCommandMsg(continueDisinfectionJSON)
}
// if (operatorStore.disinfectStatus == 2) {
// webSocketStore.sendCommandMsg(continueDisinfectionJSON)
// }
}
</script>

4
src/components/Setting/components/Device.vue

@ -91,7 +91,7 @@
/>
</p>
</div>
<div class="row_wrap" v-if="operatorStore.disinfectStatus != 1">
<div class="row_wrap" v-if="[0, 5].includes(operatorStore.disinfectStatus)">
<p class="title">允许消毒最大湿度(%RH)</p>
<p class="num">
<van-field
@ -104,7 +104,7 @@
/>
</p>
</div>
<div class="row_wrap" v-if="operatorStore.disinfectStatus != 1">
<div class="row_wrap" v-if="[0, 5].includes(operatorStore.disinfectStatus)">
<p class="title">预热时间(s)</p>
<p class="num">
<van-field

2
src/components/dialogs/DisinfectModal.vue

@ -46,7 +46,7 @@ const handleCancel = () => {
}
const handleStart = () => {
if ([1, 2].includes(operatorStore.disinfectStatus)) {
if ([1, 2, 3, 4].includes(operatorStore.disinfectStatus)) {
operatorStore.updateStopReady(true)
webSocketStore.sendCommandMsg(stopDisinfectionJSON)
props.hideDisinfectModal()

18
src/pages/Home.vue

@ -31,7 +31,7 @@
activeTab == 2 ? 'tab_btn style-btn active_btn' : 'style-btn tab_btn'
"
@click="changeTab(2)"
v-if="operatorStore.disinfectStatus != 1"
v-if="[0, 5].includes(operatorStore.disinfectStatus)"
>
<svg
xmlns="http://www.w3.org/2000/svg"
@ -57,7 +57,7 @@
activeTab == 3 ? 'tab_btn style-btn active_btn' : 'style-btn tab_btn'
"
@click="changeTab(3)"
v-if="operatorStore.disinfectStatus != 1"
v-if="[0, 5].includes(operatorStore.disinfectStatus)"
>
<svg
xmlns="http://www.w3.org/2000/svg"
@ -85,7 +85,7 @@
@click="changeTab(4)"
v-if="
userStore.loginUserPermission != 3 &&
operatorStore.disinfectStatus != 1
[0, 5].includes(operatorStore.disinfectStatus)
"
>
<svg
@ -114,7 +114,7 @@
@click="changeTab(5)"
v-if="
userStore.loginUserPermission != 3 ||
operatorStore.disinfectStatus == 1
[1, 2, 3, 4].includes(operatorStore.disinfectStatus)
"
>
<svg
@ -140,7 +140,7 @@
<div
v-if="
userStore.loginUserPermission != 3 &&
operatorStore.disinfectStatus != 1
[0, 5].includes(operatorStore.disinfectStatus)
"
:class="
activeTab == 6 ? 'tab_btn style-btn active_btn' : 'style-btn tab_btn'
@ -207,9 +207,13 @@
<LiquidHandle v-if="activeTab == 2" :tabType="1" />
<LiquidHandle v-if="activeTab == 3" :tabType="2" />
<Test v-if="activeTab == 4" />
<Setting v-if="activeTab == 5 && operatorStore.disinfectStatus != 1" />
<Setting
v-if="activeTab == 5 && [0, 5].includes(operatorStore.disinfectStatus)"
/>
<DisinfectionSetting
v-if="activeTab == 5 && operatorStore.disinfectStatus == 1"
v-if="
activeTab == 5 && [1, 2, 3, 4].includes(operatorStore.disinfectStatus)
"
/>
<Audit v-if="activeTab == 6" />
<Formula v-if="activeTab == 7" />

8
src/store/modules/operator.js

@ -5,12 +5,18 @@ export const useOperatorStore = defineStore({
state: () => {
return {
// 是否开始消毒
// 0 未开始
// 1 预加热
// 2 3 消毒中
// 4 降解中
// 5 已完成
disinfectStatus: 0,
// 预热时间和消毒剩余时间都用这个字段
estimatedRemainingTimeS: 0,
disinfection_id: '',
drainingWorkState: 0,
replenishingFluidsWorkState: 0,
// 是否预热
// 是否预热 废弃!!!
preHeat: false,
preHeatRaminTimeS: 0,
// 准备消毒loading

2
src/store/modules/user.js

@ -7,7 +7,7 @@ export const useUserStore = defineStore({
allUserList: [],
operUser: '',
loginUser: '',
loginUserPermission: 2,
loginUserPermission: 3,
}
},
// actions

6
src/store/modules/websocket.js

@ -76,7 +76,7 @@ export const useWebSocketStore = defineStore({
waterImmersionSensor1,
waterImmersionSensor2,
} = sensor_data
if (disinfectionWorkState != 0) {
if ([1, 2, 3, 4].includes(disinfectionWorkState)) {
operatorStore.updateShowStartReady(false)
} else {
operatorStore.updateStopReady(false)
@ -119,7 +119,7 @@ export const useWebSocketStore = defineStore({
operatorStore.updateDisinfectionId(disinfection_id)
// 将sensor_data中的数据更新到store中
if (operatorStore.disinfectStatus == 1) {
if ([1, 2, 3, 4].includes(operatorStore.disinfectStatus)) {
saveEchartsDataToLocal(
moment(timeStamp).format('HH:mm'),
[temp_1, humid_1, h2o2_1, saturation_1],
@ -244,7 +244,7 @@ export const useWebSocketStore = defineStore({
deviceStore.updateEnvirHP2(h2o2_3)
// 对数据进行处理 并存入到localstorage中
if (operatorStore.disinfectStatus) {
if ([1, 2, 3, 4].includes(operatorStore.disinfectStatus)) {
saveEchartsDataToLocal(
moment(timeStamp).format('HH:mm'),
[temp_1, humid_1, h2o2_1, saturation_1],

Loading…
Cancel
Save