|
|
@ -1,7 +1,6 @@ |
|
|
|
<script setup lang="ts"> |
|
|
|
import { list as listMatrix } from 'apis/matrix' |
|
|
|
import { getListByMatrixId, update } from 'apis/matrixCraft' |
|
|
|
import { getDeviceStatus, getSprayStatus } from 'apis/system' |
|
|
|
import route from 'assets/images/route.png' |
|
|
|
import route_active from 'assets/images/route_active.png' |
|
|
|
import route_horizontal_active from 'assets/images/route_horizontal2.png' |
|
|
@ -14,7 +13,7 @@ import { FtMessage } from 'libs/message' |
|
|
|
import { socket } from 'libs/socket' |
|
|
|
import { sendControl } from 'libs/utils' |
|
|
|
import { useSystemStore } from 'stores/useSystemStore' |
|
|
|
import { nextTick, onMounted, ref } from 'vue' |
|
|
|
import { nextTick, onMounted, onUnmounted, ref } from 'vue' |
|
|
|
|
|
|
|
const systemStore = useSystemStore() |
|
|
|
|
|
|
@ -48,44 +47,237 @@ const submitParam = async () => { |
|
|
|
|
|
|
|
const infoVisible = ref(false) |
|
|
|
|
|
|
|
const data = { |
|
|
|
cmdId: '1742650987568', |
|
|
|
cmdCode: 'matrix_spray_start', |
|
|
|
sprayTaskSprayedList: [ |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 20, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 23, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 23, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 26, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 26, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 29, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 29, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 32, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 32, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 35, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 35, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 38, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 38, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 41, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 41, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 44, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 44, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 21, |
|
|
|
y: 47, |
|
|
|
}, |
|
|
|
}, |
|
|
|
{ |
|
|
|
index: 0, |
|
|
|
number: 1, |
|
|
|
sprayedPoints: { |
|
|
|
x: 4, |
|
|
|
y: 47, |
|
|
|
}, |
|
|
|
}, |
|
|
|
], |
|
|
|
sprayParams: { |
|
|
|
matrixId: 1, |
|
|
|
matrixCraftId: 1, |
|
|
|
matrixPathType: 'horizontal', |
|
|
|
motorZHeight: 60, |
|
|
|
gasPressure: 3, |
|
|
|
volume: 20, |
|
|
|
highVoltage: true, |
|
|
|
highVoltageValue: 4000, |
|
|
|
spacing: 3, |
|
|
|
movingSpeed: 10, |
|
|
|
times: 2, |
|
|
|
position: [ |
|
|
|
{ |
|
|
|
select: true, |
|
|
|
x1: 4, |
|
|
|
y1: 20, |
|
|
|
x2: 21, |
|
|
|
y2: 60, |
|
|
|
index: 0, |
|
|
|
}, |
|
|
|
], |
|
|
|
id: 1, |
|
|
|
createTime: '2025-03-18 19:33:46', |
|
|
|
updateTime: '2025-03-18 19:33:46', |
|
|
|
name: '工艺1', |
|
|
|
createUser: null, |
|
|
|
}, |
|
|
|
} |
|
|
|
onMounted(async () => { |
|
|
|
socket.init(sprayPointReceiveMessage, 'spray_point') |
|
|
|
socket.init(finishMessage, 'cmd_response') |
|
|
|
await getMatrixList() |
|
|
|
console.log(222, systemStore.systemStatus.spraying) |
|
|
|
await getDeviceStatus().then((res: any) => { |
|
|
|
systemStore.updateSystemStatus(res) |
|
|
|
if (systemStore.systemStatus.spraying) { |
|
|
|
getSpraying() |
|
|
|
} |
|
|
|
}) |
|
|
|
// await getDeviceStatus().then((res: any) => { |
|
|
|
// systemStore.updateSystemStatus(res) |
|
|
|
// if (systemStore.systemStatus.spraying) { |
|
|
|
// getSpraying() |
|
|
|
// } |
|
|
|
// }) |
|
|
|
getSpraying() |
|
|
|
}) |
|
|
|
|
|
|
|
const isActive = true |
|
|
|
|
|
|
|
onUnmounted(() => { |
|
|
|
socket.unregisterCallback(sprayPointReceiveMessage, 'spray_point') |
|
|
|
socket.unregisterCallback(finishMessage, 'cmd_response') |
|
|
|
// isActive = false |
|
|
|
}) |
|
|
|
|
|
|
|
const getSpraying = async () => { |
|
|
|
const res = await getSprayStatus() |
|
|
|
const res: any = data |
|
|
|
// const res: any = await getSprayStatus() |
|
|
|
const sprayTaskSprayedList = res.sprayTaskSprayedList |
|
|
|
form.value = res.sprayParams |
|
|
|
cmdId = res.cmdId |
|
|
|
form.value.position = [{ select: false }, { select: false }, { select: false }, { select: false }] |
|
|
|
sprayTaskSprayedList.forEach((item: any) => { |
|
|
|
form.value.position[item.index] = { |
|
|
|
select: true, |
|
|
|
x1: item.x1, |
|
|
|
y1: item.y1, |
|
|
|
x2: item.x2, |
|
|
|
y2: item.y2, |
|
|
|
index: item.index, |
|
|
|
} |
|
|
|
form.value = { |
|
|
|
...res.sprayParams, |
|
|
|
position: [{ select: false }, { select: false }, { select: false }, { select: false }], |
|
|
|
} |
|
|
|
res.sprayParams.position.forEach((p: any) => { |
|
|
|
form.value.position[p.index] = p |
|
|
|
nextTick(() => { |
|
|
|
sprayRefs.value[item.index].updateSelection(item.x1 * 5, item.y1 * 5, (item.x1 + item.x2) * 5, (item.y1 + item.y2) * 5) |
|
|
|
console.log('x', p.x1 * 5) |
|
|
|
console.log('y', p.y1 * 5) |
|
|
|
console.log('width', (p.x1 + p.x2) * 5) |
|
|
|
console.log('height', (p.y1 + p.y2) * 5) |
|
|
|
sprayRefs.value[p.index].updateSelection(p.x1 * 5, p.y1 * 5, (p.x2 - p.x1) * 5, (p.y2 - p.y1) * 5) |
|
|
|
}) |
|
|
|
sprayTaskSprayedList.forEach((task: any) => { |
|
|
|
nextTick(() => { |
|
|
|
drawLine(task.index, { x: task.sprayedPoints.x * 5, y: task.sprayedPoints.y * 5 }, task.number) |
|
|
|
}) |
|
|
|
}) |
|
|
|
sprayTaskSprayedList.forEach((task: any) => { |
|
|
|
nextTick(() => { |
|
|
|
drawLine(task.index, { x: task.sprayedPoints.x * 5, y: task.sprayedPoints.y * 5 }, task.number) |
|
|
|
}) |
|
|
|
// socket.init(sprayPointReceiveMessage, 'spray_point') |
|
|
|
// socket.init(finishMessage, 'cmd_response') |
|
|
|
}) |
|
|
|
} |
|
|
|
|
|
|
@ -184,9 +376,9 @@ console.log(currentSpeed) |
|
|
|
const colors = ['#FAF0E6', '#191970', '#2E8B57', '#C0FF3E', '#8B658B', '#EE7942', '#EE1289', '#FF00FF', '#C6E2FF', '#556B2F', '#00BFFF', '#7B68EE'] |
|
|
|
const sprayPointReceiveMessage = (data: any) => { |
|
|
|
if (data.cmdId === cmdId) { |
|
|
|
const { currentPoint, nextPoint, index, number } = data |
|
|
|
const { currentPoint, index, number } = data |
|
|
|
drawLine(index, { x: currentPoint.x * 5, y: currentPoint.y * 5 }, number) |
|
|
|
drawLine(index, { x: nextPoint.x * 5, y: nextPoint.y * 5 }, number) |
|
|
|
// drawLine(index, { x: nextPoint.x * 5, y: nextPoint.y * 5 }, number) |
|
|
|
} |
|
|
|
|
|
|
|
// if (poll) { |
|
|
@ -231,13 +423,17 @@ const finishMessage = (data: any) => { |
|
|
|
} |
|
|
|
|
|
|
|
const drawLine = async (index: number, point: { x: number, y: number }, number: number) => { |
|
|
|
console.log('drawLine', sprayRefs.value[index], index, point, number) |
|
|
|
await nextTick(() => { |
|
|
|
if (!sprayRefs.value[index].hasLine(number)) { |
|
|
|
if (!isActive) { |
|
|
|
return |
|
|
|
} |
|
|
|
|
|
|
|
if (!(sprayRefs.value[index].hasLine(number))) { |
|
|
|
sprayRefs.value[index].addLine(colors[number]) |
|
|
|
} |
|
|
|
sprayRefs.value[index].updateLine(point, number, colors[number]) |
|
|
|
}) |
|
|
|
console.log('drawLine', point) |
|
|
|
sprayRefs.value[index].updateLine(point, number) |
|
|
|
} |
|
|
|
|
|
|
|
const pauseWork = async () => { |
|
|
|