|
|
@ -18,7 +18,10 @@ |
|
|
|
</div> |
|
|
|
|
|
|
|
<!-- edit modal --> |
|
|
|
<a-modal v-if="edit.enable" v-model:open="edit.enable" title="预设编辑" @ok="actionEditOk" ok-text="确定" cancel-text="取消"> |
|
|
|
<a-modal v-if="edit.enable" v-model:open="edit.enable" title="预设编辑" @ok="actionEditOk" ok-text="确定" cancel-text="取消" |
|
|
|
:closable="false" |
|
|
|
:mask-closable="false" |
|
|
|
> |
|
|
|
<p><a-input v-model:value="edit.data.name" placeholder="名称" /></p> |
|
|
|
<a-row class="py-3"> |
|
|
|
<a-col :span="12">执行步骤</a-col> |
|
|
@ -32,20 +35,27 @@ |
|
|
|
步骤 : {{ index + 1 }} - {{ stepNameGet(step) }} |
|
|
|
</template> |
|
|
|
<template #extra><delete-outlined @click="actionStepDelete($event, index)" /></template> |
|
|
|
<a-form :label-col="{span:4}" :wrapper-col="{span:20}"> |
|
|
|
<a-form label-align="left" :label-col="{span:4}" :wrapper-col="{span:20}"> |
|
|
|
<a-form-item label="操作"> |
|
|
|
<a-radio-group v-model:value="step.action" button-style="solid"> |
|
|
|
<a-radio-button value="Heating">加热</a-radio-button> |
|
|
|
<a-radio-button value="Pump">加酸</a-radio-button> |
|
|
|
</a-radio-group> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="目标温度" v-if="'Heating' === step.action"> |
|
|
|
<a-input-number v-model:value="step.temperature" addon-after="℃" /> |
|
|
|
<a-select v-model:value="step.action"> |
|
|
|
<a-select-option value="HeatingStart">加热</a-select-option> |
|
|
|
<a-select-option value="HeatingStop">加热停止</a-select-option> |
|
|
|
<a-select-option value="Pump">加液</a-select-option> |
|
|
|
<a-select-option value="Shaking">摇匀</a-select-option> |
|
|
|
<a-select-option value="Delay">延时等待</a-select-option> |
|
|
|
<a-select-option value="TempRiseWait">升温等待</a-select-option> |
|
|
|
<a-select-option value="TempDownWait">降温等待</a-select-option> |
|
|
|
<a-select-option value="TempKeepDelay">恒温保持</a-select-option> |
|
|
|
<a-select-option value="MoveToHeatingPlate">转移至加热区</a-select-option> |
|
|
|
<a-select-option value="MoveToLiquidPlate">转移至加液区</a-select-option> |
|
|
|
<a-select-option value="Checking">检查</a-select-option> |
|
|
|
<a-select-option value="TakeOut">取出</a-select-option> |
|
|
|
</a-select> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="持续时间" v-if="'Heating' === step.action"> |
|
|
|
<a-input-number v-model:value="step.duration" addon-after="分钟" /> |
|
|
|
<a-form-item label="目标温度" v-if="'HeatingStart' === step.action"> |
|
|
|
<a-input-number v-model:value="step.temperature" addon-after="℃" class="w-full"/> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="酸液类型" v-if="'Pump' === step.action"> |
|
|
|
<a-form-item label="加液类型" v-if="'Pump' === step.action"> |
|
|
|
<a-select v-model:value="step.type"> |
|
|
|
<a-select-option value="hydrochloric">盐酸</a-select-option> |
|
|
|
<a-select-option value="nitric">硝酸</a-select-option> |
|
|
@ -57,11 +67,23 @@ |
|
|
|
<a-select-option value="tartaric">酒石酸</a-select-option> |
|
|
|
</a-select> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="加酸量" v-if="'Pump' === step.action"> |
|
|
|
<a-input-number v-model:value="step.amount" /> |
|
|
|
<a-form-item label="加液量" v-if="'Pump' === step.action"> |
|
|
|
<a-input-number v-model:value="step.amount" addon-after="ml" class="w-full"/> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="次数" v-if="'Shaking' === step.action"> |
|
|
|
<a-input-number v-model:value="step.count" addon-after="次" class="w-full"/> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="持续时间" v-if="'Delay' === step.action"> |
|
|
|
<a-input-number v-model:value="step.duration" addon-after="分钟" class="w-full"/> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="持续时间" v-if="'TempKeepDelay' === step.action"> |
|
|
|
<a-input-number v-model:value="step.duration" addon-after="分钟" class="w-full"/> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="目标温度" v-if="'TempRiseWait' === step.action"> |
|
|
|
<a-input-number v-model:value="step.temperature" addon-after="℃" class="w-full"/> |
|
|
|
</a-form-item> |
|
|
|
<a-form-item label="摇匀次数" v-if="'Pump' === step.action"> |
|
|
|
<a-input-number v-model:value="step.shake" /> |
|
|
|
<a-form-item label="目标温度" v-if="'TempDownWait' === step.action"> |
|
|
|
<a-input-number v-model:value="step.temperature" addon-after="℃" class="w-full"/> |
|
|
|
</a-form-item> |
|
|
|
</a-form> |
|
|
|
</a-collapse-panel> |
|
|
@ -94,10 +116,19 @@ async function mounted() { |
|
|
|
// step name get |
|
|
|
function stepNameGet(step) { |
|
|
|
let acidMap = {hydrochloric:'盐酸',nitric:'硝酸',sulfuric:'硫酸',hydrofluoric:'氢氟酸',perchloric:'高氯酸',hydrobromic:'液溴',phosphoric:'磷酸',tartaric:'酒石酸'}; |
|
|
|
if ( 'Heating' === step.action ) { |
|
|
|
return `加热 ${step.temperature}℃ ${step.duration}分钟`; |
|
|
|
} else if ( 'Pump' === step.action ) { |
|
|
|
return `加酸 ${acidMap[step.type]} ${step.amount}ml 摇匀${step.shake}次`; |
|
|
|
switch ( step.action ) { |
|
|
|
case 'HeatingStart': return `加热 ${step.temperature}℃`; |
|
|
|
case 'HeatingStop': return `停止加热`; |
|
|
|
case 'TempRiseWait' : return `等待温度上升至 ${step.temperature}℃`; |
|
|
|
case 'TempDownWait' : return `等待温度下降至 ${step.temperature}℃`; |
|
|
|
case 'TempKeepDelay' : return `恒温保持 ${step.duration}分钟`; |
|
|
|
case 'Pump' : return `加液 ${acidMap[step.type]} ${step.amount}ml`; |
|
|
|
case 'Shaking' : return `摇匀 ${step.count}次`; |
|
|
|
case 'Delay' : return `延时等待 ${step.duration}分钟`; |
|
|
|
case 'MoveToHeatingPlate' : return `转移至加热区`; |
|
|
|
case 'MoveToLiquidPlate' : return `转移至加液区`; |
|
|
|
case 'TakeOut' : return `取出`; |
|
|
|
case 'Checking' : return `检查`; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
@ -124,12 +155,12 @@ function actionCreate() { |
|
|
|
edit.value.id = null; |
|
|
|
edit.value.data = {}; |
|
|
|
edit.value.data.name = '未命名预设'; |
|
|
|
edit.value.data.steps = [{action:'Heating',temperature:270,duration:15,type:'sulfuric',amount:1000,shake:5}]; |
|
|
|
edit.value.data.steps = [{}]; |
|
|
|
} |
|
|
|
|
|
|
|
// 添加步骤 |
|
|
|
function actionStepAdd() { |
|
|
|
edit.value.data.steps.push({action:'Heating',temperature:270,duration:15,type:'sulfuric',amount:1000,shake:5}); |
|
|
|
edit.value.data.steps.push({}); |
|
|
|
} |
|
|
|
|
|
|
|
// 删除步骤 |
|
|
|