|
|
@ -1,5 +1,4 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import { startCraft } from 'apis/crafts' |
|
|
|
import { stopTask } from 'apis/home' |
|
|
|
import AddLiquid from 'components/home/AddLiquid/index.vue' |
|
|
|
import FillSolution from 'components/home/FillSolution/index.vue' |
|
|
@ -59,39 +58,14 @@ const stopExperimentHandle = async () => { |
|
|
|
|
|
|
|
const selectCraftVisible = ref(false) |
|
|
|
const selectCraft = () => { |
|
|
|
const count = homeStore.heatAreaList.filter(item => item.selected).length |
|
|
|
if (!count) { |
|
|
|
FtMessage.warning('请选择加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
// const count = homeStore.heatAreaList.filter(item => item.selected).length |
|
|
|
// if (!count) { |
|
|
|
// FtMessage.warning('请选择加热区') |
|
|
|
// return |
|
|
|
// } |
|
|
|
selectCraftVisible.value = true |
|
|
|
} |
|
|
|
|
|
|
|
const executeCraftHandle = async () => { |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length) { |
|
|
|
FtMessage.warning('请选择加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
const craftError: string[] = [] |
|
|
|
selectedHeatAreas.forEach((item) => { |
|
|
|
const trays = systemStore.systemStatus.tray?.find(h => h.heatModuleId === item.value) |
|
|
|
if (trays?.crafts?.state !== 'READY') { |
|
|
|
craftError.push(item.label) |
|
|
|
} |
|
|
|
}) |
|
|
|
if (craftError.length) { |
|
|
|
FtMessage.warning(`${craftError.join(',')}的工艺不是等待执行的状态`) |
|
|
|
return |
|
|
|
} |
|
|
|
for (let i = 0; i < selectedHeatAreas.length; i++) { |
|
|
|
await startCraft({ |
|
|
|
heatId: selectedHeatAreas[i].value, |
|
|
|
}) |
|
|
|
} |
|
|
|
FtMessage.success('工艺已开始执行') |
|
|
|
} |
|
|
|
|
|
|
|
const setTemperatureVisible = ref(false) |
|
|
|
const currentTemperatureData = ref<{ id: string, label: string | undefined }>({ |
|
|
|
id: '', |
|
|
@ -99,10 +73,6 @@ const currentTemperatureData = ref<{ id: string, label: string | undefined }>({ |
|
|
|
}) |
|
|
|
provide('currentTemperatureData', currentTemperatureData) |
|
|
|
const setTemperature = (data: System.HeatArea) => { |
|
|
|
const craft = systemStore.systemStatus.tray?.find(item => item.heatModuleId === data.moduleCode)?.crafts |
|
|
|
if (craft?.craft) { |
|
|
|
FtMessage.warning(`当前加热区已绑定工艺`) |
|
|
|
} |
|
|
|
currentTemperatureData.value = { |
|
|
|
id: data.moduleCode, |
|
|
|
label: homeStore.heatAreaList.find(item => item.value === data.moduleCode)?.label, |
|
|
@ -112,19 +82,11 @@ const setTemperature = (data: System.HeatArea) => { |
|
|
|
|
|
|
|
const fillSolutionVisible = ref(false) |
|
|
|
const filled_solution = async () => { |
|
|
|
if (!systemStore.systemStatus.solutionModule.idle) { |
|
|
|
FtMessage.warning('加液区正在工作,请稍后操作') |
|
|
|
return |
|
|
|
} |
|
|
|
fillSolutionVisible.value = true |
|
|
|
} |
|
|
|
|
|
|
|
const addLiquidVisible = ref(false) |
|
|
|
const addLiquid = async () => { |
|
|
|
if (!systemStore.systemStatus.solutionModule.idle) { |
|
|
|
FtMessage.warning('加液区正在工作,请稍后操作') |
|
|
|
return |
|
|
|
} |
|
|
|
await ElMessageBox.confirm( |
|
|
|
'管路是否已预充?', |
|
|
|
'提示', |
|
|
@ -155,10 +117,6 @@ const addLiquid = async () => { |
|
|
|
} |
|
|
|
|
|
|
|
const door_open = async () => { |
|
|
|
if (systemStore.systemStatus.door.open) { |
|
|
|
FtMessage.warning('门已经是开启状态了') |
|
|
|
return |
|
|
|
} |
|
|
|
currentCommandId = Date.now().toString() |
|
|
|
const params = { |
|
|
|
commandId: currentCommandId, |
|
|
@ -169,10 +127,6 @@ const door_open = async () => { |
|
|
|
} |
|
|
|
|
|
|
|
const door_close = async () => { |
|
|
|
if (!systemStore.systemStatus.door.open) { |
|
|
|
FtMessage.warning('门已经是关闭状态了') |
|
|
|
return |
|
|
|
} |
|
|
|
currentCommandId = Date.now().toString() |
|
|
|
const params = { |
|
|
|
commandId: currentCommandId, |
|
|
@ -182,20 +136,11 @@ const door_close = async () => { |
|
|
|
await homeStore.sendControl(params) |
|
|
|
} |
|
|
|
|
|
|
|
const selectedHeatArea = computed(() => { |
|
|
|
return homeStore.heatAreaList.find(item => item.selected) |
|
|
|
}) |
|
|
|
|
|
|
|
const move_to_heat_area = async () => { |
|
|
|
// if (systemStore.systemStatus.solutionModule.trayStatus === 0) { |
|
|
|
// FtMessage.warning('加液区无托盘') |
|
|
|
// return |
|
|
|
// } |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length || selectedHeatAreas.length > 1) { |
|
|
|
FtMessage.warning('请选择一个加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
if (systemStore.systemStatus.heatModule.find(item => item.moduleCode === selectedHeatAreas[0].value)?.trayStatus === 1) { |
|
|
|
FtMessage.warning('所选加热区有托盘') |
|
|
|
return |
|
|
|
} |
|
|
|
await ElMessageBox.confirm( |
|
|
|
'请确认加液区是否有托盘?', |
|
|
|
'提示', |
|
|
@ -213,22 +158,13 @@ const move_to_heat_area = async () => { |
|
|
|
commandId: currentCommandId, |
|
|
|
command: 'move_to_heat_area', |
|
|
|
params: { |
|
|
|
heatId: selectedHeatAreas[0].value, |
|
|
|
heatId: selectedHeatArea.value?.value, |
|
|
|
}, |
|
|
|
} |
|
|
|
await homeStore.sendControl(params) |
|
|
|
} |
|
|
|
|
|
|
|
const move_to_solution_area = async () => { |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length || selectedHeatAreas.length > 1) { |
|
|
|
FtMessage.warning('请选择一个加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
if (systemStore.systemStatus.heatModule.find(item => item.moduleCode === selectedHeatAreas[0].value)?.trayStatus === 0) { |
|
|
|
FtMessage.warning('所选加热区无托盘') |
|
|
|
return |
|
|
|
} |
|
|
|
await ElMessageBox.confirm( |
|
|
|
'请确认加液区无托盘?', |
|
|
|
'提示', |
|
|
@ -249,200 +185,79 @@ const move_to_solution_area = async () => { |
|
|
|
commandId: currentCommandId, |
|
|
|
command: 'move_to_solution_area', |
|
|
|
params: { |
|
|
|
heatId: selectedHeatAreas[0].value, |
|
|
|
heatId: selectedHeatArea.value?.value, |
|
|
|
}, |
|
|
|
} |
|
|
|
await homeStore.sendControl(params) |
|
|
|
} |
|
|
|
|
|
|
|
const heat_start = async () => { |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length) { |
|
|
|
FtMessage.warning('请选择加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
const temperatureError: string[] = [] |
|
|
|
const heatingError: string[] = [] |
|
|
|
const fanError: string[] = [] |
|
|
|
selectedHeatAreas.forEach((item) => { |
|
|
|
const heatModule = systemStore.systemStatus.heatModule.find(h => h.moduleCode === item.value) |
|
|
|
if (!heatModule?.targetTemperature) { |
|
|
|
temperatureError.push(item.label) |
|
|
|
} |
|
|
|
if (heatModule?.heating) { |
|
|
|
heatingError.push(item.label) |
|
|
|
} |
|
|
|
if (heatModule?.fanOpen) { |
|
|
|
fanError.push(item.label) |
|
|
|
} |
|
|
|
}) |
|
|
|
if (temperatureError.length) { |
|
|
|
FtMessage.warning(`${temperatureError.join(', ')}的加热区未设置温度`) |
|
|
|
return |
|
|
|
} |
|
|
|
if (heatingError.length) { |
|
|
|
FtMessage.warning(`${heatingError.join(', ')}的加热区已经在加热了`) |
|
|
|
return |
|
|
|
} |
|
|
|
if (fanError.length) { |
|
|
|
FtMessage.warning(`${heatingError.join(', ')}的加热区正在散热中`) |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
currentCommandId = Date.now().toString() |
|
|
|
const params = { |
|
|
|
commandId: currentCommandId, |
|
|
|
command: 'heat_start', |
|
|
|
params: { |
|
|
|
heatId: selectedHeatAreas.map(item => item.value), |
|
|
|
heatId: selectedHeatArea.value?.value, |
|
|
|
}, |
|
|
|
} |
|
|
|
await homeStore.sendControl(params) |
|
|
|
} |
|
|
|
|
|
|
|
const heat_stop = async () => { |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length) { |
|
|
|
FtMessage.warning('请选择加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
const heatingError: string[] = [] |
|
|
|
selectedHeatAreas.forEach((item) => { |
|
|
|
const heatModule = systemStore.systemStatus.heatModule.find(h => h.moduleCode === item.value) |
|
|
|
if (!heatModule?.heating) { |
|
|
|
heatingError.push(item.label) |
|
|
|
} |
|
|
|
}) |
|
|
|
if (heatingError.length) { |
|
|
|
FtMessage.warning(`${heatingError.join(', ')}的加热区未在加热`) |
|
|
|
return |
|
|
|
} |
|
|
|
currentCommandId = Date.now().toString() |
|
|
|
const params = { |
|
|
|
commandId: currentCommandId, |
|
|
|
command: 'heat_stop', |
|
|
|
params: { |
|
|
|
heatId: selectedHeatAreas.map(item => item.value), |
|
|
|
heatId: selectedHeatArea.value?.value, |
|
|
|
}, |
|
|
|
} |
|
|
|
await homeStore.sendControl(params) |
|
|
|
} |
|
|
|
|
|
|
|
const fan_start = async () => { |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length) { |
|
|
|
FtMessage.warning('请选择加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
const fanError: string[] = [] |
|
|
|
const heatingError: string[] = [] |
|
|
|
selectedHeatAreas.forEach((item) => { |
|
|
|
const heatModule = systemStore.systemStatus.heatModule.find(h => h.moduleCode === item.value) |
|
|
|
if (heatModule?.fanOpen) { |
|
|
|
fanError.push(item.label) |
|
|
|
} |
|
|
|
if (heatModule?.heating) { |
|
|
|
heatingError.push(item.label) |
|
|
|
} |
|
|
|
}) |
|
|
|
if (fanError.length) { |
|
|
|
FtMessage.warning(`${fanError.join(', ')}的加热区已经在散热了`) |
|
|
|
return |
|
|
|
} |
|
|
|
if (heatingError.length) { |
|
|
|
FtMessage.warning(`${fanError.join(', ')}的加热区正在散热中`) |
|
|
|
return |
|
|
|
} |
|
|
|
currentCommandId = Date.now().toString() |
|
|
|
const params = { |
|
|
|
commandId: currentCommandId, |
|
|
|
command: 'fan_start', |
|
|
|
params: { |
|
|
|
heatId: selectedHeatAreas.map(item => item.value), |
|
|
|
heatId: selectedHeatArea.value?.value, |
|
|
|
}, |
|
|
|
} |
|
|
|
await homeStore.sendControl(params) |
|
|
|
} |
|
|
|
|
|
|
|
const fan_stop = async () => { |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length) { |
|
|
|
FtMessage.warning('请选择加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
const fanError: string[] = [] |
|
|
|
selectedHeatAreas.forEach((item) => { |
|
|
|
const heatModule = systemStore.systemStatus.heatModule.find(h => h.moduleCode === item.value) |
|
|
|
if (!heatModule?.fanOpen) { |
|
|
|
fanError.push(item.label) |
|
|
|
} |
|
|
|
}) |
|
|
|
if (fanError.length) { |
|
|
|
FtMessage.warning(`${fanError.join(', ')}的加热区没有在散热`) |
|
|
|
return |
|
|
|
} |
|
|
|
currentCommandId = Date.now().toString() |
|
|
|
const params = { |
|
|
|
commandId: currentCommandId, |
|
|
|
command: 'fan_stop', |
|
|
|
params: { |
|
|
|
heatId: selectedHeatAreas.map(item => item.value), |
|
|
|
heatId: selectedHeatArea.value?.value, |
|
|
|
}, |
|
|
|
} |
|
|
|
await homeStore.sendControl(params) |
|
|
|
} |
|
|
|
|
|
|
|
const tray_up = async () => { |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length) { |
|
|
|
FtMessage.warning('请选择加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
const trayUpError: string[] = [] |
|
|
|
selectedHeatAreas.forEach((item) => { |
|
|
|
const heatModule = systemStore.systemStatus.heatModule.find(h => h.moduleCode === item.value) |
|
|
|
if (heatModule?.trayUp === 1) { |
|
|
|
trayUpError.push(item.label) |
|
|
|
} |
|
|
|
}) |
|
|
|
if (trayUpError.length) { |
|
|
|
FtMessage.warning(`${trayUpError.join(', ')}的加热区托盘已抬起`) |
|
|
|
return |
|
|
|
} |
|
|
|
currentCommandId = Date.now().toString() |
|
|
|
const params = { |
|
|
|
commandId: currentCommandId, |
|
|
|
command: 'tray_up', |
|
|
|
params: { |
|
|
|
heatId: selectedHeatAreas.map(item => item.value), |
|
|
|
heatId: selectedHeatArea.value?.value, |
|
|
|
}, |
|
|
|
} |
|
|
|
await homeStore.sendControl(params) |
|
|
|
} |
|
|
|
|
|
|
|
const tray_down = async () => { |
|
|
|
const selectedHeatAreas = homeStore.heatAreaList.filter(item => item.selected) |
|
|
|
if (!selectedHeatAreas.length) { |
|
|
|
FtMessage.warning('请选择加热区') |
|
|
|
return |
|
|
|
} |
|
|
|
const trayUpError: string[] = [] |
|
|
|
selectedHeatAreas.forEach((item) => { |
|
|
|
const heatModule = systemStore.systemStatus.heatModule.find(h => h.moduleCode === item.value) |
|
|
|
if (heatModule?.trayUp === 0) { |
|
|
|
trayUpError.push(item.label) |
|
|
|
} |
|
|
|
}) |
|
|
|
if (trayUpError.length) { |
|
|
|
FtMessage.warning(`${trayUpError.join(', ')}的加热区托盘未抬起`) |
|
|
|
return |
|
|
|
} |
|
|
|
currentCommandId = Date.now().toString() |
|
|
|
const params = { |
|
|
|
commandId: currentCommandId, |
|
|
|
command: 'tray_down', |
|
|
|
params: { |
|
|
|
heatId: selectedHeatAreas.map(item => item.value), |
|
|
|
heatId: selectedHeatArea.value?.value, |
|
|
|
}, |
|
|
|
} |
|
|
|
await homeStore.sendControl(params) |
|
|
@ -525,13 +340,8 @@ const take_photo = async () => { |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" @click="selectCraft"> |
|
|
|
选择工艺 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="executeCraftHandle"> |
|
|
|
<el-col :span="16"> |
|
|
|
<ft-button size="large" style="width: 100%" :click-handle="selectCraft"> |
|
|
|
执行工艺 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
@ -560,12 +370,12 @@ const take_photo = async () => { |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="move_to_heat_area" :disabled="!systemStore.systemStatus.gantryArm.idle"> |
|
|
|
<ft-button size="large" :click-handle="move_to_heat_area" :disabled="!selectedHeatArea"> |
|
|
|
移至加热 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="move_to_solution_area" :disabled="!systemStore.systemStatus.gantryArm.idle"> |
|
|
|
<ft-button size="large" :click-handle="move_to_solution_area" :disabled="!selectedHeatArea"> |
|
|
|
移至加液 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
@ -577,34 +387,34 @@ const take_photo = async () => { |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="heat_start"> |
|
|
|
<ft-button size="large" :click-handle="heat_start" :disabled="!selectedHeatArea"> |
|
|
|
开始加热 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="heat_stop"> |
|
|
|
<ft-button size="large" :click-handle="heat_stop" :disabled="!selectedHeatArea"> |
|
|
|
停止加热 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="tray_up"> |
|
|
|
<ft-button size="large" :click-handle="tray_up" :disabled="!selectedHeatArea"> |
|
|
|
抬起托盘 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
|
</el-row> |
|
|
|
<el-row :gutter="10"> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="fan_start"> |
|
|
|
<ft-button size="large" :click-handle="fan_start" :disabled="!selectedHeatArea"> |
|
|
|
开始散热 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="fan_stop"> |
|
|
|
<ft-button size="large" :click-handle="fan_stop" :disabled="!selectedHeatArea"> |
|
|
|
停止散热 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
|
<el-col :span="8"> |
|
|
|
<ft-button size="large" :click-handle="tray_down"> |
|
|
|
<ft-button size="large" :click-handle="tray_down" :disabled="!selectedHeatArea"> |
|
|
|
降下托盘 |
|
|
|
</ft-button> |
|
|
|
</el-col> |
|
|
|