Parcourir la source

中图0906前端代码更新

lkk il y a 8 mois
Parent
commit
9e27fb5ec5
21 fichiers modifiés avec 559 ajouts et 240 suppressions
  1. 10 0
      src/api/zt/ztApi.js
  2. 11 2
      src/components/VueLayer/src/components/drag/drag.vue
  3. 25 25
      src/components/VueLayer/src/helper/helper.js
  4. 15 10
      src/components/VueLayer/src/layer.js
  5. 0 0
      src/views/ConstructionApplication3D/BenchmarkLandPriceAnalysis/BenchmarkLandPrice.js
  6. 30 3
      src/views/ConstructionApplication3D/BenchmarkLandPriceAnalysis/BenchmarkLandPrice.vue
  7. 17 4
      src/views/ConstructionApplication3D/BenchmarkLandPriceAnalysis/jzdjfxsmjg.vue
  8. 11 13
      src/views/ConstructionApplication3D/Demolition/DemolitionList.vue
  9. 0 0
      src/views/ConstructionApplication3D/Demolition/zdAnalyse.js
  10. 223 130
      src/views/ConstructionApplication3D/RSAnalysis/RSAnalysis.vue
  11. 6 2
      src/views/ConstructionApplication3D/ZBFXAnalysisinfo/ZBFXAnalysisinfo.vue
  12. 2 2
      src/views/ConstructionApplication3D/ZYAnalysisinfo/ZYAnalysisinfo.vue
  13. 1 0
      src/views/ConstructionApplication3D/billboard/billboardCheckList.vue
  14. 12 4
      src/views/ConstructionApplication3D/billboard/billboardChekInfo.vue
  15. 41 24
      src/views/ConstructionApplication3D/billboard/billboardDesign.vue
  16. 56 0
      src/views/ConstructionApplication3D/billboard/billboarddetail.vue
  17. 30 5
      src/views/ConstructionApplication3D/billboard/billboarddetailInfo.vue
  18. 0 0
      src/views/ConstructionApplication3D/projectManagement/CheckParkAnalyse.js
  19. 47 11
      src/views/ConstructionApplication3D/projectManagement/projectManagement.vue
  20. 8 2
      src/views/ConstructionApplication3D/zt.scss
  21. 14 3
      static/Config/config.js

+ 10 - 0
src/api/zt/ztApi.js

@@ -342,6 +342,16 @@ export async function updateZtProjectModelZb(data) {
 /*************************报建项目******************** end */
 
 /*************************基准地价******************** start */
+
+// 基准地价分析
+export async function getAnalyseResult(data) {
+  return request({
+    url: "/model/jzdjanalyse/getAnalyseResult",
+    method: "post",
+    data: data,
+  });
+}
+
 // 查询基准地价信息列表
 export async function listBenchmarkLandPrices(query) {
   return request({

+ 11 - 2
src/components/VueLayer/src/components/drag/drag.vue

@@ -62,6 +62,7 @@ export default {
         moveTop: 0,
         tt: {},
       },
+      oldOffset: [],
     };
   },
   props: {
@@ -166,6 +167,7 @@ export default {
       helper.clickMaskCloseAll(event, this.options.layer, this.options.id);
     },
     mini() {
+      debugger;
       //最小化窗口
       let domMinIndex = parseInt(
         document.getElementById(this.options.id).getAttribute("minindex")
@@ -186,6 +188,8 @@ export default {
           domMinIndex = iframeMinList.length - 1;
         }
       }
+      let o = document.getElementById(this.options.id + "");
+      this.oldOffset = [o.offsetLeft, o.offsetTop];
       this.addStyle = {
         overflow: "hidden",
         bottom: 0,
@@ -198,6 +202,9 @@ export default {
       this.maxMiniState = 1;
     },
     max() {
+      debugger;
+      let o = document.getElementById(this.options.id + "");
+      this.oldOffset = [o.offsetLeft, o.offsetTop];
       //最大化窗口
       let height = document.documentElement.clientHeight;
       if (height % 2 === 1) {
@@ -213,11 +220,12 @@ export default {
       this.maxMiniState = 2;
     },
     maxmini() {
+      debugger;
       //还原
       document.getElementById(this.options.id).removeAttribute("style");
       this.addStyle = {
-        left: "tpx",
-        top: "tpx",
+        left: this.oldOffset[0] + "px",
+        top: this.oldOffset[1] + "px",
         margin: "t",
       };
       this.maxMiniState = 0;
@@ -263,6 +271,7 @@ export default {
       this.resize.isResize = false;
     },
     resizeHand(event) {
+      debugger;
       //拉伸操作
       let o = document.getElementById(this.options.id + "");
       this.resize.oWidth = o.offsetWidth;

+ 25 - 25
src/components/VueLayer/src/helper/helper.js

@@ -15,7 +15,10 @@ export default class helper {
    */
   static clickMaskCloseAll(event, layer, id) {
     let mask = event.target.getAttribute("class");
-    if (mask && (mask.indexOf("notify-mask") > -1 || mask.indexOf("icon-remove") > -1)) {
+    if (
+      mask &&
+      (mask.indexOf("notify-mask") > -1 || mask.indexOf("icon-remove") > -1)
+    ) {
       layer.close(id);
     }
   }
@@ -25,7 +28,7 @@ export default class helper {
    * @return {[type]}       [description]
    */
   static btnyes(event, options, formValue) {
-    if (typeof (options.yes) == "function") {
+    if (typeof options.yes == "function") {
       if (options.type === 6) {
         options.yes(formValue, options.id);
       } else {
@@ -41,11 +44,11 @@ export default class helper {
    * @return {[type]}       [description]
    */
   static async btncancel(event, options) {
-    if (typeof (options.cancel) == "function") {
-      await options.cancel(options.id);
-    } else {
-      options.layer.close(options.id);
-    }
+    // if (typeof (options.cancel) == "function") {
+    //   await options.cancel(options.id);
+    // } else {
+    options.layer.close(options.id);
+    // }
   }
   /**
    * 隐藏滚动条
@@ -54,7 +57,7 @@ export default class helper {
     if (!options.scrollbar) {
       const htmlDom = document.getElementsByTagName("html")[0];
       const htmlClass = [...htmlDom.classList];
-      if (htmlClass.indexOf('vl-html-scrollbar-hidden') > -1) {
+      if (htmlClass.indexOf("vl-html-scrollbar-hidden") > -1) {
         return;
       }
 
@@ -73,7 +76,7 @@ export default class helper {
    * @return {[type]}         [description]
    */
   static moveStart(event, options) {
-    options.offset = options.offset == 'auto' ? [] : options.offset;
+    options.offset = options.offset == "auto" ? [] : options.offset;
     if (options.offset.length == 0) {
       options.offset.push(document.getElementById(options.id + "").offsetLeft);
       options.offset.push(document.getElementById(options.id + "").offsetTop);
@@ -82,8 +85,8 @@ export default class helper {
     if (options.offset.length == 2) {
       options.offset.push(0);
     }
-    options.offset[0] = (document.getElementById(options.id + "").offsetLeft);
-    options.offset[1] = (document.getElementById(options.id + "").offsetTop);
+    options.offset[0] = document.getElementById(options.id + "").offsetLeft;
+    options.offset[1] = document.getElementById(options.id + "").offsetTop;
   }
   /**
    * 拖动弹窗
@@ -104,16 +107,16 @@ export default class helper {
    * @return {[type]}    [description]
    */
   static sleep(ms) {
-    return new Promise(resolve => setTimeout(resolve, ms))
+    return new Promise((resolve) => setTimeout(resolve, ms));
   }
   /**
    *  深度拷贝
-   * @param {*} source 
+   * @param {*} source
    */
   static deepClone(target) {
-    let copyed_objs = []; //此数组解决了循环引用和相同引用的问题,它存放已经递归到的目标对象 
+    let copyed_objs = []; //此数组解决了循环引用和相同引用的问题,它存放已经递归到的目标对象
     function _deepCopy(target) {
-      if ((typeof target !== 'object') || !target) {
+      if (typeof target !== "object" || !target) {
         return target;
       }
       for (let i = 0; i < copyed_objs.length; i++) {
@@ -123,13 +126,13 @@ export default class helper {
       }
       let obj = {};
       if (Array.isArray(target)) {
-        obj = []; //处理target是数组的情况 
+        obj = []; //处理target是数组的情况
       }
       copyed_objs.push({
         target: target,
-        copyTarget: obj
-      })
-      Object.keys(target).forEach(key => {
+        copyTarget: obj,
+      });
+      Object.keys(target).forEach((key) => {
         if (obj[key]) {
           return;
         }
@@ -141,9 +144,9 @@ export default class helper {
   }
   /**
    *  取偶数
-   * @param {*} str 
+   * @param {*} str
    */
-  static evenNumber(str = '') {
+  static evenNumber(str = "") {
     const result = str.match(/\d+/g);
     if (result) {
       const n = parseInt(result[0]);
@@ -156,8 +159,5 @@ export default class helper {
     } else {
       return str;
     }
-
   }
-
-
-}
+}

+ 15 - 10
src/components/VueLayer/src/layer.js

@@ -48,16 +48,18 @@ let Notification = function (
    * @return {[type]}         [description]
    */
   self.open = function (options) {
-    debugger;
     options = mergeJson(options, defOptions);
-    // let id = "";
-    // if (options.id) {
-    //   this.$layer.close(options.id);
-    //   id = options.id;
-    // } else {
-    //   id = `notification_${new Date().getTime()}_${seed++}`;
-    // }
-    let id = `notification_${new Date().getTime()}_${seed++}`;
+    let id = "";
+    if (options.id) {
+      if (document.getElementById(options.id)) {
+        self.close(options.id);
+      }
+
+      id = options.id;
+    } else {
+      id = `notification_${new Date().getTime()}_${seed++}`;
+    }
+    // let id = `notification_${new Date().getTime()}_${seed++}`;
     options.id = id;
     options.layer = self;
     let instance = new NotificationConstructor({
@@ -277,9 +279,12 @@ let Notification = function (
    * @param  {[type]} id [description]
    * @return {[type]}    [description]
    */
-  self.close = function (id) {
+  self.close = async function (id) {
     let oElm = document.getElementById(id);
     if (oElm) {
+      if (typeof self.instances[id].inst.cancel == "function") {
+        self.instances[id].inst.cancel(id);
+      }
       document.body.removeChild(oElm);
       delete self.instances[id];
       self.instancesVue[id].main.$destroy();

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
src/views/ConstructionApplication3D/BenchmarkLandPriceAnalysis/BenchmarkLandPrice.js


+ 30 - 3
src/views/ConstructionApplication3D/BenchmarkLandPriceAnalysis/BenchmarkLandPrice.vue

@@ -8,7 +8,9 @@
     </el-row>
     <el-row :gutter="10">
       <el-col :span="24">
-        <el-tabs v-model="activeName" style="height: 100%" @tab-click="handleClick">
+        <el-tabs v-model="activeName" style="height: 100%" @tab-click="handleClick" v-loading="loading"
+          element-loading-text="正在分析....." element-loading-spinner="el-icon-loading"
+          element-loading-background="rgba(0, 0, 0, 0.8)">
           <el-tab-pane label="基准地价分析" name="first">
             <el-form ref="ruleForm" :model="form" :rules="rules" label-width="90px">
               <el-form-item label="项目名称" size="mini" prop="ProjectName">
@@ -133,7 +135,7 @@ import {
   midpoint,
   difference,
 } from "@turf/turf";
-import { getJZDJWord, listBenchmarkLandPrices, addBenchmarkLandPrices, updateBenchmarkLandPrices, addZtBenchmarkLandPriceResults, getBenchmarkLandPrices, listZtBenchmarkLandPriceResults } from "@/api/zt/ztApi.js";
+import { getJZDJWord, listBenchmarkLandPrices, addBenchmarkLandPrices, updateBenchmarkLandPrices, addZtBenchmarkLandPriceResults, getBenchmarkLandPrices, listZtBenchmarkLandPriceResults, getAnalyseResult } from "@/api/zt/ztApi.js";
 let handlerPolygon; var polygonEntity = null;
 export default {
   data() {
@@ -179,6 +181,7 @@ export default {
         pageNum: 1,
         pageSize: 10,
       },
+      loading: false
     };
   },
   components: {
@@ -343,8 +346,16 @@ export default {
     },
     submitForm(formName) {
       let that = this;
+      that.loading = true;
       this.$refs[formName].validate(async (valid) => {
         if (valid) {
+          var area = that.getRegionArea() / 666.66;
+          if (area > 3000) {
+            this.clear();
+            that.loading = false;
+            that.$alert("项目范围不要超过3000亩,请重新输入项目范围", "警告");
+            return false;
+          }
           that.form.id = uuidv4();
           that.form.analysisDate = moment(new Date()).format(
             "YYYY-MM-DD HH:mm:ss"
@@ -360,7 +371,9 @@ export default {
 
             debugger
             let data = JSON.parse(JSON.stringify(that.form));
+            // let response = await getAnalyseResult(data);
             BenchmarkLandPrice.calculateLandPrice(data, true, async function (response) {
+              that.loading = false;
               if (response) {
                 response.id = uuidv4();
                 response.BenchmarkLandPriceid = data.id;
@@ -385,9 +398,11 @@ export default {
               type: "success",
             });
           } else {
+            that.loading = false;
             this.$message.error("项目保存失败");
           }
         } else {
+          that.loading = false;
           return false;
         }
       });
@@ -494,7 +509,19 @@ export default {
       viewer.entities.add(polygonEntity);
       viewer.flyTo(polygonEntity)
     },
-
+    //范围面积
+    getRegionArea() {
+      debugger
+      var points1 = this.form.ProjectScope;
+      var parts1 = [];
+      var poly1;
+      for (var i = 0; i < points1.length; i++) {
+        parts1.push([points1[i].x, points1[i].y]);
+      }
+      poly1 = polygon([parts1]);
+      var textarea = area(poly1) * window.earthRadius;
+      return textarea;
+    },
 
     /**
      *  打开分析结果弹窗

+ 17 - 4
src/views/ConstructionApplication3D/BenchmarkLandPriceAnalysis/jzdjfxsmjg.vue

@@ -55,7 +55,7 @@
           <el-col :span="12">
             <el-row :gutter="10" class="container_center">
               <el-col
-                :span="8"
+                :span="6"
                 class="container_center"
                 style="
                   height: 3rem;
@@ -66,13 +66,13 @@
                 <i style="font-size: 2rem" class="el-icon-discount"></i>
               </el-col>
               <el-col
-                :span="16"
+                :span="18"
                 class="container_center"
                 style="justify-content: flex-start"
               >
                 <div class="con-col" style="align-items: flex-start">
-                  <a style="color: white">计算地价面积</a>
-                  <a style="color: white">(亩)</a>
+                  <a style="color: white">计算地价面积(亩)</a>
+                  <!-- <a style="color: white">(亩)</a> -->
                   <a style="font-weight: bold; color: rgba(2, 167, 240, 1)">{{
                     Number(
                       info.BenchmarkLandPrice.ztBenchmarkLandPriceResultsList[0]
@@ -552,6 +552,8 @@ export default {
         },
       });
     },
+
+    isEntitieVisibility() {},
     /**
      * 打印分析报告
      */
@@ -707,6 +709,17 @@ export default {
         ],
       };
       this.myChart.setOption(option);
+      this.myChart.on("legendselectchanged", function (parmas) {
+        debugger;
+        var name = parmas.name;
+        var state = parmas.selected[name];
+        that.tableData.forEach((element) => {
+          if (element.ghyt == name) {
+            viewer.entities.getById(element.ghdkDetailedDjid).show = state;
+          }
+        });
+        var sd = that.tableData;
+      });
     },
 
     /**

+ 11 - 13
src/views/ConstructionApplication3D/Demolition/DemolitionList.vue

@@ -526,10 +526,6 @@ import {
 } from "@/api/zt/ztApi.js";
 import zdAnalyse from './zdAnalyse.js'
 import { Loading } from 'element-ui';
-var handlerPolygon;
-var handleInput;
-var polygonEntity = null;
-
 var handlerPolygon;
 var handleInput;
 var polygonEntity = null;
@@ -3331,11 +3327,9 @@ export default {
         // }
       });
       handlerPolygon.drawEvt.addEventListener(function (result) {
-        // window.createTooltip.setVisible(false);
-        debugger;
-        console.log(result);
-        handlerPolygon.polygon.show = false;
-        handlerPolygon.polyline.show = false;
+
+        // handlerPolygon.polygon.show = false;
+        // handlerPolygon.polyline.show = false;
 
 
         var nPositions = [];
@@ -3351,7 +3345,8 @@ export default {
         }
 
         that.regions.push(that.regions[0]);
-        viewer.entities.removeById('polygon');
+
+        viewer.entities.removeAll();
         polygonEntity = new Cesium.Entity({
           id: 'polygon',
           // position: Cesium.Cartesian3.fromDegreesArray([
@@ -3373,12 +3368,13 @@ export default {
         viewer.entities.add(polygonEntity)
         that.curProjectInfo.regions = that.regions;
 
-        handlerPolygon.clear()
-        handlerPolygon.deactivate();
+
         // that.regions = [];
         // that.regions.push(that.positions);
         viewer.flyTo(polygonEntity)
 
+        handlerPolygon.clear()
+        handlerPolygon.deactivate();
       });
     },
     clipImage() {
@@ -3521,6 +3517,7 @@ export default {
       var area = that.getRegionArea() / 666.66;
       if (area > 3000) {
         that.$alert("项目范围不要超过3000亩,请重新输入项目范围", "警告");
+        viewer.entities.removeAll();
         return false;
       }
 
@@ -3681,6 +3678,7 @@ export default {
           var date = new Date()
           debugger
           that.ruleForm.projectName = "拆迁补偿项目_" + that.formatDateTimeToLong(date);
+          that.activeName="second"
         } else {
           console.log("error submit!!");
           return false;
@@ -3929,7 +3927,7 @@ export default {
       if (projectInfo)
         var promise = scene.outputSceneToFile();
       Cesium.when(promise, function (base64data) {
-        projectInfo.isUseDB=window.isUseDB;
+        projectInfo.isUseDB = window.isUseDB;
         expotZDBCWord(projectInfo)
       })
 

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
src/views/ConstructionApplication3D/Demolition/zdAnalyse.js


+ 223 - 130
src/views/ConstructionApplication3D/RSAnalysis/RSAnalysis.vue

@@ -1,72 +1,139 @@
 <template>
-  <div class="ZTGlobal" style="width: 100%; padding: 1rem 1rem 0rem 1rem; color: white">
-
-    <el-row :gutter="5" style="border: 1px solid #06c4f3;padding: 0.5rem;color: #ffffff;">
+  <div
+    class="ZTGlobal"
+    style="width: 100%; padding: 1rem 1rem 0rem 1rem; color: white"
+  >
+    <el-row
+      :gutter="5"
+      style="border: 1px solid #06c4f3; padding: 0.5rem; color: #ffffff"
+    >
       定点分析:
       <el-row :gutter="5">
         观察者高度(米):
-        <el-input-number size="small" label="观察者高度:" min="0" max="50" :step="0.5" precision="1"
-          v-model="personH"></el-input-number>
-        <el-col :span="8"><el-button size="mini" type="default" @click="addGCD">添加观察点</el-button>
+        <el-input-number
+          size="small"
+          label="观察者高度:"
+          min="0"
+          max="50"
+          :step="0.5"
+          precision="1"
+          v-model="personH"
+        ></el-input-number>
+        <el-col :span="8"
+          ><el-button size="mini" type="default" @click="addGCD"
+            >添加观察点</el-button
+          >
         </el-col>
-        <el-col :span="8"><el-button size="mini" type="default" @click="addTagget">添加目标点</el-button>
+        <el-col :span="8"
+          ><el-button size="mini" type="default" @click="addTagget"
+            >添加目标点</el-button
+          >
         </el-col>
         <el-col :span="7">
-          <el-button size="mini" type="default" @click="changeView">切换视角</el-button>
+          <el-button size="mini" type="default" @click="changeView"
+            >切换视角</el-button
+          >
         </el-col>
       </el-row>
       绿线为可见区域,红线为不可见区域
     </el-row>
-    <el-row :gutter="5" style="border: 1px solid #06c4f3; padding: 0.5rem;color: #ffffff;">
+    <el-row
+      :gutter="5"
+      style="border: 1px solid #06c4f3; padding: 0.5rem; color: #ffffff"
+    >
       环视分析:
       <el-row :gutter="5">
-        <el-col :span="8"><el-button size="mini" type="default" @click="addCirclePoint">添加环视点</el-button>
+        <el-col :span="8"
+          ><el-button size="mini" type="default" @click="addCirclePoint"
+            >添加环视点</el-button
+          >
         </el-col>
       </el-row>
       <el-row :gutter="5">
+        <el-col :span="10"> 环视角度(度): </el-col>
         <el-col :span="10">
-          环视角度(度): </el-col>
-        <el-col :span="10">
-          <el-input-number size="mini" v-model="circlePitch" min="0" max="90"
-            @change="circlePitchChange"></el-input-number></el-col>
+          <el-input-number
+            size="mini"
+            v-model="circlePitch"
+            min="0"
+            max="90"
+            @change="circlePitchChange"
+          ></el-input-number
+        ></el-col>
       </el-row>
       <el-row :gutter="5">
+        <el-col :span="10"> 环视高度(米):</el-col>
         <el-col :span="10">
-          环视高度(米):</el-col>
-        <el-col :span="10">
-          <el-input-number size="mini" v-model="circleH" min="0" max="5000" @change="circleHChange"></el-input-number>
+          <el-input-number
+            size="mini"
+            v-model="circleH"
+            min="0"
+            max="5000"
+            @change="circleHChange"
+          ></el-input-number>
         </el-col>
       </el-row>
       <el-row>
-        <el-col :span="8"><el-button ref="flyCrile" size="mini" type="default" @click="targetRing()">{{ flyCircleText
-        }}</el-button>
+        <el-col :span="8"
+          ><el-button
+            ref="flyCrile"
+            size="mini"
+            type="default"
+            @click="targetRing()"
+            >{{ flyCircleText }}</el-button
+          >
         </el-col>
       </el-row>
     </el-row>
-    <el-row :gutter="5" style="border: 1px solid #06c4f3; padding: 0.5rem;color: #ffffff;">
+    <el-row
+      :gutter="5"
+      style="border: 1px solid #06c4f3; padding: 0.5rem; color: #ffffff"
+    >
       沿线飞行:
       <el-row :gutter="2">
-        <el-col :span="8"><el-button size="mini" type="default" @click="addPolyline">绘制线</el-button>
+        <el-col :span="8"
+          ><el-button size="mini" type="default" @click="addPolyline"
+            >绘制线</el-button
+          >
         </el-col>
-        <el-col :span="8"><el-button size="mini" type="default" @click="startPolylineFly">飞行</el-button>
+        <el-col :span="8"
+          ><el-button size="mini" type="default" @click="startPolylineFly"
+            >飞行</el-button
+          >
         </el-col>
-        <el-col :span="8"><el-button size="mini" type="default" @click="stopPolylineFly">停止飞行</el-button>
+        <el-col :span="8"
+          ><el-button size="mini" type="default" @click="stopPolylineFly"
+            >停止飞行</el-button
+          >
         </el-col>
       </el-row>
       <el-row :gutter="2">
         飞行高度(米):
-        <el-input-number size="small" label="飞行高度:" min="0" max="2000" v-model="flyH"></el-input-number>
+        <el-input-number
+          size="small"
+          label="飞行高度:"
+          min="0"
+          max="2000"
+          v-model="flyH"
+        ></el-input-number>
       </el-row>
       <el-row :gutter="2">
         飞行速度(km/h):
-        <el-input-number size="small" label="飞行速度:" min="0" max="120" v-model="flySpeed"></el-input-number>
+        <el-input-number
+          size="small"
+          label="飞行速度:"
+          min="0"
+          max="120"
+          v-model="flySpeed"
+        ></el-input-number>
       </el-row>
     </el-row>
-    <el-row>
-    </el-row>
+    <el-row> </el-row>
     <el-row :gutter="5">
       <el-col :span="8">
-        <el-button size="mini" type="default" @click="clearScope">清除</el-button>
+        <el-button size="mini" type="default" @click="clearScope"
+          >清除</el-button
+        >
       </el-col>
     </el-row>
   </div>
@@ -83,11 +150,12 @@ import {
 let handlerPoint = null; //绘制线
 var sightline;
 var flyManager;
+var points = [];
 export default {
   data() {
     return {
       tooltip: createTooltip(document.body),
-      points: [],
+      // points: [],
       addViewFlag: false, //当前点击状态是否是 添加观察点
       addTargetFlag: false, //当前点击状态是否是 添加目标点,
 
@@ -103,7 +171,7 @@ export default {
       circleH: 500,
       flyH: 20,
       flySpeed: 50,
-      lineFylPoints: []
+      lineFylPoints: [],
     };
   },
   props: {
@@ -147,7 +215,7 @@ export default {
       that.addViewFlag = true;
       that.addTargetFlag = false;
 
-      that.addCircleFlag = false
+      that.addCircleFlag = false;
 
       that.isFrom2To = true;
       if (handlerPoint) handlerPoint.clear();
@@ -171,7 +239,7 @@ export default {
       let that = this;
       that.addViewFlag = false;
       that.addTargetFlag = true;
-      that.addCircleFlag = false
+      that.addCircleFlag = false;
       that.setInput();
     },
     /**
@@ -181,7 +249,7 @@ export default {
       let that = this;
       that.addViewFlag = false;
       that.addTargetFlag = false;
-      that.addCircleFlag = true
+      that.addCircleFlag = true;
       that.setInput();
     },
     /**
@@ -205,9 +273,9 @@ export default {
           cartographic[2] += that.personH;
           sightline.viewPosition = cartographic;
           that.addViewFlag = false;
-          viewer.entities.removeById('gcPoint');
+          viewer.entities.removeById("gcPoint");
           var labelentity = new Cesium.Entity({
-            id: 'gcPoint',
+            id: "gcPoint",
             position: Cesium.Cartesian3.fromDegrees(
               cartographic[0],
               cartographic[1],
@@ -246,7 +314,7 @@ export default {
           // that.points.push(entity)
           // viewer.entities.add(entity);
           that.gcPoint = cartographic;
-          that.points.push(labelentity);
+          points.push(labelentity);
           viewer.entities.add(labelentity);
         } else if (that.addTargetFlag) {
           //添加目标点
@@ -255,9 +323,9 @@ export default {
             position: cartographic,
             name: "目标点",
           });
-          viewer.entities.removeById('targetPoint');
+          viewer.entities.removeById("targetPoint");
           var labelentity = new Cesium.Entity({
-            id: 'targetPoint',
+            id: "targetPoint",
             position: position,
             point: {
               // 点的大小(像素)
@@ -289,17 +357,16 @@ export default {
               ), //达到一定高度隐藏
             },
           });
-          that.points.push(labelentity);
+          points.push(labelentity);
           viewer.entities.add(labelentity);
           that.addTargetFlag = false;
           that.targetPoint = cartographic;
           sightline.build();
           that.ComputationalPerspective();
-        }
-        else if (that.addCircleFlag) {
-          viewer.entities.removeById('circlePoint');
+        } else if (that.addCircleFlag) {
+          viewer.entities.removeById("circlePoint");
           var labelentity = new Cesium.Entity({
-            id: 'circlePoint',
+            id: "circlePoint",
             position: position,
             point: {
               // 点的大小(像素)
@@ -331,7 +398,7 @@ export default {
               ), //达到一定高度隐藏
             },
           });
-          that.points.push(labelentity);
+          points.push(labelentity);
           viewer.entities.add(labelentity);
           that.addCircleFlag = false;
           that.circlPoint = cartographic;
@@ -347,9 +414,14 @@ export default {
     ComputationalPerspective() {
       var point1;
       var point2;
-      debugger
-      if (sightline.viewPosition[0] == 0 || sightline.viewPosition[1] == 0 || sightline._currentTargetPoint[0] == 0 || sightline._currentTargetPoint[1] == 0) {
-        this.$message.warning("请添加观察点或目标点")
+      debugger;
+      if (
+        sightline.viewPosition[0] == 0 ||
+        sightline.viewPosition[1] == 0 ||
+        sightline._currentTargetPoint[0] == 0 ||
+        sightline._currentTargetPoint[1] == 0
+      ) {
+        this.$message.warning("请添加观察点或目标点");
         return;
       }
       if (this.isFrom2To) {
@@ -417,51 +489,52 @@ export default {
      */
     clearScope() {
       viewer.entities.removeAll();
-      this.points = [];
+      points = [];
       sightline.removeAllTargetPoint();
       if (handlerPoint) {
         handlerPoint.clear();
         handlerPoint.deactivate();
       }
       this.tooltip.setVisible(false);
-      if (flyManager)
-        flyManager.stop();
+      if (flyManager) flyManager.stop();
       flyManager = null;
       this.lineFylPoints = [];
       scene.camera.stopFlyCircle();
-      this.flyCircleText = '环视漫游'
+      this.flyCircleText = "环视漫游";
     },
     /**
      * 目标点环视
      */
     targetRing() {
-      var that = this
+      var that = this;
       that.flyCircleLoop = !that.flyCircleLoop;
       if (that.circlPoint) {
-        var position = Cesium.Cartesian3.fromDegrees(that.circlPoint[0], that.circlPoint[1], that.circlPoint[2] + 1000)
+        var position = Cesium.Cartesian3.fromDegrees(
+          that.circlPoint[0],
+          that.circlPoint[1],
+          that.circlPoint[2] + 1000
+        );
         // scene.camera.zoomIn(500)
         scene.camera.setView({
           destination: position,
           orientation: {
             heading: Cesium.Math.toRadians(90.0), // east, default value is 0.0 (north)
-            pitch: Cesium.Math.toRadians(that.circlePitch * -1),    // default value (looking down)
-            roll: 0.0                             // default value
-          }
-        })
-        scene.camera.flyCircle(position)
-        scene.camera.speedRatio = 0.2
-      }
-      else {
-        that.$message.warning('请添加环视点!');
+            pitch: Cesium.Math.toRadians(that.circlePitch * -1), // default value (looking down)
+            roll: 0.0, // default value
+          },
+        });
+        scene.camera.flyCircle(position);
+        scene.camera.speedRatio = 0.2;
+      } else {
+        that.$message.warning("请添加环视点!");
         return;
       }
       // scene.camera.flyCircleLoop = that.flyCircleLoop;
       if (that.flyCircleLoop == true) {
-        that.flyCircleText = '停止环视'
-      }
-      else {
-        that.flyCircleText = '环视漫游'
-        scene.camera.stopFlyCircle()
+        that.flyCircleText = "停止环视";
+      } else {
+        that.flyCircleText = "环视漫游";
+        scene.camera.stopFlyCircle();
       }
     },
     /**
@@ -469,39 +542,46 @@ export default {
      */
     circleHChange() {
       scene.camera.setView({
-        destination: Cesium.Cartesian3.fromDegrees(this.circlPoint[0], this.circlPoint[1], this.circlPoint[2] + Number(this.circleH)),
+        destination: Cesium.Cartesian3.fromDegrees(
+          this.circlPoint[0],
+          this.circlPoint[1],
+          this.circlPoint[2] + Number(this.circleH)
+        ),
         orientation: {
           heading: Cesium.Math.toRadians(90.0), // east, default value is 0.0 (north)
-          pitch: Cesium.Math.toRadians(this.circlePitch * -1),    // default value (looking down)
-          roll: 0.0                             // default value
-        }
-      })
+          pitch: Cesium.Math.toRadians(this.circlePitch * -1), // default value (looking down)
+          roll: 0.0, // default value
+        },
+      });
     },
     /**
      * 修改环视角度
      */
     circlePitchChange() {
       scene.camera.setView({
-        destination: Cesium.Cartesian3.fromDegrees(this.circlPoint[0], this.circlPoint[1], this.circlPoint[2] + Number(this.circleH)),
+        destination: Cesium.Cartesian3.fromDegrees(
+          this.circlPoint[0],
+          this.circlPoint[1],
+          this.circlPoint[2] + Number(this.circleH)
+        ),
         orientation: {
           heading: Cesium.Math.toRadians(90.0), // east, default value is 0.0 (north)
-          pitch: Cesium.Math.toRadians(this.circlePitch * -1),    // default value (looking down)
-          roll: 0.0                             // default value
-        }
-      })
+          pitch: Cesium.Math.toRadians(this.circlePitch * -1), // default value (looking down)
+          roll: 0.0, // default value
+        },
+      });
     },
     /**
      * 绘制飞行线
      */
     addPolyline() {
       var that = this;
-      that.lineFylPoints = []
-      if (handlerPoint)
-        handlerPoint.clear()
+      that.lineFylPoints = [];
+      if (handlerPoint) handlerPoint.clear();
       handlerPoint = new Cesium.DrawHandler(viewer, Cesium.DrawMode.Line);
       handlerPoint.activate();
       handlerPoint.drawEvt.addEventListener(function (result) {
-        debugger
+        debugger;
         var positions = result.object.positions;
         for (var i = 0; i < positions.length; i++) {
           var cartographic = that.Cartesian2toDegrees(positions[i]);
@@ -509,7 +589,7 @@ export default {
         }
         //将获取的点的位置转化成经纬度
         handlerPoint.deactivate();
-      })
+      });
     },
     /**
      * 开始沿线飞行
@@ -517,86 +597,99 @@ export default {
     startPolylineFly() {
       var that = this;
       if (that.lineFylPoints == null || that.lineFylPoints.length == 0) {
-        that.$message.warning('请绘制飞行路线!');
+        that.$message.warning("请绘制飞行路线!");
         return;
       }
-      debugger
+      debugger;
       var speed = Number(that.flySpeed) / 3.6;
-      var xml = '<?xml version="1.0" encoding="UTF-8"?>' +
+      var xml =
+        '<?xml version="1.0" encoding="UTF-8"?>' +
         '<SceneRoute xmlns = "https://www.supermap.com/ugc60" >' +
-        '<route name="飞行路线_1" speed="' + speed + '" lineType="0" showroutestop="False" showrouteline="False" altitudefree="False" headingfree="False" tiltfree="False" flycircle="False" alongline="True">' +
-        '<style>' +
-        '<geostyle3d>' +
-        '<linecolor>RGBA(147,112,219,255)</linecolor>' +
-        '<linewidth>2</linewidth>' +
-        '<altitudeMode>Absolute</altitudeMode>' +
-        '<bottomAltitude>0.00</bottomAltitude>' +
-        '</geostyle3d>' +
-        '</style>'
+        '<route name="飞行路线_1" speed="' +
+        speed +
+        '" lineType="0" showroutestop="False" showrouteline="False" altitudefree="False" headingfree="False" tiltfree="False" flycircle="False" alongline="True">' +
+        "<style>" +
+        "<geostyle3d>" +
+        "<linecolor>RGBA(147,112,219,255)</linecolor>" +
+        "<linewidth>2</linewidth>" +
+        "<altitudeMode>Absolute</altitudeMode>" +
+        "<bottomAltitude>0.00</bottomAltitude>" +
+        "</geostyle3d>" +
+        "</style>";
       that.lineFylPoints.forEach((point, index) => {
-        xml += '<routestop name="Stop+' + (index + 1) + '" speed="0" excluded="False" viewType="camera">' +
-          '<camera>' +
-          '<longitude>' + point[0] + '</longitude>' +
-          '<latitude>' + point[1] + '</latitude>' +
-          '<altitude>' + (point[2] + that.flyH) + '</altitude>' +
-          '<heading>0</heading>' +
-          '<tilt>78.531727283418646834</tilt>' +
-          '<altitudeMode>Absolute</altitudeMode>' +
-          '</camera>' +
-          '<style>' +
-          '<geostyle3d>' +
-          '<icon />' +
-          '<markersize>4.8</markersize>' +
-          '<markericonscale>1</markericonscale>' +
-          '<markercolor>RGBA(255,255,255,255)</markercolor>' +
-          '</geostyle3d>' +
-          '</style>' +
-          '<setting>' +
-          '<turnTime>1.5</turnTime>' +
-          '<turnSlowly>False</turnSlowly>' +
-          '<stopPlayMode>StopPause</stopPlayMode>' +
-          '<autoPlay>False</autoPlay>' +
-          '<pauseTime>0</pauseTime>' +
-          '<angularSpeed>1</angularSpeed>' +
-          ' </setting>' +
-          '</routestop>';
-      })
-      xml += '</route>'
-      xml += '</SceneRoute >'
+        xml +=
+          '<routestop name="Stop+' +
+          (index + 1) +
+          '" speed="0" excluded="False" viewType="camera">' +
+          "<camera>" +
+          "<longitude>" +
+          point[0] +
+          "</longitude>" +
+          "<latitude>" +
+          point[1] +
+          "</latitude>" +
+          "<altitude>" +
+          (point[2] + that.flyH) +
+          "</altitude>" +
+          "<heading>0</heading>" +
+          "<tilt>78.531727283418646834</tilt>" +
+          "<altitudeMode>Absolute</altitudeMode>" +
+          "</camera>" +
+          "<style>" +
+          "<geostyle3d>" +
+          "<icon />" +
+          "<markersize>4.8</markersize>" +
+          "<markericonscale>1</markericonscale>" +
+          "<markercolor>RGBA(255,255,255,255)</markercolor>" +
+          "</geostyle3d>" +
+          "</style>" +
+          "<setting>" +
+          "<turnTime>1.5</turnTime>" +
+          "<turnSlowly>False</turnSlowly>" +
+          "<stopPlayMode>StopPause</stopPlayMode>" +
+          "<autoPlay>False</autoPlay>" +
+          "<pauseTime>0</pauseTime>" +
+          "<angularSpeed>1</angularSpeed>" +
+          " </setting>" +
+          "</routestop>";
+      });
+      xml += "</route>";
+      xml += "</SceneRoute >";
       var routes = new Cesium.RouteCollection(viewer.entities);
       routes.fromXML(xml);
       //初始化飞行管理
       flyManager = new Cesium.FlyManager({
         scene: scene,
-        routes: routes
+        routes: routes,
       });
       //注册站点到达事件
       flyManager.stopArrived.addEventListener(function (routeStop) {
         routeStop.waitTime = 1; // 在每个站点处停留1s
       });
-      flyManager.readyPromise.then(function () { // 飞行路线就绪
+      flyManager.readyPromise.then(function () {
+        // 飞行路线就绪
         var currentRoute = flyManager.currentRoute;
-        console.log(currentRoute.totalDuration + "秒")
+        console.log(currentRoute.totalDuration + "秒");
         currentRoute.isLineVisible = false;
         currentRoute.isStopVisible = false;
         //生成飞行文件中的所有站点列表
         // var allStops = flyManager.getAllRouteStops();
         flyManager && flyManager.play();
-      })
+      });
     },
     /**
      * 停止沿线飞行
      */
     stopPolylineFly() {
       var allStops = flyManager.getAllRouteStops();
-      flyManager.viewToStop(allStops[allStops.length - 1])
+      flyManager.viewToStop(allStops[allStops.length - 1]);
       flyManager && flyManager.stop();
-    }
+    },
   },
   beforeDestroy() {
     this.clearScope();
   },
-}
+};
 </script>
 <style lang="scss">
 @import "@/../../zt.scss";

+ 6 - 2
src/views/ConstructionApplication3D/ZBFXAnalysisinfo/ZBFXAnalysisinfo.vue

@@ -142,8 +142,12 @@ export default {
           };
           //人工核算指标
 
-          let rgzbData = (await getZtProjectModelZb(Data.Minfo.id)).data || {};
-          let rgzbid = rgzbData.id ? rgzbData.id : Data.Minfo.id;
+          let rgzbData =
+            (await getZtProjectModelZb(Data.Minfo.id + "" + Data.KG_Data.DKBM))
+              .data || {};
+          let rgzbid = rgzbData.id
+            ? rgzbData.id
+            : Data.Minfo.id + "" + Data.KG_Data.DKBM;
           let rgzb = rgzbData.zbcs ? JSON.parse(rgzbData.zbcs) : {};
           let TableData = [];
           let YDMJrow = {};

+ 2 - 2
src/views/ConstructionApplication3D/ZYAnalysisinfo/ZYAnalysisinfo.vue

@@ -19,7 +19,7 @@
           @current-change="handleCurrentChange"
           style="width: 100%"
         >
-          <el-table-column label="地类图斑类型" align="center">
+          <el-table-column label="规划类型" align="center">
             <template #default="{ row }">
               {{
                 row.data.find((c) => c.label == "DLMC")
@@ -28,7 +28,7 @@
               }}
             </template>
           </el-table-column>
-          <el-table-column label="图斑面积(㎡)" align="center">
+          <el-table-column label="规划面积(㎡)" align="center">
             <template #default="{ row }">
               {{
                 row.data.find((c) => c.label == "TBMJ")

+ 1 - 0
src/views/ConstructionApplication3D/billboard/billboardCheckList.vue

@@ -170,6 +170,7 @@ export default {
      * @param {*} row
      */
     check(row) {
+      this.locationClick(row);
       if (this.deltailLayerId != null) this.$layer.close(this.deltailLayerId);
       var width = 400;
 

+ 12 - 4
src/views/ConstructionApplication3D/billboard/billboardChekInfo.vue

@@ -110,23 +110,31 @@ export default {
   created() {
     let that = this;
     if (that.info.template) {
-      that.info.template = JSON.parse(that.info.template);
+      if (typeof that.info.template === "string") {
+        that.info.template = JSON.parse(that.info.template);
+      }
     } else {
       that.info.template = {};
     }
 
     if (that.info.templateBottom) {
-      that.info.templateBottom = JSON.parse(that.info.templateBottom);
+      if (typeof that.info.templateBottom === "string") {
+        that.info.templateBottom = JSON.parse(that.info.templateBottom);
+      }
     } else {
       that.info.templateBottom = {};
     }
     if (that.info.templateCentre) {
-      that.info.templateCentre = JSON.parse(that.info.templateCentre);
+      if (typeof that.info.templateCentre === "string") {
+        that.info.templateCentre = JSON.parse(that.info.templateCentre);
+      }
     } else {
       that.info.templateCentre = {};
     }
     if (that.info.templateTop) {
-      that.info.templateTop = JSON.parse(that.info.templateTop);
+      if (typeof that.info.templateTop === "string") {
+        that.info.templateTop = JSON.parse(that.info.templateTop);
+      }
     } else {
       that.info.templateTop = {};
     }

+ 41 - 24
src/views/ConstructionApplication3D/billboard/billboardDesign.vue

@@ -43,10 +43,11 @@
                 ></i>
                 <a @click="billboarddetial(item)">详情</a>
               </el-col>
+              <!-- v-if="!item.dataurl" -->
               <el-col class="con-col hover_style" style="cursor: pointer">
                 <i
                   style="font-size: 2rem"
-                  class="el-icon-location-outline"
+                  class="el-icon-folder-add"
                   @click="importModel(item)"
                 ></i>
                 <a @click="importModel(item)">导入模型</a>
@@ -62,7 +63,7 @@
               <el-col class="con-col hover_style" style="cursor: pointer">
                 <i
                   style="font-size: 2rem"
-                  class="el-icon-location-outline"
+                  class="el-icon-tickets"
                   @click="checkModel(item)"
                 ></i>
                 <a @click="checkModel(item)">审查</a>
@@ -70,7 +71,7 @@
               <el-col class="con-col hover_style" style="cursor: pointer">
                 <i
                   style="font-size: 2rem"
-                  class="el-icon-share"
+                  class="el-icon-delete"
                   @click="deleteBillard(item)"
                 ></i>
                 <a @click="deleteBillard(item)">删除</a>
@@ -114,6 +115,7 @@ import {
   listZtBillboardInfoList,
   listBillboardModelList,
   delZtBillboardInfoList,
+  getBillboardModelList,
 } from "@/api/zt/ztApi.js";
 let entityList = [];
 export default {
@@ -396,27 +398,35 @@ export default {
      */
     DrawBillboard(billboardModel) {
       if (billboardModel.template) {
-        billboardModel.template = JSON.parse(billboardModel.template);
+        if (typeof billboardModel.template === "string") {
+          billboardModel.template = JSON.parse(billboardModel.template);
+        }
       } else {
         billboardModel.template = {};
       }
 
       if (billboardModel.templateBottom) {
-        billboardModel.templateBottom = JSON.parse(
-          billboardModel.templateBottom
-        );
+        if (typeof billboardModel.templateBottom === "string") {
+          billboardModel.templateBottom = JSON.parse(
+            billboardModel.templateBottom
+          );
+        }
       } else {
         billboardModel.templateBottom = {};
       }
       if (billboardModel.templateCentre) {
-        billboardModel.templateCentre = JSON.parse(
-          billboardModel.templateCentre
-        );
+        if (typeof billboardModel.templateCentre === "string") {
+          billboardModel.templateCentre = JSON.parse(
+            billboardModel.templateCentre
+          );
+        }
       } else {
         billboardModel.templateCentre = {};
       }
       if (billboardModel.templateTop) {
-        billboardModel.templateTop = JSON.parse(billboardModel.templateTop);
+        if (typeof billboardModel.templateTop === "string") {
+          billboardModel.templateTop = JSON.parse(billboardModel.templateTop);
+        }
       } else {
         billboardModel.templateTop = {};
       }
@@ -844,14 +854,15 @@ export default {
       this.getEntitiesHandler = new Cesium.ScreenSpaceEventHandler(
         scene.canvas
       );
-      this.getEntitiesHandler.setInputAction(function (click) {
+      this.getEntitiesHandler.setInputAction(async function (click) {
         var pick = viewer.scene.pick(click.position);
         debugger;
         //广告牌信息弹窗
         if (pick && pick.id.id && pick.id.id.indexOf("_") !== -1) {
           let id = pick.id.id.split("_")[2];
-          let info = window.billboardModelList.find((c) => c.id == id);
-          that.openOBJInfo("广告牌信息详情", info);
+          // let info = window.billboardModelList.find((c) => c.id == id);
+          let info = await getBillboardModelList(id);
+          that.openOBJInfo("广告牌信息详情", info.data);
         }
       }, Cesium.ScreenSpaceEventType.LEFT_CLICK);
     },
@@ -919,17 +930,23 @@ export default {
     intoModel(info) {
       if (info.url && this.selectBillardId != info.id) {
         this.selectBillardId = info.id;
-        try {
-          var promisse11w = scene.open(info.url);
-          Cesium.when(promisse11w, function (layers) {
-            layers.forEach((element) => {
-              that.thislayers.push(element.name);
+        this.thislayers.forEach((element) => {
+          scene.layers.remove(element);
+        });
+        this.thislayers = [];
+        setTimeout(function () {
+          try {
+            var promisse11w = scene.open(info.url);
+            Cesium.when(promisse11w, function (layers) {
+              layers.forEach((element) => {
+                that.thislayers.push(element.name);
+              });
             });
-          });
-          this.yp(info);
-        } catch (error) {
-          console.log(error);
-        }
+            this.yp(info);
+          } catch (error) {
+            console.log(error);
+          }
+        }, 1000);
       }
     },
 

+ 56 - 0
src/views/ConstructionApplication3D/billboard/billboarddetail.vue

@@ -34,6 +34,13 @@
   </div>
 </template>
 <script>
+import {
+  cartesian3ToWGS84,
+  mapQuery,
+  flatten,
+  mercator2lonLat,
+  undergroundMode,
+} from "@/utils/MapHelper/MapHelper.js";
 import { listBillboardModelList } from "@/api/zt/ztApi.js";
 export default {
   data() {
@@ -71,12 +78,61 @@ export default {
   methods: {
     async init() {
       let that = this;
+      debugger;
+      // if (that.info.projectInfo.dataurl) {
+      //   let queryBySQLParameters = {
+      //     getFeatureMode: "SQL",
+      //     datasetNames: [that.info.projectInfo.datasourcename + ":" + "GGP"],
+      //     queryParameter: {
+      //       attributeFilter: "1=1",
+      //     },
+      //     hasGeometry: "true",
+      //   };
+      //   let e = await mapQuery(
+      //     that.info.projectInfo.dataurl +
+      //       "/featureResults.json?returnContent=true",
+      //     queryBySQLParameters
+      //   );
+      //   if (e && e.totalCount > 0) {
+      //     e.features.forEach((feature) => {
+      //       let featureData = {
+      //         id: uuidv4(),
+      //         data: [],
+      //         geometry: feature.geometry,
+      //       };
 
+      //       feature.fieldNames.forEach((fieldName, i) => {
+      //         let Field = e.datasetInfos
+      //           ? e.datasetInfos[0].fieldInfos.find(
+      //               (c) =>
+      //                 c.name &&
+      //                 c.name.toUpperCase() == fieldName.toUpperCase() &&
+      //                 c.name.toUpperCase().indexOf("SM") == -1
+      //             )
+      //           : null;
+      //         if (Field) {
+      //           featureData.data.push({
+      //             label: fieldName,
+      //             labelCN: Field ? Field.caption : fieldName,
+      //             value: feature.fieldValues[i],
+      //           });
+      //         }
+      //       });
+      //       featureDataList.push(featureData);
+      //     });
+      //     debugger;
+      //     this.billboardModelList = [];
+      //   } else {
+      //     this.billboardModelList = [];
+      //   }
+      // } else {
       let data = await listBillboardModelList({
         billboardInfoId: that.info.projectInfo.id,
       });
       debugger;
       this.billboardModelList = data.rows;
+      // }
+
       // this.billboardModelList = window.billboardModelList.filter(
       //   (c) => c.billboardInfoId == that.info.projectInfo.id
       // );

+ 30 - 5
src/views/ConstructionApplication3D/billboard/billboarddetailInfo.vue

@@ -206,11 +206,36 @@ export default {
     },
   },
   computed: {},
-  mounted() {
-    this.$nextTick(function () {
-      let sd = this.info;
-      debugger;
-    });
+  created() {
+    if (this.info.template) {
+      if (typeof this.info.template === "string") {
+        this.info.template = JSON.parse(this.info.template);
+      }
+    } else {
+      this.info.template = {};
+    }
+
+    if (this.info.templateBottom) {
+      if (typeof this.info.templateBottom === "string") {
+        this.info.templateBottom = JSON.parse(this.info.templateBottom);
+      }
+    } else {
+      this.info.templateBottom = {};
+    }
+    if (this.info.templateCentre) {
+      if (typeof this.info.templateCentre === "string") {
+        this.info.templateCentre = JSON.parse(this.info.templateCentre);
+      }
+    } else {
+      this.info.templateCentre = {};
+    }
+    if (this.info.templateTop) {
+      if (typeof this.info.templateTop === "string") {
+        this.info.templateTop = JSON.parse(this.info.templateTop);
+      }
+    } else {
+      this.info.templateTop = {};
+    }
 
     // this.init();
   },

Fichier diff supprimé car celui-ci est trop grand
+ 0 - 0
src/views/ConstructionApplication3D/projectManagement/CheckParkAnalyse.js


+ 47 - 11
src/views/ConstructionApplication3D/projectManagement/projectManagement.vue

@@ -381,13 +381,13 @@
                       <el-button size="mini" type="primary" plain
                         >模型对比</el-button
                       >
-                      <el-button
+                      <!-- <el-button
                         style="margin-left: 10px"
                         size="mini"
                         type="primary"
                         plain
                         >模型注册</el-button
-                      >
+                      > -->
                     </el-col>
                   </el-row>
 
@@ -2190,8 +2190,6 @@ export default {
       let that = this;
       let DKBM = [];
       if (that.LandPlanningList.length > 0) {
-        let ps = [];
-
         let layer = flatten(window.layerTree).find(
           (item) => item.core == "004004"
         );
@@ -2202,12 +2200,40 @@ export default {
             GHYDindex++
           ) {
             const GHYDlayerData = that.LandPlanningList[GHYDindex];
-
             let bm = GHYDlayerData.data.find((c) => c.label == "DKBM");
             if (bm && bm.value) {
               DKBM.push(bm.value);
             }
 
+            //基础高度(地形高度)加入地形后可删除
+            let jcgd = 0;
+            //获取模型信息
+            let queryBySQLParameters = {
+              getFeatureMode: "SQL",
+              datasetNames: [Minfo.datasourcename + ":项目范围"],
+              queryParameter: {
+                attributeFilter: " DKBM = '" + bm.value + "'",
+              },
+              hasGeometry: true,
+            };
+            let exmfw = await mapQuery(
+              Minfo.dataurl + "/featureResults.json?returnContent=true",
+              queryBySQLParameters
+            );
+
+            if (exmfw && exmfw.totalCount > 0) {
+              exmfw.features.forEach((feature) => {
+                feature.fieldNames.forEach((fieldName, i) => {
+                  if (
+                    fieldName == "BASEH" &&
+                    Number(feature.fieldValues[i]) > jcgd
+                  ) {
+                    jcgd = Number(feature.fieldValues[i]);
+                  }
+                });
+              });
+            }
+
             let queryByGeometryParameters = {
               getFeatureMode: "SQL",
               datasetNames: [
@@ -2262,6 +2288,14 @@ export default {
                   ps.push(element.y);
                   ps.push(0);
                 }
+                debugger;
+
+                //限高高度
+                let xg = 87.4;
+                let xgdata = GHYDlayerData.data.find((c) => c.label == "JZXGD");
+                if (xgdata && xgdata.value) {
+                  xg = Number(xgdata.value);
+                }
 
                 //添加建筑退线线
                 var orangePolygon1 = viewer.entities.add({
@@ -2269,7 +2303,7 @@ export default {
 
                   polygon: {
                     hierarchy: Cesium.Cartesian3.fromDegreesArrayHeights(ps),
-                    extrudedHeight: 87.4,
+                    extrudedHeight: xg + jcgd,
                     perPositionHeight: true,
                     material: Cesium.Color.CHARTREUSE.withAlpha(0.1),
                     outline: true,
@@ -2625,18 +2659,20 @@ export default {
             (t) => t.landNo == item.KG_Data.DKBM
           );
           if (land == null) continue;
-          tableDataList[i].FA_Data.JZMJ = land.mj;
+          tableDataList[i].FA_Data.JZMJ = land.jrmj;
           tableDataList[i].FA_Data.JRJZMJ = land.jrmj;
           debugger;
           //20240814改为使用建筑面积计算容积率
-          // tableDataList[i].FA_Data.RJL = (land.jrmj / item.FA_Data.YDMJ).toFixed(2);
           tableDataList[i].FA_Data.RJL = (
-            (land.mj - land.dxjzmj) /
-            item.FA_Data.YDMJ
+            land.jrmj / item.FA_Data.YDMJ
           ).toFixed(2);
+          // tableDataList[i].FA_Data.RJL = (
+          //   (land.mj - land.dxjzmj) /
+          //   item.FA_Data.YDMJ
+          // ).toFixed(2);
           //开发商提交的方案文档指标
           debugger;
-          tableDataList[i].TJFA_Data.JZMJ = land.famj;
+          tableDataList[i].TJFA_Data.JZMJ = land.fajrmj;
           tableDataList[i].TJFA_Data.JRJZMJ = land.fajrmj;
           tableDataList[i].infoData = land;
         }

+ 8 - 2
src/views/ConstructionApplication3D/zt.scss

@@ -303,14 +303,20 @@
 .el-icon-s-operation,
 .el-icon-location-outline,
 .el-icon-share,
-.el-icon-delete {
+.el-icon-delete,
+.el-icon-folder-add,
+.el-icon-tickets
+{
   color: #20a0fc;
 }
 
 .el-icon-s-operation+a,
 .el-icon-location-outline+a,
 .el-icon-share+a,
-.el-icon-delete+a {
+.el-icon-delete+a,
+.el-icon-folder-add+a,
+.el-icon-tickets+a
+{
   color: #cddeeb;
 }
 

+ 14 - 3
static/Config/config.js

@@ -10,8 +10,7 @@ window.hostconfig = "localhost";
 window.mapview = [109.55145569681383, 18.28012526287734, 2000.0];
 //默认影像地址,空则为不加载默认影像
 //window.baseImgLayer = "http://127.0.0.1:8090/iserver/services/map-sanyadsm/rest/maps/%E6%B5%B7%E5%8D%97%E5%B2%9B%E5%BD%B1%E5%83%8F15%E7%BA%A7_Level_15%40DataSource";
-window.baseImgLayer =
-  "http://192.168.60.2:8090/iserver/services/map-WorkSpace/rest/maps/%E6%B5%B7%E5%8D%97%E5%B2%9B%E5%BD%B1%E5%83%8F15%E7%BA%A7_Level_15%40DataSource";
+window.baseImgLayer = "http://192.168.60.2:8090/iserver/services/map-WorkSpace/rest/maps/%E6%B5%B7%E5%8D%97%E5%B2%9B%E5%BD%B1%E5%83%8F15%E7%BA%A7_Level_15%40DataSource";
 //三维模型查询地址
 window.baseModelQueryLayer = "http://192.168.60.2:8090/iserver/services/data-building/rest/data/featureResults.rjson?returnContent=true";
 // ai大模gugeliulanq
@@ -3494,6 +3493,7 @@ window.landUseNatureRelation = [
       //   qsTYPE: "JT",
       // },
       {
+        tableName: "C12Sfjb",
         layerCore: "006001",
         tdjbField: "土地级别",
         ydlxTypeField: "",
@@ -3514,6 +3514,7 @@ window.landUseNatureRelation = [
       //   qsTYPE: "JT",
       // },
       {
+        tableName: "C22Zzjb",
         layerCore: "006008",
         tdjbField: "土地级别",
         ydlxTypeField: "",
@@ -3537,6 +3538,7 @@ window.landUseNatureRelation = [
       //   qsTYPE: "JT",
       // },
       {
+        tableName: "C32Gyjb",
         layerCore: "006003",
         tdjbField: "土地级别",
         ydlxTypeField: "",
@@ -3562,6 +3564,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "机关团体用地",
@@ -3582,6 +3585,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "教育、科研用地",
@@ -3602,6 +3606,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "文化设施、体育用地",
@@ -3622,6 +3627,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "教育、科研用地",
@@ -3642,6 +3648,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "文化设施、体育用地",
@@ -3662,6 +3669,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "医疗卫生、社会福利用地",
@@ -3682,6 +3690,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "医疗卫生、社会福利用地",
@@ -3709,6 +3718,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "公园与绿地、公用设施用地",
@@ -3729,6 +3739,7 @@ window.landUseNatureRelation = [
           //   qsTYPE: "JT",
           // },
           {
+            tableName: "C41Gfjb",
             layerCore: "006004",
             tdjbField: "土地级别",
             ydlxTypeField: "公园与绿地、公用设施用地",
@@ -3753,4 +3764,4 @@ window.QXLayerNames = [
 ];
 window.Layeralpha = 0;
 
-window.isUseDB = false;
+window.isUseDB = true;

Certains fichiers n'ont pas été affichés car il y a eu trop de fichiers modifiés dans ce diff