import request from '@/utils/request'; import * as Tool from './tool'; import { DEVICE_TYPE } from './constants'; let notify; export function setNotify(param) { notify = param; } export const fetchMapData = async (zoneId) => { Tool.clearMapData(); await request.post('/map/data/fetch', { zoneId: zoneId }, { headers: { 'Content-Type': 'application/x-www-form-urlencoded' } }).then((res) => { const { code, msg, data } = res.data; if (code === 200) { const mapItemList = eval(data); } // 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(error.message); console.error(error.message); }) } export const saveMapData = async (zone, mapContainer) => { 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); }) }