From 4a3cc7df86d13083bfec0339153274a23283f7c6 Mon Sep 17 00:00:00 2001 From: LiLongLong <13717757313@163.com> Date: Thu, 20 Feb 2025 20:21:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E5=B7=A5=E8=89=BA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/services/ore/oreManage.ts | 4 + src/services/task/task.ts | 10 ++ src/views/graphite/components/AddLiquid.vue | 132 +++++++++++++------------ src/views/graphite/components/CraftList.vue | 2 - src/views/graphite/components/HeatPosition.vue | 10 +- src/views/graphite/index.vue | 67 +++++++++---- 6 files changed, 139 insertions(+), 86 deletions(-) diff --git a/src/services/ore/oreManage.ts b/src/services/ore/oreManage.ts index 995a27d..ea8fb34 100644 --- a/src/services/ore/oreManage.ts +++ b/src/services/ore/oreManage.ts @@ -37,3 +37,7 @@ export function deleteCraft(ids: string) { export function getCraftList(ids: string) { return httpRequest({ url: `/api/crafts/list/${ids}`, method: "GET" }); } + +export function craftStart(params:any) { + return httpRequest({ url: `/api/crafts/start`, method: "POST", params }); +} diff --git a/src/services/task/task.ts b/src/services/task/task.ts index 0b3c863..03167d3 100644 --- a/src/services/task/task.ts +++ b/src/services/task/task.ts @@ -1,4 +1,14 @@ import httpRequest, { type BaseResponse } from "../httpRequest"; +import { addTxnRecord } from "../txn"; +import type { OperationCmd } from "../globalCmd/globalCmd"; + + export function saveTaskName(params: { name: String}) { return httpRequest>({ url: `/api/tasks/`, method: "POST", params }); } + +//批量加热 +export function startHeat(params: { command: OperationCmd; params: [] }) { + const commandId = addTxnRecord({ ...params, category: "task" }); + return httpRequest>({ url: "/api/cmd/startHeat", params, method: "POST" }); +} \ No newline at end of file diff --git a/src/views/graphite/components/AddLiquid.vue b/src/views/graphite/components/AddLiquid.vue index 735d7c1..3110363 100644 --- a/src/views/graphite/components/AddLiquid.vue +++ b/src/views/graphite/components/AddLiquid.vue @@ -1,61 +1,59 @@ diff --git a/src/views/graphite/components/HeatPosition.vue b/src/views/graphite/components/HeatPosition.vue index 36090e2..9101a23 100644 --- a/src/views/graphite/components/HeatPosition.vue +++ b/src/views/graphite/components/HeatPosition.vue @@ -49,11 +49,7 @@
120℃
@@ -114,7 +110,7 @@ const props = defineProps({ heatInfo: Object, tubeIndex: Number, }); -const emits = defineEmits(["onSelectedTray", "onSetHeatAreaTemp"]); +const emits = defineEmits(["onSelectedTray", "onSetHeatAreaTemp", 'onSelectCraft']); onMounted(() => {}); @@ -149,6 +145,7 @@ const changeVisible = () => { //选择工艺 const onChooseCraft = () => { + onSelectTray() craftVisible.value = true; }; const setTemperature = () => { @@ -170,6 +167,7 @@ const onHandleTube = (tubeInfo: any) => { //选择的工艺 const onHandleSelectedCraft = (craftData:any) => { + emits('onSelectCraft', craftData) changeVisible(); } diff --git a/src/views/graphite/index.vue b/src/views/graphite/index.vue index 000bcac..d5a33f8 100644 --- a/src/views/graphite/index.vue +++ b/src/views/graphite/index.vue @@ -6,7 +6,8 @@ :heatInfo="{ ...item, index }" :tubeIndex="index + 1" @onSelectedTray="onSelectedTray" - @onSetHeatAreaTemp = "onSetHeatAreaTemp" + @onSetHeatAreaTemp = "onSetHeatAreaTemp" + @onSelectCraft="(craftData)=>{onSelectCraft(item, craftData)}" > @@ -52,7 +53,7 @@ @click="onChooseCaft" >选择工艺 - 执行工艺 - +
{ //选中的托盘 const selectedTrayList = ref([]); const selectedTrayObj: any = {}; -const onSelectedTray = (tubeItem: any, type:string) => { - heatList.value[tubeItem.index] = tubeItem; +const onSelectedTray = (heatAreaItem: any, type:string) => { + heatList.value[heatAreaItem.index] = heatAreaItem; //取消选中,已经存在selectedTrayList中 let ids = selectedTrayList.value.map((tube:any) =>tube.id) if(type == 'isClick'){//点击加热区 - if(ids.includes(tubeItem.id)){ - tubeItem.isSelect = false; - selectedTrayList.value = selectedTrayList.value.filter((selectedItem:any) => selectedItem.id != tubeItem.id) + if(ids.includes(heatAreaItem.id)){ + heatAreaItem.isSelect = false; + selectedTrayList.value = selectedTrayList.value.filter((selectedItem:any) => selectedItem.id != heatAreaItem.id) }else{ - tubeItem.isSelect = true; - selectedTrayList.value.push(tubeItem) + heatAreaItem.isSelect = true; + selectedTrayList.value.push(heatAreaItem) } }else{ - tubeItem.isSelect = true; + heatAreaItem.isSelect = true; } heatList.value.forEach((item:any) => { - if(item.id == tubeItem.id){ - item = tubeItem + if(item.id == heatAreaItem.id){ + item = heatAreaItem } }) @@ -214,6 +216,34 @@ const onSetHeatAreaTemp = (dataInfo:any) => { selectedTrayList.value = Object.values(selectedTrayObj); } +//加热区选择的工艺 +const onSelectCraft = (item:any, craftInfo:any) => { + item.isSelect = true; + item.craftInfo = craftInfo + onSelectedTray(item,'isMove') + console.log('加热区选择的工艺===', item,craftInfo) +} +//开始执行工艺 +const onCraftStart = () => { + if (!selectedTrayList.value.length) { + ElMessage.error("请选择目标加热区"); + return; + } + //判断是否选择了工艺 + + //可能会选择多个加热区执行工艺, 批量发送指令 + selectedTrayList.value.forEach((item:any) => { + const params = { + craftId: item.craftInfo.id, + heatId: item.id + } + craftStart(params).then(res => { + ElMessage.success('执行工艺的指令已发送') + }) + }) + +} + const tubeBaseConfig = () => { //默认为16个 for (let i = 0; i < 16; i++) { @@ -234,11 +264,14 @@ const onAddLiquid = () => { //选择的工艺 const onHandleSelectedCraft = (craftData:any) => { changeVisible(); - } const onAddSolution = (data: any) => { let ids = data.map((item: any) => item.id); + //批量发送加液指令 + data.forEach((item:any) => { + onSendCmd('injectFluid', item) + }); tubeList.forEach((item: any) => { if (ids.includes(item.id)) { item.default = defaultColor; @@ -279,7 +312,7 @@ const onMoveToHeat = () => { //1、是否选择了加热区 if (!selectedTrayList.value.length) { ElMessage.error("请选择目标加热区"); - return; + return; } //2、只能选择一个加热区 if (selectedTrayList.value.length != 1) { @@ -289,7 +322,7 @@ const onMoveToHeat = () => { let selectedDataItem = selectedTrayList.value[0]; //2、判断选择的加热区是否已经有了试管架, 加热区是否有试管是通过设备上报的数据获取的。此处为mock的数据。 TODO - let heatAearStatus: any = statusStore.status?.trayStatus || graphiteMock.heatAreaStatus; + let heatAearStatus: any = statusStore.status?.heater ? statusStore.status?.heater[selectedDataItem.index].trayStatus : graphiteMock.heatAreaStatus; if (!heatAearStatus[selectedDataItem.index]) { ElMessage.error("选择的加热区已有试管架,重新选择加热区"); return; @@ -473,7 +506,7 @@ const onStartHeat = () => { } }) }) - onSendCmd("startHeat", cmdList) + // onSendCmd("startHeat", cmdList) } const onSendCmd = (command:OperationCmd,params:any)=> {