From bb61bc0c22ae4ef9963ca00d23b5cf0c412f26f5 Mon Sep 17 00:00:00 2001 From: luxiaotao1123 <t1341870251@163.com> Date: 星期六, 12 十月 2024 14:47:35 +0800 Subject: [PATCH] # --- zy-acs-flow/src/map/http.js | 106 ++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 73 insertions(+), 33 deletions(-) diff --git a/zy-acs-flow/src/map/http.js b/zy-acs-flow/src/map/http.js index 7cdea35..89d6129 100644 --- a/zy-acs-flow/src/map/http.js +++ b/zy-acs-flow/src/map/http.js @@ -1,61 +1,101 @@ 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' } }).then((res) => { - const { code, msg, data } = res.data; + const { code, msg, data: { data } } = res.data; if (code === 200) { const mapItemList = eval(data); + 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); + }, 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) { + 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); + }) +} -- Gitblit v1.9.1