10 changed files with 196 additions and 120 deletions
-
25src/src/main/java/com/my/graphiteDigesterBg/diframe/DiTaskMoveBase.java
-
5src/src/main/java/com/my/graphiteDigesterBg/diframe/actuator/DiActPeristalticPump.java
-
28src/src/main/java/com/my/graphiteDigesterBg/move/MoveLiquidAdd.java
-
10src/src/main/java/com/my/graphiteDigesterBg/resource/ResHeatingTubeRackSlotManager.java
-
16src/src/main/java/com/my/graphiteDigesterBg/task/TaskLiquidAdd.java
-
40src/src/main/java/com/my/graphiteDigesterBg/task/TaskStartReset.java
-
52src/src/main/resources/device.yml
-
59src/web/src/pages/main/contents/Operation.vue
-
78src/web/src/pages/main/contents/OperationTubeRackAcidAdd.vue
-
3src/web/src/pages/main/contents/OperationTubeRacks.vue
@ -0,0 +1,78 @@ |
|||||
|
<template> |
||||
|
<a-button class="ml-1" |
||||
|
style="background: transparent;border: solid 1px #becfe7;color: #7c92b1;" |
||||
|
@click="actionAcidAdd" |
||||
|
><ExperimentOutlined /></a-button> |
||||
|
|
||||
|
<!-- 加酸 --> |
||||
|
<a-modal v-if="enable" v-model:visible="enable" title="加酸" @ok="acidAddOk" @cancel="acidAddCancel" ok-text="确认" cancel-text="取消"> |
||||
|
<a-form :label-col="{span:4}" :wrapper-col="{span:20}" label-align="left" class="py-5"> |
||||
|
<a-form-item label="酸液"> |
||||
|
<a-select v-model:value="acidAdd.liquidType" :options="acidOptions"></a-select> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="加量"> |
||||
|
<a-input-number class="w-full" v-model:value="acidAdd.liquidVolume" :min="0" addon-after="ml" /> |
||||
|
</a-form-item> |
||||
|
<a-form-item label="摇匀次数"> |
||||
|
<a-input-number class="w-full" v-model:value="acidAdd.shakeTimes" :min="0" /> |
||||
|
</a-form-item> |
||||
|
</a-form> |
||||
|
</a-modal> |
||||
|
</template> |
||||
|
<script setup> |
||||
|
import ApiClient from '@/utils/ApiClient'; |
||||
|
import { ref } from 'vue'; |
||||
|
/** @var {Object} */ |
||||
|
const props = defineProps({ |
||||
|
activeSlot: Object, |
||||
|
}); |
||||
|
/** @var {Boolean} */ |
||||
|
const enable = ref(false); |
||||
|
/** @var {Array} */ |
||||
|
const acidOptions = ref([]); |
||||
|
/** @var {Object} */ |
||||
|
const acidAdd = ref({liquidType:null,liquidVolume:1,shakeTimes:3}); |
||||
|
|
||||
|
// 加酸 |
||||
|
async function actionAcidAdd() { |
||||
|
let client = ApiClient.getClient(); |
||||
|
let acidBuckets = await client.resourceDataGet('Acid'); |
||||
|
let acidTypeMap = {hydrochloric:'盐酸',nitric:'硝酸',sulfuric:'硫酸',hydrofluoric:'氢氟酸',perchloric:'高氯酸',hydrobromic:'液溴',phosphoric:'磷酸',tartaric:'酒石酸'}; |
||||
|
for ( let acidBucket of acidBuckets ) { |
||||
|
acidBucket.acidName = acidTypeMap[acidBucket.acidType]; |
||||
|
} |
||||
|
|
||||
|
acidOptions.value = []; |
||||
|
for ( let acidBucket of acidBuckets ) { |
||||
|
if ( -1 !== acidOptions.value.findIndex(item => item.value === acidBucket.acidType) ) { |
||||
|
continue ; |
||||
|
} |
||||
|
acidOptions.value.push({ |
||||
|
label : `${acidBucket.acidName}`, |
||||
|
value : acidBucket.acidType |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
enable.value = true; |
||||
|
if ( null === acidAdd.value.liquidType ) { |
||||
|
acidAdd.value.liquidType = acidBuckets[0].acidType; |
||||
|
} |
||||
|
} |
||||
|
|
||||
|
// 加酸确认 |
||||
|
async function acidAddOk() { |
||||
|
enable.value = false; |
||||
|
let client = ApiClient.getClient(); |
||||
|
await client.taskAppend('LiquidAdd',{ |
||||
|
slotIndex : props.activeSlot.index * 1, |
||||
|
liquidType : acidAdd.value.liquidType, |
||||
|
liquidVolume : acidAdd.value.liquidVolume * 1, |
||||
|
shakeTimes : acidAdd.value.shakeTimes * 1, |
||||
|
}); |
||||
|
} |
||||
|
|
||||
|
// 加酸取消 |
||||
|
function acidAddCancel() { |
||||
|
enable.value = false; |
||||
|
} |
||||
|
</script> |
Write
Preview
Loading…
Cancel
Save
Reference in new issue