From 1e465fcab874dd5bf60fdff4151a3742b5a755b0 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期四, 17 十月 2024 14:21:12 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/http.js | 159 ++++++++++++++++++++++++++++++++++++++++------------ 1 files changed, 122 insertions(+), 37 deletions(-) diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js index 7cdea35..663e064 100644 --- a/zy-acs-flow/src/map/http.js +++ b/zy-acs-flow/src/map/http.js @@ -1,61 +1,146 @@ import request from '@/utils/request'; import * as Tool from './tool'; +import { DEVICE_TYPE } from './constants'; let notify; +let mapContainer; export function setNotify(param) { notify = param; } +export function setMapContainer(param) { + mapContainer = param; +} + export const fetchMapData = async (zoneId) => { Tool.clearMapData(); - await request.post('/map/data', { + await request.post('/map/data/fetch', { zoneId: zoneId }, { - headers: { - 'Content-Type': 'application/x-www-form-urlencoded' - } + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).then((res) => { - const { code, msg, data } = res.data; + const { code, msg, data: { common, point } } = res.data; if (code === 200) { - const mapItemList = eval(data); + const mapItemList = [...eval(common), ...eval(point)]; + mapItemList.forEach(item => { + if (item.type !== DEVICE_TYPE.AGV) { + const sprite = Tool.generateSprite(item.type); + if (sprite) { + Tool.initSprite(sprite, item.type); + // data + sprite.data.uuid = item.uuid; + sprite.data.no = item.no; + + // dynamical data + Object.assign(sprite.data, item.property); + + // graph + setTimeout(() => { + sprite.position.set(item.positionX, item.positionY); + sprite.scale.set(item.scaleX, item.scaleY); + sprite.rotation = Tool.rotationParseNum(item.rotation); + + // support + switch (item.type) { + case DEVICE_TYPE.POINT: + sprite.tint = 0xCACDCF; + sprite.scale.set(0.65, 0.65); + break + default: + break + } + }, 50); + + mapContainer.addChild(sprite); + } + } + }) } else { - notify(msg, "error") + notify.error(msg); } - - // mapItemList.forEach(item => { - // if (!( - // item.type === SENSOR_TYPE.SHUTTLE - // || item.type === SENSOR_TYPE.AGV - // )) { - // const sprite = generateSprite(item.type); - // if (sprite) { - // initSprite(sprite, item.type); - // // data - // sprite.data.uuid = item.uuid; - // sprite.data.no = item.no; - - // // dynamical data - // Object.assign(sprite.data, item.property); - - // showSheflType(sprite); - // // graph - // setTimeout(() => { - // sprite.position.set(item.positionX, item.positionY); - // sprite.scale.set(item.scaleX, item.scaleY); - // sprite.rotation = rotationParseNum(item.rotation); - // }, 50); - - // mapContainer.addChild(sprite); - // } - // } - // }) - }).catch((error) => { - notify(error.message, "error") + notify.error(error.message); console.error(error.message); }) } +export const saveMapData = async (zone) => { + if (!mapContainer) { + return; + } + const sprites = []; + mapContainer.children.forEach(child => { + if (child.data?.uuid) { + const { type, uuid, no, ...property } = child.data; + if (type !== DEVICE_TYPE.AGV && type !== DEVICE_TYPE.POINT) { + sprites.push({ + // graph + positionX: child.position.x, + positionY: child.position.y, + scaleX: child.scale.x, + scaleY: child.scale.y, + rotation: Tool.rotationToNum(child.rotation), + // data + type: type, + uuid: uuid, + no: no, + property: property, + }) + } + } + }) + await request.post('/map/data/save', { + zoneId: zone, + itemList: sprites + }).then(res => { + const { code, msg, data } = res.data; + if (code === 200) { + notify.success(msg); + } else { + notify.error(msg); + } + }).catch((error) => { + notify.error(error.message); + console.error(error.message); + }) +} + +export const getLocGroup = async (row, bay, callback) => { + await request.post('/map/shelf/group', { + row: row, + bay: bay + }, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }).then((res) => { + const { code, msg, data } = res.data; + if (code === 200) { + callback(data) + } else { + notify.error(msg); + } + }).catch((error) => { + notify.error(error.message); + console.error(error.message); + }) +} + +export const getAgvInfo = async (agvNo, callback) => { + await request.post('/map/agv/info', { + agvNo: agvNo, + }, { + headers: { 'Content-Type': 'application/x-www-form-urlencoded' } + }).then((res) => { + const { code, msg, data } = res.data; + if (code === 200) { + callback(data) + } else { + notify.error(msg); + } + }).catch((error) => { + notify.error(error.message); + console.error(error.message); + }) +} -- Gitblit v1.9.1