From e9a4418c14ef68fb454300b092c413e8df259ec2 Mon Sep 17 00:00:00 2001 From: Junjie <xjj@123> Date: 星期六, 13 四月 2024 11:50:56 +0800 Subject: [PATCH] # --- zy-asrs-flow/src/pages/map/utils.js | 93 ++++++++++++++++++++-------------------------- 1 files changed, 40 insertions(+), 53 deletions(-) diff --git a/zy-asrs-flow/src/pages/map/utils.js b/zy-asrs-flow/src/pages/map/utils.js index bbf26ab..75532e5 100644 --- a/zy-asrs-flow/src/pages/map/utils.js +++ b/zy-asrs-flow/src/pages/map/utils.js @@ -6,6 +6,7 @@ import agv from '/public/img/map/agv.svg' import shelf from '/public/img/map/shelf.png' +import conveyor from '/public/img/map/conveyor.png' import point from '/public/img/map/point.svg' import shuttle from '/public/img/map/shuttle.svg' @@ -37,12 +38,15 @@ export const SENSOR_TYPE = Object.freeze({ SHELF: "SHELF", SHUTTLE: "SHUTTLE", + LIFT: "LIFT", + CONVEYOR: "CONVEYOR", POINT: "POINT", AGV: "AGV", }) export const SENSOR_ZINDEX = Object.freeze({ SHELF: 1, + CONVEYOR: 1, POINT: 1, TRAVEL_PATH: 80, SHUTTLE: 100, @@ -52,7 +56,9 @@ export const SHELF_TYPE = Object.freeze({ STORE: 0, TRACK: 3, - DISABLE: 1, + LIFT: 67, + CHARGE: 5, + DISABLE: -1, }) export const NOTIFY_TYPE = Object.freeze({ @@ -91,6 +97,12 @@ sprite.width = 60; sprite.height = 60; sprite.zIndex = SENSOR_ZINDEX.SHELF; + break; + case SENSOR_TYPE.CONVEYOR: + sprite = new PIXI.Sprite(PIXI.Texture.from(conveyor, { resourceOptions: { scale: 5 } })); + sprite.width = 112; + sprite.height = 63; + sprite.zIndex = SENSOR_ZINDEX.CONVEYOR; break; case SENSOR_TYPE.POINT: sprite = new PIXI.Sprite(PIXI.Texture.from(point, { resourceOptions: { scale: 5 } })); @@ -309,7 +321,7 @@ return } const { width, height } = sprite; - const scale = sprite.scale.x; + const scale = sprite?.scale.x; const sideLen = (Math.max(width, height) + 10) * scale; const scaledWidth = sideLen * (1 / scale); const scaledHeight = sideLen * (1 / scale); @@ -335,7 +347,6 @@ } export const copySprite = (sprite) => { - // const copiedSprite = new PIXI.Sprite(sprite.texture); const copiedSprite = generateSprite(sprite.data.type) initSprite(copiedSprite); copiedSprite.position.set(sprite.position.x, sprite.position.y); @@ -391,42 +402,6 @@ return mapContainer?.children?.find(child => child?.data?.uuid === uuid); } -export const sensorTypeSelectOptions = (intl) => { - let options = []; - Object.entries(SENSOR_TYPE).forEach(([key, value]) => { - switch (key) { - case SENSOR_TYPE.SHELF: - options.push({ - value: value, - label: intl.formatMessage({ id: 'map.sensor.type.shelf', defaultMessage: '璐ф灦' }) - }) - break; - case SENSOR_TYPE.SHUTTLE: - options.push({ - value: value, - label: intl.formatMessage({ id: 'map.sensor.type.shuttle', defaultMessage: '绌挎杞�' }) - }) - break; - case SENSOR_TYPE.AGV: - options.push({ - value: value, - label: intl.formatMessage({ id: 'map.sensor.type.agv', defaultMessage: '鏃犱汉灏忚溅' }) - }) - break; - case SENSOR_TYPE.POINT: - options.push({ - value: value, - label: intl.formatMessage({ id: 'map.sensor.type.point', defaultMessage: '瀹氫綅鐐�' }) - }) - break; - default: - break; - } - - }) - return options; -} - export const fetchMapFloor = async () => { const res = await Http.doPost('api/map/floor/list'); if (res.code === 200) { @@ -457,9 +432,11 @@ showSheflType(sprite); // graph - sprite.position.set(item.positionX, item.positionY); - sprite.scale.set(item.scaleX, item.scaleY); - sprite.rotation = rotationParseNum(item.rotation); + setTimeout(() => { + sprite.position.set(item.positionX, item.positionY); + sprite.scale.set(item.scaleX, item.scaleY); + sprite.rotation = rotationParseNum(item.rotation); + }, 50); mapContainer.addChild(sprite); } @@ -578,6 +555,12 @@ case SHELF_TYPE.TRACK: showColor = '#faf6e9'; break; + case SHELF_TYPE.LIFT: + showColor = '#EBDEF0'; + break; + case SHELF_TYPE.CHARGE: + showColor = '#D4EFDF'; + break; case SHELF_TYPE.DISABLE: showColor = '#ffc8c8'; break; @@ -631,30 +614,32 @@ // shuttleVo for (const shuttleVo of mapVo.shuttleVos) { // path - drawTravelPath(shuttleVo.travelPath, shuttleVo.shuttleNo, curFloor); + drawTravelPath(shuttleVo, curFloor); // shuttle - showShuttle(shuttleVo.shuttleNo, shuttleVo.curLocNo, curFloor, setCurSPrite); + showShuttle(shuttleVo, curFloor, setCurSPrite); } } -export const drawTravelPath = (path, shuttleNo, curFloor) => { +export const drawTravelPath = (shuttleVo, curFloor) => { + const { shuttleNo, curLocNo, travelPath: path } = shuttleVo; if (!mapContainer) { return; } const pathLineName = 'preTravelPath-' + shuttleNo; let pathLine = mapContainer.getChildByName(pathLineName); - if (pathLine) mapContainer.removeChild(pathLine); + if (pathLine) { + mapContainer.removeChild(pathLine); + } pathLine = new PIXI.Graphics(); pathLine.name = pathLineName; - pathLine.lineStyle(3 * (1 / mapContainer.scale.x), 0x3498db, 1); + pathLine.lineStyle(3 * (1 / mapContainer.scale.x), 0x3498db, 0.8); pathLine.zIndex = SENSOR_ZINDEX.TRAVEL_PATH; let firstNode = true; - for (let i = 0; i < path.length; i++) { + for (let i = Math.max(0, path.indexOf(curLocNo)); i < path.length; i++) { const { row, bay, lev } = parseLocNo(path[i]); if (Number(lev) !== curFloor) { continue } const shelf = querySprite(SENSOR_TYPE.SHELF, row + '-' + bay); - if (!shelf) { continue }; let position = shelf.position; let x = position.x; @@ -669,22 +654,24 @@ mapContainer.addChild(pathLine); } -export const showShuttle = (shuttleNo, curLocNo, curFloor, setCurSPrite) => { +export const showShuttle = (shuttleVo, curFloor, setCurSPrite) => { + const { shuttleNo, curLocNo } = shuttleVo; if (!curLocNo) { return } const { row, bay, lev } = parseLocNo(curLocNo); if (Number(lev) !== curFloor) { return } + + const shelf = querySprite(SENSOR_TYPE.SHELF, row + '-' + bay); + if (!shelf) { return } let shuttle = querySprite(SENSOR_TYPE.SHUTTLE, shuttleNo); if (!shuttle) { shuttle = generateSprite(SENSOR_TYPE.SHUTTLE); initSprite(shuttle, SENSOR_TYPE.SHUTTLE); shuttle.data.no = shuttleNo; + shuttle.position.set(shelf.position.x, shelf.position.y); mapContainer.addChild(shuttle); viewFeature(shuttle, setCurSPrite); } - - const shelf = querySprite(SENSOR_TYPE.SHELF, row + '-' + bay); - if (!shelf) { return } new TWEEDLE.Tween(shuttle?.position).easing(TWEEDLE.Easing.Linear.None).to({ x: shelf.position.x, -- Gitblit v1.9.1