import request from '@/utils/request';
|
import * as Tool from './tool';
|
import { DEVICE_TYPE } from './constants';
|
import { HANDLE_APP_KEY } from '@/config/setting';
|
|
let notify;
|
let mapContainer;
|
|
export function setNotify(param) {
|
notify = param;
|
}
|
|
export function setMapContainer(param) {
|
mapContainer = param;
|
}
|
|
export const fetchMapData = (zoneId, setRcsStatus) => {
|
Tool.clearMapData();
|
return request.post('/map/data/fetch', {
|
zoneId: zoneId
|
}, {
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
}).then((res) => {
|
const { code, msg, data: { rcsStatus, common, point } } = res.data;
|
if (code === 200) {
|
setRcsStatus(rcsStatus);
|
const commonList = common ? eval(common) : [];
|
const pointList = point ? eval(point) : [];
|
const mapItemList = [...commonList, ...pointList];
|
|
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.scale.set(0.85, 0.85);
|
break
|
default:
|
break
|
}
|
// }, 50);
|
|
mapContainer.addChild(sprite);
|
}
|
}
|
})
|
} else {
|
notify.error(msg);
|
}
|
}).catch((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 && type !== DEVICE_TYPE.ROUTE) {
|
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 startupOrShutdown = async (callback) => {
|
try {
|
const res = await request.post('/map/startupOrShutdown');
|
const { code, msg, data } = res.data;
|
if (code === 200) {
|
if (callback) {
|
callback();
|
}
|
} 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);
|
})
|
}
|
|
export const getPointInfo = async (point, callback) => {
|
await request.post('/map/point/info', {
|
codeData: point,
|
}, {
|
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 getRouteList = async (zoneId, callback) => {
|
await request.post('/map/route/list', {
|
zoneId: zoneId,
|
}, {
|
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 handleControlAgv = async (param, callback) => {
|
await request.post('/handler/control/agv', param, {
|
headers: {
|
'appKey': HANDLE_APP_KEY
|
}
|
}).then((res) => {
|
const { code, msg, data } = res.data;
|
if (code === 200) {
|
notify.success(msg);
|
if (callback) {
|
callback(data)
|
}
|
} else {
|
notify.error(msg);
|
}
|
}).catch((error) => {
|
notify.error(error.message);
|
console.error(error.message);
|
})
|
}
|
|
export const handleRestoreAgvAll = async (param, callback) => {
|
await request.post('/handler/restore/agv', param, {
|
headers: {
|
'appKey': HANDLE_APP_KEY
|
}
|
}).then((res) => {
|
const { code, msg, data } = res.data;
|
if (code === 200) {
|
notify.success(msg);
|
if (callback) {
|
callback(data)
|
}
|
} else {
|
notify.error(msg);
|
}
|
}).catch((error) => {
|
notify.error(error.message);
|
console.error(error.message);
|
})
|
}
|
|
export const getFakeSign = async (param, callback) => {
|
await request.get('/fake/sign/get').then((res) => {
|
const { code, msg, data } = res.data;
|
if (code === 200) {
|
if (callback) {
|
callback(data)
|
}
|
} else {
|
notify.error(msg);
|
}
|
}).catch((error) => {
|
notify.error(error.message);
|
console.error(error.message);
|
})
|
}
|
|
export const setFakeSign = async (param, callback) => {
|
await request.post('/fake/sign/set', {
|
sign: param,
|
}, {
|
headers: { 'Content-Type': 'application/x-www-form-urlencoded' }
|
}).then((res) => {
|
const { code, msg, data } = res.data;
|
if (code === 200) {
|
if (data) {
|
notify.success(msg);
|
}
|
if (callback) {
|
callback(data)
|
}
|
} else {
|
notify.error(msg);
|
}
|
}).catch((error) => {
|
notify.error(error.message);
|
console.error(error.message);
|
})
|
}
|