diff --git a/src/core/manager/EntityManager.ts b/src/core/manager/EntityManager.ts
index 7fd4756..ba1e160 100644
--- a/src/core/manager/EntityManager.ts
+++ b/src/core/manager/EntityManager.ts
@@ -504,6 +504,21 @@ export default class EntityManager {
return this.___entityMap.get(linkStartPointId)
}
+ findItemByLogicXY(logicX: number, logicY: number): ItemJson | undefined {
+ if (logicX < 0 || logicY < 0) {
+ return
+ }
+ let item: ItemJson | undefined = undefined
+ this.___entityMap.forEach((value) => {
+ if (value.logicX === logicX && value.logicY === logicY) {
+ item = value
+ return
+ }
+ })
+ return item
+ }
+
+
getObjectByCanvasMouse(event: MouseEvent): Object3DLike[] {
const _domElement = this.viewport.renderer.domElement
const rect = _domElement.getBoundingClientRect()
diff --git a/src/core/script/ModelManager.ts b/src/core/script/ModelManager.ts
index 7581562..38662a6 100644
--- a/src/core/script/ModelManager.ts
+++ b/src/core/script/ModelManager.ts
@@ -81,6 +81,13 @@ export default class ModelManager implements IControls, Model {
matrix.decompose(position, new THREE.Quaternion(), new THREE.Vector3())
return position
}
+ getPositionByLogicXY(logicX: number, logicY: number): THREE.Vector3 {
+ const item = this.viewport.entityManager.findItemByLogicXY(logicX, logicY)
+ const matrix = getMatrixFromTf(item.tf)
+ const position = new THREE.Vector3()
+ matrix.decompose(position, new THREE.Quaternion(), new THREE.Vector3())
+ return position
+ }
dispose() {
this.viewport = null as any
diff --git a/src/modules/cl2/Cl23dObject.ts b/src/modules/cl2/Cl23dObject.ts
index 983aafc..5ef104f 100644
--- a/src/modules/cl2/Cl23dObject.ts
+++ b/src/modules/cl2/Cl23dObject.ts
@@ -516,8 +516,12 @@ export default class Cl23dObject extends THREE.Object3D {
if (data.id === 10010) {
const cl2: Cl2Entity = Model.getCl2("10") as Cl2Entity
cl2.addRobotTask(data)
- cl2.taskStartRun()
+ this.fn(cl2)
}
}
+ fn = _.debounce((cl2: Cl2Entity) => {
+ cl2.taskStartRun()
+ }, 2000)
+
}
diff --git a/src/modules/cl2/Cl2Entity.ts b/src/modules/cl2/Cl2Entity.ts
index 591c8a5..280ffe0 100644
--- a/src/modules/cl2/Cl2Entity.ts
+++ b/src/modules/cl2/Cl2Entity.ts
@@ -47,7 +47,7 @@ export default class Cl2Entity extends BaseEntity {
() => this.cl2Object.addRotation(moveDirection * Math.PI/2)
))
this.taskQueue.add(this.createTask('TRAVEL',
- () => this.cl2Object.addTravel(Model.getPositionByEntityId(link.id) ,Math.abs(link.Speed/1000))
+ () => this.cl2Object.addTravel(Model.getPositionByLogicXY(link.X, link.Y) ,Math.abs(link.Speed/1000))
))
startX = link.X
startY = link.Y
diff --git a/src/types/ScriptSupport.d.ts b/src/types/ScriptSupport.d.ts
index 1ef3628..e9639ab 100644
--- a/src/types/ScriptSupport.d.ts
+++ b/src/types/ScriptSupport.d.ts
@@ -1,3 +1,5 @@
+import * as THREE from "three";
+
/**
* 物流模型 API 接口
*/
@@ -14,6 +16,11 @@ declare interface Model {
getPositionByEntityId(entityId: string): Vector3IF
/**
+ * 根据逻辑坐标获取位置
+ */
+ getPositionByLogicXY(logicX: number, logicY: number): THREE.Vector3
+
+ /**
* 根据ID获取 CL2 叉车控制器
*/
getCl2(id: string): Cl2If
diff --git a/src/views/user/roles.vue b/src/views/user/roles.vue
index ce510db..f592f69 100644
--- a/src/views/user/roles.vue
+++ b/src/views/user/roles.vue
@@ -1,12 +1,127 @@
+
+
-
- roles
-
+
+
+ 查询
+ 新增
+ 删除
+
+
+
+
+
-
-
+
diff --git a/src/views/user/users.vue b/src/views/user/users.vue
index cea3ce3..599acae 100644
--- a/src/views/user/users.vue
+++ b/src/views/user/users.vue
@@ -1,12 +1,128 @@
+
+
-
- users
-
+
+
+ 查询
+ 新增
+ 删除
+
+
+
+
+
-
-
+