From cd1ecbca4881ba9d19858562f724aac3d152b901 Mon Sep 17 00:00:00 2001 From: jihongshun <1151753686@qq.com> Date: 星期一, 25 八月 2025 17:23:38 +0800 Subject: [PATCH] 树结构更改逻辑算法 --- src/utils/components/init-map.vue | 50 +++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 39 insertions(+), 11 deletions(-) diff --git a/src/utils/components/init-map.vue b/src/utils/components/init-map.vue index 0ebe244..dcbabc5 100644 --- a/src/utils/components/init-map.vue +++ b/src/utils/components/init-map.vue @@ -45,7 +45,7 @@ <div class="cesiumContent"> <div class="flyAction"> <div class="actionName">{{currentAction ?currentAction.type :'' }}</div> - <i class="el-icon-delete" /> + <i class="el-icon-delete" @click="deleteAction(chooseItem)" /> </div> <div class="flayDataAll"> <div class="flyData"> @@ -198,7 +198,7 @@ let pois = [globalon, globalat,0] let cameraVideo let ScopeElement; //鍏夎酱銆佽棰� -let preVideoScopePrimitiveArrTie = []; +// let preVideoScopePrimitiveArrTie = []; let scratchSetViewMatrix3 = new Cesium.Matrix3(); let chooseId // let pois = [0, 0,0] @@ -269,7 +269,8 @@ newTakeVideo: '', // 缂栬緫鏃剁殑鏂版暟鎹� isEditingVideo: false, // 鎺у埗鏄惁澶勪簬缂栬緫鐘舵�� actionCounter:0, - currentAction:null + currentAction:null, + preVideoScopePrimitiveArrTie:[] } }, mounted(){ @@ -941,6 +942,7 @@ } }) const result = Object.keys(grouped).map((key, idx) => { + console.log(group) const group = grouped[key]; const positionGround = group.groundPoiId.getValue(Cesium.JulianDate.now()) const positionAerialPo = group.aerialPoiId.getValue(Cesium.JulianDate.now()) @@ -1063,8 +1065,8 @@ pmObj.name = data.name; pmObj.primitive = cameraVideo; viewerM.scene.primitives.add(cameraVideo); - preVideoScopePrimitiveArrTie.push(pmObj); - preVideoScopePrimitiveArrTie.map((item)=>{ + this.preVideoScopePrimitiveArrTie.push(pmObj); + this.preVideoScopePrimitiveArrTie.map((item)=>{ if(item.id != chooseId){ item.primitive.show = false } @@ -1157,7 +1159,7 @@ document.getElementById('cammoveResultCon').innerHTML = camResult; // 璁$畻璺濈锛堝崟浣嶏細绫筹級 const distanceBetween = Cesium.Cartesian3.distance(point1, point2) - preVideoScopePrimitiveArrTie.map((item)=>{ + this.preVideoScopePrimitiveArrTie.map((item)=>{ if(item.id == chooseId){ let obj = this.updateSZScope(Cesium.Math.toDegrees(position.longitude),Cesium.Math.toDegrees(position.latitude),position.height,heading,pitch,roll,this.zoomRatio,distanceBetween) item.primitive.inverseViewMatrix = obj.M @@ -1241,18 +1243,19 @@ DealVisualCone(data,node){ this.rowData = data console.log(data) - this.pointGround = { + console.log(this.preVideoScopePrimitiveArrTie) + this.pointFly = { lon:data.children[0].longitude, lat:data.children[0].latitude, height:data.children[0].height } - this.pointFly = { + this.pointGround = { lon:data.longitude, lat:data.latitude, height:data.height } if(data.children && data.children?.length > 0) { - preVideoScopePrimitiveArrTie.map((item)=>{ + this.preVideoScopePrimitiveArrTie.map((item)=>{ if(item.name != data.children[0].label){ item.primitive.show = false }else{ @@ -1260,7 +1263,7 @@ } }) }else { - preVideoScopePrimitiveArrTie.map((item)=>{ + this.preVideoScopePrimitiveArrTie.map((item)=>{ if(item.name != data.label){ item.primitive.show = false }else { @@ -1283,6 +1286,20 @@ }else if(action.type == '缁撴潫褰曞儚'){ } }, + deleteAction(item){ + console.log(item.children[0].actions) + if(!this.currentAction) return; + console.log(this.currentAction) + const point = this.currentAction.point; + // 浠� point.actions 涓垹闄� + const index = item.children[0].actions.findIndex(a => a.id === this.currentAction.id); + if(index !== -1){ + item.children[0].actions.splice(index, 1); + } + + this.$message.success("宸插垹闄ゆ搷浣�"); + this.currentAction = null; + }, changeTime(val) { this.time += val; if (this.time < 0) this.time = 0; // 鏈�灏忓�奸檺鍒� @@ -1303,25 +1320,36 @@ this.takePhoto = this.newTakePhoto; // 鐐瑰嚮瀵瑰彿鏃讹紝鏇存柊鏁版嵁 this.isEditingPhoto = false; // 缁撴潫缂栬緫 this.currentAction.extra.value = this.newTakePhoto + window.addEventListener("keydown", this.onKeyDown); + window.addEventListener("keyup", this.onKeyUp); }, cancelEditing() { this.newTakePhoto = this.takePhoto; // 鐐瑰嚮鍙栨秷鏃讹紝鎭㈠鍘熸暟鎹� this.isEditingPhoto = false; // 缁撴潫缂栬緫 + window.addEventListener("keydown", this.onKeyDown); + window.addEventListener("keyup", this.onKeyUp); }, startEditingVideo() { this.newTakeVideo = this.takeVideo; // 杩涘叆缂栬緫鏃讹紝淇濆瓨褰撳墠鐨勫�� this.isEditingVideo = true; + window.removeEventListener("keydown", this.onKeyDown); + window.removeEventListener("keyup", this.onKeyUp); }, validateVideoInput() { this.takeVideo = this.newTakeVideo; // 鐐瑰嚮瀵瑰彿鏃讹紝鏇存柊鏁版嵁 this.isEditingVideo = false; // 缁撴潫缂栬緫 this.currentAction.extra.value = this.newTakeVideo + window.addEventListener("keydown", this.onKeyDown); + window.addEventListener("keyup", this.onKeyUp); }, cancelVideoEditing() { this.newTakeVideo = this.takeVideo; // 鐐瑰嚮鍙栨秷鏃讹紝鎭㈠鍘熸暟鎹� this.isEditingVideo = false; // 缁撴潫缂栬緫 + window.addEventListener("keydown", this.onKeyDown); + window.addEventListener("keyup", this.onKeyUp); }, doAction(point, type){ + console.log(point) this.actionCounter++; let action = { id: this.actionCounter, @@ -1338,7 +1366,7 @@ action.extra.value = 'stopVideo' } console.log(action) - point.actions.push(action); + point.children[0].actions.push(action); console.log(point) this.$emit('dealAction',point) this.time = 10 -- Gitblit v1.9.3