From f03ea598d39abceac4eeb5f3a10b1fe7dd706b2c Mon Sep 17 00:00:00 2001
From: jihongshun <1151753686@qq.com>
Date: 星期五, 25 七月 2025 16:48:31 +0800
Subject: [PATCH] 光轴

---
 src/views/system/device/components/deviceDialog.vue |   27 ++++++++++++++++++---------
 1 files changed, 18 insertions(+), 9 deletions(-)

diff --git a/src/views/system/device/components/deviceDialog.vue b/src/views/system/device/components/deviceDialog.vue
index f08cfae..659407b 100644
--- a/src/views/system/device/components/deviceDialog.vue
+++ b/src/views/system/device/components/deviceDialog.vue
@@ -20,6 +20,9 @@
             <el-input v-model="form.face" placeholder="璇疯緭鍏ユ湞鍚�"  style="width:90%;"/>
             <i class="el-icon-map-location" @click="gettiles3dCam" title="棰勮"></i>
           </el-form-item>
+          <el-form-item label="娴锋嫈楂樺害" prop="altitude">
+            <el-input v-model="form.altitude" placeholder="璇疯緭鍏ユ捣鎷旈珮搴�" />
+          </el-form-item>
         </el-form>
       </template>
       <template slot="cesium">
@@ -74,19 +77,25 @@
       this.resetForm("form");
 
       if (ids) {
+        this.getModel()
         // 缂栬緫
         this.$api.detail('/tower/device', ids).then(res => {
+          console.log(res)
           this.form = res.data
           this.open = true
           this.$nextTick(() => {
+            console.log(this.form)
             this.$refs.cesiumMapSelctPoint.showPickPoint({
               longitude: +this.form.longitude,
               latitude: +this.form.latitude,
-              altitude: +this.form.altitude,
+              deviceHeight: +this.form.deviceHeight,
             })
+            console.log(this.modelListData)
             let url = this.modelListData.filter(item=>item.id == this.form.modelId)[0].modelRoute
+            console.log(url)
             this.modelUrl = url
-            const position = Cesium.Cartesian3.fromDegrees(this.form.longitude, this.form.latitude, this.form.altitude);
+            const position = Cesium.Cartesian3.fromDegrees(this.form.longitude, this.form.latitude, this.form.deviceHeight);
+            console.log(position)
             // 璁剧疆妯″瀷鏂瑰悜锛堝彲閫夛級
             let model = viewer.entities.getById("MyModel");
             const heading = Cesium.Math.toRadians(this.form.face); // 鏈濅笢鍗楁柟鍚�
@@ -105,7 +114,6 @@
                 orientation: orientation,
                 model: {
                   uri:this.modelUrl, // 鏇挎崲鎴愪綘鐨勬ā鍨嬭矾寰�
-                  scale: 1000,
                 },
               });
               viewer.flyTo(entity)
@@ -123,20 +131,22 @@
       }
     },
     handleSelectAddress(data) {
+      console.log(data)
       this.$set(this.form, 'longitude', data.longitude)
       this.$set(this.form, 'latitude', data.latitude)
-      this.$set(this.form, 'altitude', data.altitude)
+      this.$set(this.form, 'deviceHeight', data.altitude)
       this.$refs.form.validateField('longitude')
       this.$refs.form.validateField('latitude')
-      this.$refs.form.validateField('altitude')
+      this.$refs.form.validateField('deviceHeight')
     },
     submitForm() {
       this.$refs["form"].validate(valid => {
         console.log(this.form)
         this.form.longitude = Number(this.form.longitude)
         this.form.latitude = Number(this.form.latitude)
-        this.form.altitude = Number(this.form.altitude)
+        this.form.deviceHeight = Number(this.form.deviceHeight)
         this.form.face = Number(this.form.face)
+        this.form.altitude = Number(this.form.altitude) || 0
         if (valid) {
           this.$api.save('tower/device/', 'id', Object.assign({}, this.form)).then(res => {
             this.form = {}
@@ -179,13 +189,13 @@
         this.$message.error("璇疯緭鍏ョ含搴�");
         return;
       }
-      if (!this.form.altitude) {
+      if (!this.form.deviceHeight) {
         this.$message.error("璇疯緭鍏ラ珮搴�");
         return;
       }
       //鍔ㄦ�佺粡绾害鏈濆悜 鍔犺浇妯″瀷浣嶇疆棰勮
       // const position = Cesium.Cartesian3.fromDegrees(0, 0, 0);
-      const position = Cesium.Cartesian3.fromDegrees(this.form.longitude, this.form.latitude, this.form.altitude);
+      const position = Cesium.Cartesian3.fromDegrees(this.form.longitude, this.form.latitude, this.form.deviceHeight);
       // 璁剧疆妯″瀷鏂瑰悜锛堝彲閫夛級
       // const heading = Cesium.Math.toRadians(135); // 鏈濅笢鍗楁柟鍚�
       let model = viewer.entities.getById("MyModel");
@@ -205,7 +215,6 @@
           orientation: orientation,
           model: {
             uri:  this.modelUrl, // 鏇挎崲鎴愪綘鐨勬ā鍨嬭矾寰�
-            scale: 1000,
           },
         });
         viewer.flyTo(entity)

--
Gitblit v1.9.3