From 048d05d57f9548ef7e476a680adc9355ef7975ab Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=A4=9C=E7=AC=99=E6=AD=8C?= <2277317060@qq.com> Date: Tue, 29 Oct 2024 17:52:09 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B94F=20agv?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/views/cs/index2.vue | 113 ++++++++++++++-------------------------- 1 file changed, 38 insertions(+), 75 deletions(-) diff --git a/src/views/cs/index2.vue b/src/views/cs/index2.vue index 9aebd3b..52f8836 100644 --- a/src/views/cs/index2.vue +++ b/src/views/cs/index2.vue @@ -101,7 +101,7 @@
+ :style="`${getLocation(i.x,i.y)}transform: rotate(${parseFloat(i.rotate )- 90}deg);`"> @@ -275,28 +275,7 @@ export default { ], hfData: [], equipmentData: [], - agvData: [ - { - x: 0, - y: 0, - isGoods: false, - }, - { - x: 0, - y: 1, - isGoods: true, - }, - { - x: 1, - y: 0, - isGoods: false, - }, - { - x: 1, - y: 1, - isGoods: true, - } - ] + agvData: [] } }, methods: { @@ -307,10 +286,39 @@ export default { let yLocation = 22 + (84 - 22) * y return ` left: ${xLocation}%;top: ${yLocation}%;` }, - getData() { - getAgvData().then(e=>{ - console.log(e) + getAgvLocation() { + let agvArr = [] + getAgvData().then(e => { + e.Data.forEach(v => { + agvArr.push({ + id: v.AgvId, + x: Math.random(), + y: Math.random(), + rotate: v.Angle, + isGoods: false, + }) + }) + this.agvData = agvArr + }) + }, + updateAGVLocation(time){ + getAgvData().then(e => { + e.Data.forEach(v => { + if(this.agvData.filter(r=>r.id===v.AgvId).length>=1){ + new TWEEN.Tween(this.agvData.find(r=>r.id===v.AgvId)).to({x: Math.random(), y: Math.random()}, time).start() + }else{ + this.agvData.push({ + id: v.AgvId, + x: Math.random(), + y: Math.random(), + rotate: v.Angle, + isGoods: false, + }) + } + }) }) + }, + getData() { getHourProductionList().then(e => { let hfArr = [] let equipmentArr = [] @@ -327,55 +335,10 @@ export default { }, mounted() { this.getData() - setInterval(() => { - this.loopIndex = (this.loopIndex + 1) % 26 - }, 1000 * 5) - let agv = [ - { - top: 22, - left: 16 - }, - { - top: 22, - left: 82 - }, - { - top: 84, - left: 4 - }, - { - top: 84, - left: 94 - }, - { - width: 12, - height: 62 - }, - { - width1: 66, - width2: 90 - } - ] - let cs = [ - [0, 0], - [10, 10], - [20, 20], - [30, 30], - [40, 40], - [50, 50], - [60, 60], - [70, 70], - [80, 80], - [90, 90], - [100, 100], - ] - let time = 10 * 1000 - setInterval(() => { - this.agvData.forEach(e => { - new TWEEN.Tween(e).to({x: Math.random(), y: Math.random()}, time).start() - }) - }, time) - + this.getAgvLocation() + setInterval(()=>{ + this.updateAGVLocation(5*1000) + },5*1000) function animate() { requestAnimationFrame(animate) TWEEN.update()