فهرست منبع

0923版本中图代码合并

lkk 11 ماه پیش
والد
کامیت
6bc66010b0

+ 1 - 1
src/views/ConstructionApplication3D/Demolition/CQSetInfo.vue

@@ -64,7 +64,7 @@
         <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
       </div>
     </el-dialog>
-    <el-dialog title="编辑" :modal="false" :visible.sync="editFormVisible" modal-append-to-body>
+    <el-dialog title="编辑" :modal="false" :visible.sync="editFormVisible" append-to-body="true" width="20rem">
       <el-form :model="oldRow" :rules="rules" ref="oldRow">
         <el-form-item label="房屋结构" prop="jg">
           <el-select v-model="oldRow.jg">

+ 46 - 36
src/views/ConstructionApplication3D/Demolition/DemolitionList.vue

@@ -263,10 +263,9 @@
                     </div>
                   </div>
                 </div>
-
-                <div id="JTDLChart" style="height: 12rem; width: 25rem;"></div>
                 <div id="JTOWNERChart" style="height:12rem; width: 25rem;"></div>
                 <div id="JTUSEChart" style="height: 12rem; width: 25rem;"></div>
+                <div id="JTDLChart" style="height: 12rem; width: 25rem;"></div>
 
               </el-tab-pane>
               <el-tab-pane label="青苗补偿评估" name="QMPG">
@@ -498,6 +497,7 @@
   </div>
 </template>
 <script>
+
 import {
   polygon,
   area,
@@ -1077,6 +1077,8 @@ export default {
       qsEntities: [],
       // handlerPolygon: null
       // clipMode: Cesium.ModifyRegionMode.CLIP_OUTSIDE;
+      gyqsChartdatas: [],
+      jtqsChartDatas: []
     };
   },
   created() {
@@ -1194,6 +1196,7 @@ export default {
             "endDateTime": endDate,
           }
         }
+       
         debugger
         getZdProjectList(queryParams).then((res) => {
           that.projectList = res.rows;
@@ -1222,8 +1225,6 @@ export default {
         that.rowsCount = list.length;
         list = list.slice((that.currentPage - 1) * that.pageSize, that.pageSize)
       }
-
-
     },
     onCurrentChange() {
       this.queryProject()
@@ -1260,8 +1261,6 @@ export default {
       second = second < 10 ? ('0' + second) : second;
       return y.toString() + '-' + m.toString() + '-' + d.toString() + ' ' + h.toString() + ':' + minute.toString() + ':' + second.toString();
     },
-
-
     //关闭窗体
     dialogClose() {
       viewer.entities.removeAll();
@@ -1302,7 +1301,7 @@ export default {
         },
         // offset: [left.toString(), top.toString()], //left top  左上角(left=430px/2;top=(800px+header高)/2)
         area: ["35rem", "40rem"],
-        title: "拆迁补偿标准",
+        title: "拆迁补偿标准详情",
         maxmin: false,
         shade: false, //是否显示遮罩
         shadeClose: false, //点击遮罩是否关闭
@@ -1330,7 +1329,7 @@ export default {
         },
         // offset: [left.toString(), top.toString()], //left top  左上角(left=430px/2;top=(800px+header高)/2)
         area: ["50rem", "40rem"],
-        title: "拆迁补偿标准置",
+        title: "拆迁补偿标准置",
         maxmin: false,
         shade: false, //是否显示遮罩
         shadeClose: false, //点击遮罩是否关闭
@@ -1357,8 +1356,8 @@ export default {
           data: { qmValue: that.ruleForm.qmValue }, //props
         },
         // offset: [left.toString(), top.toString()], //left top  左上角(left=430px/2;top=(800px+header高)/2)
-        area: ["30rem", "15rem"],
-        title: "青苗补偿标准",
+        area: ["30rem", "18rem"],
+        title: "青苗补偿标准详情",
         maxmin: false,
         shade: false, //是否显示遮罩
         shadeClose: false, //点击遮罩是否关闭
@@ -1385,8 +1384,8 @@ export default {
           data: { qmValue: that.ruleForm.qmValue }, //props
         },
         // offset: [left.toString(), top.toString()], //left top  左上角(left=430px/2;top=(800px+header高)/2)
-        area: ["35rem", "20rem"],
-        title: "青苗补偿标准置",
+        area: ["35rem", "16rem"],
+        title: "青苗补偿标准置",
         maxmin: false,
         shade: false, //是否显示遮罩
         shadeClose: false, //点击遮罩是否关闭
@@ -1414,7 +1413,7 @@ export default {
         },
         // offset: [left.toString(), top.toString()], //left top  左上角(left=430px/2;top=(800px+header高)/2)
         area: ["35rem", "32rem"],
-        title: "征地补偿标准",
+        title: "征地补偿标准详情",
         maxmin: false,
         shade: false, //是否显示遮罩
         shadeClose: false, //点击遮罩是否关闭
@@ -1442,7 +1441,7 @@ export default {
         },
         // offset: [left.toString(), top.toString()], //left top  左上角(left=430px/2;top=(800px+header高)/2)
         area: ["35rem", "37rem"],
-        title: "征地补偿标准",
+        title: "征地补偿标准配置",
         maxmin: false,
         shade: false, //是否显示遮罩
         shadeClose: false, //点击遮罩是否关闭
@@ -1946,7 +1945,7 @@ export default {
       myChart.clear()
       myChart.setOption(option);
       var showOrHide = false;
-      that.JTDLLoad(null, showOrHide);
+      // that.JTDLLoad(null, showOrHide);
       myChart.on("legendselectchanged", function (parmas) {
         that.pickEntity('ZDJTYD');
         var name = parmas.name
@@ -1989,10 +1988,10 @@ export default {
         else {
 
           var dlColor = that.getLandColor(dlmc);
-        var color = dlColor.replace("rgb", "")
-          .replace("(", "")
-          .replace(")", "");
-        var colorArr = color.split(",");
+          var color = dlColor.replace("rgb", "")
+            .replace("(", "")
+            .replace(")", "");
+          var colorArr = color.split(",");
           attributes = {
             fieldNames: that.zdResult.fieldInfos,
             fieldValues: features[i].fieldValues,
@@ -2131,7 +2130,7 @@ export default {
       myChart.setOption(option);
 
       var shaowOrHide = false;
-      that.GYDLLoad(null, shaowOrHide);
+      // that.GYDLLoad(null, shaowOrHide);
       myChart.on("legendselectchanged", function (parmas) {
         that.pickEntity('ZDGYDL');
         var name = parmas.name
@@ -2509,7 +2508,7 @@ export default {
       // var chartDom = document.getElementById('CQBCChart');
       // var myChart = window.echarts.init(chartDom);
 
-      item = {
+      var item = {
         id: smid,
         smid: smid,
         cqr: cqrVal,
@@ -2533,7 +2532,7 @@ export default {
       var that = this;
       var chartDom = document.getElementById("GYQSChart");
       var myChart = window.echarts.init(chartDom);
-      var datas = [];
+      that.gyqsChartdatas = [];
       var nameLength = 0;
       var colors = ["rgb(63,177,227)", "rgb(107,230,193)", "rgb(196,235,173)", "rgb(150,222,232)"];
       // ["rgb(245,248,220)", "rgb(191,233,170)", "rgb(104,177,103)", "rgb(205,245,122)",
@@ -2544,9 +2543,8 @@ export default {
       var color = "";
       var qsList = [];
 
-
       for (var i = 0; i < that.qsResult.stateUsedList.length; i++) {
-        datas.push({
+        that.gyqsChartdatas.push({
           value: Number(that.qsResult.stateUsedList[i].mj.toFixed(2)),
           name: that.qsResult.stateUsedList[i].qsdwmc,
         });
@@ -2580,9 +2578,9 @@ export default {
           pageTextStyle: {
             color: "#ffffff"
           },
-          data: datas.map((t) => t.name),
+          data: that.gyqsChartdatas.map((t) => t.name),
           formatter: function (name) {
-            var val = datas.find((t) => t.name == name).value;
+            var val = that.gyqsChartdatas.find((t) => t.name == name).value;
             var spname = '';
             if (name.length > 13) {
 
@@ -2632,20 +2630,21 @@ export default {
             labelLine: {
               show: false,
             },
-            data: datas,
+            data: that.gyqsChartdatas,
           },
         ],
       };
+
       myChart.clear();
       myChart.setOption(option);
-      that.GYQSLoad(datas);
+      // that.GYQSLoad(datas);
 
       myChart.on("legendselectchanged", function (parmas) {
         that.pickEntity('ZDGYQS');
         var name = parmas.name
         var showOrHide = parmas.selected[name]
         // var index = Object.keys(parmas.selected).findIndex(t => t == name)
-        that.GYQSLoad(datas, name, showOrHide);
+        that.GYQSLoad(that.gyqsChartdatas, name, showOrHide);
       });
     },
     GYQSLoad(datas, name, showOrHide) {
@@ -2873,7 +2872,7 @@ export default {
       myChart.clear();
       myChart.setOption(option);
       var shaowOrHide = false;
-      that.JTUseLoad(datas, null, shaowOrHide)
+      // that.JTUseLoad(datas, null, shaowOrHide)
       myChart.on("legendselectchanged", function (parmas) {
         that.pickEntity('ZDJTUSE');
         var name = parmas.name
@@ -3111,7 +3110,7 @@ export default {
         ],
       };
       var showOrHide = false;
-      that.JTOwnerLoad(datas, null, showOrHide);
+      // that.JTOwnerLoad(datas, null, showOrHide);
       myChart.clear();
       myChart.setOption(option);
       myChart.on("legendselectchanged", function (parmas) {
@@ -3774,6 +3773,7 @@ export default {
      * point1(裁剪),points2(被裁剪) [{x:1,y:2}]
      */
     computerInsertArea(points1, points2) {
+      var area = 0;
       if (
         points1 == null ||
         points2 == null ||
@@ -3781,7 +3781,7 @@ export default {
         points1.length == 0
       ) {
         console.log("征地补偿图斑计算传入参数错误");
-        return 0;
+        area = 0;
       }
       var parts1 = [];
       var poly1 = [];
@@ -3793,18 +3793,28 @@ export default {
       }
       poly1 = polygon([parts1]);
       var textarea = area(poly1) * window.earthRadius;
-      console.log("分析范围:" + textarea);
+
       for (var i = 0; i < points2.length; i++) {
         parts2.push([points2[i].x, points2[i].y]);
       }
       poly2 = polygon([parts2]);
       var isContain = booleanContains(poly1, poly2);
-      if (isContain) return area(poly2) * window.earthRadius;
+      if (isContain) {
+        area = area(poly2) * window.earthRadius;
+      }
       else {
         var intersection = intersect(poly1, poly2);
-        return area(intersection) * window.earthRadius;
+        area = area(intersection) * window.earthRadius;
       }
-      return 0;
+      return area;
+    },
+    areaFrom4326To4525(region) {
+      var fromProj = proj4.defs();
+      var toProj = proj4.defs(window.localWkid4525);
+      proj4.defs("EPSG:4525", "+proj=longlat +ellps=GRS80 +no_defs +type=crs");
+      var point;
+
+      proj4.transform(fromProj, toProj, point)
     },
 
     /**

+ 2 - 4
src/views/ConstructionApplication3D/Demolition/QMSetInfo.vue

@@ -34,16 +34,14 @@
       <el-button type="primary" @click="saveAs()">另存为</el-button>
       <el-button type="primary" @click="reset()">重置</el-button>
     </el-row>
-    <el-dialog title="标准名称设置" :modal="false" :visible.sync="dialogFormVisible" modal-append-to-body>
+    <el-dialog title="标准名称设置" :modal="false" :visible.sync="dialogFormVisible" append-to-body="true" width="20rem">
       <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
         <el-form-item label="名称" prop="name">
           <el-input v-model="ruleForm.name" autocomplete="off"></el-input>
         </el-form-item>
-      </el-form>
-      <div slot="footer" class="dialog-footer">
         <el-button @click="dialogFormVisible = false">取消</el-button>
         <el-button type="primary" @click="submitForm('ruleForm')">确 定</el-button>
-      </div>
+      </el-form>
     </el-dialog>
   </div>
 </template>

+ 1 - 1
src/views/ConstructionApplication3D/Demolition/ZDSetInfo.vue

@@ -62,7 +62,7 @@
       <el-button type="primary" @click="saveAs()">另存为</el-button>
       <el-button type="primary" @click="reset()">重置</el-button>
     </el-row>
-    <el-dialog title="标准名称设置" :modal="false" :visible.sync="dialogFormVisible" modal-append-to-body>
+    <el-dialog title="标准名称设置" :modal="false" :visible.sync="dialogFormVisible" append-to-body="true" width="20rem">
       <el-form :model="ruleForm" :rules="rules" ref="ruleForm">
         <el-form-item label="名称" prop="name">
           <el-input v-model="ruleForm.name"></el-input>

+ 5 - 5
src/views/ConstructionApplication3D/Demolition/ZDShowInfo.vue

@@ -13,7 +13,7 @@
     </el-row>
     <el-row style="display: flex; align-items: center">
       <el-col :span="6">土地年产值:</el-col>
-      <el-col :span="16"><el-input controls-position="right" size="mini" style="width: 100%" type="number"
+      <el-col :span="16"><el-input controls-position="right" size="mini" style="width: 100%" 
           placeholder="请输入" v-model="curBCBZ.tdcz" @change="changeZDBZ"></el-input>
       </el-col>
       <el-col :span="2">元/亩</el-col>
@@ -24,13 +24,13 @@
     </el-row>
     <el-row>
       <el-col :span="6">综合补偿倍数:</el-col>
-      <el-col :span="16"><el-input size="mini" style="width: 100%" type="number" placeholder="请输入"
+      <el-col :span="16"><el-input size="mini" style="width: 100%"  placeholder="请输入"
           v-model="curBCBZ.tdbcbs" @change="changeZDBZ"></el-input></el-col>
     </el-row>
     <el-row>
       <el-col :span="6">土地补偿费:</el-col>
       <el-col :span="16">
-        <el-input size="mini" placeholder="自动计算" readonly type="number" v-model="curBCBZ.tdbcf"></el-input></el-col>
+        <el-input size="mini" placeholder="自动计算" readonly  v-model="curBCBZ.tdbcf"></el-input></el-col>
       <el-col :span="2">元/亩</el-col>
     </el-row>
     <el-row class="subtitle">
@@ -39,12 +39,12 @@
     </el-row>
     <el-row>
       <el-col :span="6">综合补偿倍数</el-col>
-      <el-col :span="16"><el-input size="mini" type="number" style="width: 100%" placeholder="请输入"
+      <el-col :span="16"><el-input size="mini"  style="width: 100%" placeholder="请输入"
           v-model="curBCBZ.azbcbs" @change="changeZDBZ"></el-input></el-col>
     </el-row>
     <el-row>
       <el-col :span="6">安置补偿费:</el-col>
-      <el-col :span="16"><el-input size="mini" v-model="curBCBZ.azbcf" readonly type="number"
+      <el-col :span="16"><el-input size="mini" v-model="curBCBZ.azbcf" readonly 
           placeholder="自动计算"></el-input></el-col>
       <el-col :span="2">元/亩</el-col>
     </el-row>

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 1
src/views/ConstructionApplication3D/Demolition/zdAnalyse.js


+ 3 - 1
src/views/ConstructionApplication3D/MXDBinfo/MXDBinfo.vue

@@ -521,7 +521,9 @@ export default {
     },
   },
 
-  beforeDestroy() {},
+  beforeDestroy() {
+    this.removeAll();
+  },
 };
 </script>
 <style lang="scss">

+ 3 - 3
src/views/ConstructionApplication3D/RSAnalysis/RSAnalysis.vue

@@ -5,7 +5,7 @@
   >
     <el-row
       :gutter="5"
-      style="border: 1px solid #06c4f3; padding: 0.5rem; color: #ffffff"
+      style="border: 1px dashed #02a7f0; padding: 0.5rem; color: #ffffff"
     >
       定点分析:
       <el-row :gutter="5">
@@ -39,7 +39,7 @@
     </el-row>
     <el-row
       :gutter="5"
-      style="border: 1px solid #06c4f3; padding: 0.5rem; color: #ffffff"
+      style="border: 1px dashed #02a7f0; padding: 0.5rem; color: #ffffff"
     >
       环视分析:
       <el-row :gutter="5">
@@ -87,7 +87,7 @@
     </el-row>
     <el-row
       :gutter="5"
-      style="border: 1px solid #06c4f3; padding: 0.5rem; color: #ffffff"
+      style="border: 1px dashed #02a7f0; padding: 0.5rem; color: #ffffff"
     >
       沿线飞行:
       <el-row :gutter="2">

+ 276 - 0
src/views/ConstructionApplication3D/clipboxByEditor/clipboxByEditor.vue

@@ -0,0 +1,276 @@
+<template>
+  <div
+    class="ZTGlobal"
+    style="width: 100%; padding: 1rem 1rem 0rem 1rem; color: white"
+  >
+    <el-form label-width="80px">
+      <el-form-item label="模式切换">
+        <el-button
+          v-if="!underground"
+          size="mini"
+          type="primary"
+          @click="undergroundModeAnalysis"
+          >切换到地下</el-button
+        >
+        <el-button
+          v-if="underground"
+          size="mini"
+          type="primary"
+          @click="undergroundModeAnalysis"
+          >切换到地上</el-button
+        >
+        <el-button size="mini" @click="removeEntities">清除</el-button>
+      </el-form-item>
+      <el-form-item label="剖切">
+        <el-button size="mini" type="primary" @click="onSubmit"
+          >绘制剖切</el-button
+        >
+        <el-checkbox v-model="checked">切换到地下</el-checkbox>
+      </el-form-item>
+      <!-- <el-form-item label="">
+        <el-button size="mini" @click="removeEntities">清除</el-button>
+      </el-form-item> -->
+    </el-form>
+  </div>
+</template>
+
+<script>
+import { v4 as uuidv4 } from "uuid";
+import {
+  cartesian3ToWGS84,
+  mapQuery,
+  flatten,
+  mercator2lonLat,
+  undergroundMode,
+} from "@/utils/MapHelper/MapHelper.js";
+import {
+  point,
+  buffer,
+  bboxPolygon,
+  square,
+  destination,
+  polygon,
+  booleanPointInPolygon,
+} from "@turf/turf";
+let polygonids = [];
+var editorBox;
+var boxEntity;
+let handlerBox;
+export default {
+  data() {
+    return {
+      //地下模式状态
+      underground: false,
+      tooltip: createTooltip(document.body),
+      checked: false,
+    };
+  },
+  props: {
+    info: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+    layerid: {
+      type: String,
+      default: "",
+    },
+    lydata: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+    lyoption: {
+      type: Object,
+      default: () => {
+        return {};
+      },
+    },
+  },
+  computed: {},
+  mounted() {},
+  methods: {
+    //绘制剖切
+    async onSubmit() {
+      this.removeEntities();
+      if (this.checked) {
+        this.undergroundModeAnalysis(true);
+      }
+
+      let that = this;
+
+      handlerBox = new Cesium.DrawHandler(viewer, Cesium.DrawMode.Box);
+      handlerBox.movingEvt.addEventListener(function (windowPosition) {
+        if (handlerBox.isDrawing) {
+          that.tooltip.showAt(
+            windowPosition,
+            "<p>点击鼠标左键结束矩形绘制,移动鼠标绘制box高度。</p><p>右键结束绘制.</p>"
+          );
+        } else {
+          that.tooltip.showAt(
+            windowPosition,
+            "<p>点击鼠标左键,开始绘制矩形作为box底面</p>"
+          );
+        }
+      });
+      handlerBox.drawEvt.addEventListener(function (e) {
+        boxEntity = e.object;
+        var newDim = boxEntity.box.dimensions.getValue();
+        var position = boxEntity.position.getValue(0);
+        var boxOption = {
+          dimensions: newDim,
+          position: position,
+          clipMode: "clip_behind_all_plane",
+          heading: 0,
+        };
+
+        //box编辑
+        editorBox = new Cesium.BoxEditor(viewer, boxEntity);
+
+        editorBox.editEvt.addEventListener(function (e) {
+          boxEntity.box.dimensions = e.dimensions;
+          boxEntity.position = e.position;
+          boxEntity.orientation = e.orientation;
+
+          that.setClipBox();
+        });
+        editorBox.distanceDisplayCondition =
+          new Cesium.DistanceDisplayCondition(0, 950);
+        editorBox.activate();
+        that.setAllLayersClipOptions(boxOption);
+        that.tooltip.setVisible(false);
+        handlerBox.clear();
+        handlerBox.deactivate();
+      });
+      handlerBox.activate();
+    },
+    setClipBox() {
+      let that = this;
+      var clipMode = "clip_behind_all_plane";
+      if (typeof boxEntity == "undefined") {
+        return;
+      }
+      var newDim = boxEntity.box.dimensions.getValue();
+      var position = boxEntity.position.getValue(0);
+
+      var heading = 0;
+      if (typeof boxEntity.orientation != "undefined") {
+        let rotationM3 = Cesium.Matrix3.fromQuaternion(
+          boxEntity.orientation._value,
+          new Cesium.Matrix3()
+        );
+        let localFrame = Cesium.Matrix4.fromRotationTranslation(
+          rotationM3,
+          Cesium.Cartesian3.ZERO,
+          new Cesium.Matrix4()
+        );
+        let inverse = Cesium.Matrix4.inverse(
+          Cesium.Transforms.eastNorthUpToFixedFrame(position),
+          new Cesium.Matrix4()
+        );
+        let hprm = Cesium.Matrix4.multiply(
+          inverse,
+          localFrame,
+          new Cesium.Matrix4()
+        );
+        var rotation = Cesium.Matrix4.getMatrix3(hprm, new Cesium.Matrix3());
+        let hpr = Cesium.HeadingPitchRoll.fromQuaternion(
+          Cesium.Quaternion.fromRotationMatrix(rotation)
+        );
+        heading = hpr.heading;
+      }
+
+      var boxOptions = {
+        dimensions: newDim,
+        position: position,
+        clipMode: clipMode,
+        heading: heading,
+      };
+      that.setAllLayersClipOptions(boxOptions);
+    },
+
+    setAllLayersClipOptions(boxOptions) {
+      let layers = scene.layers.layerQueue;
+      for (var i = 0, j = layers.length; i < j; i++) {
+        layers[i].setCustomClipBox(boxOptions);
+      }
+    },
+    //清除
+    removeEntities() {
+      let layers = scene.layers.layerQueue;
+      for (var i = 0, j = layers.length; i < j; i++) {
+        layers[i].clearCustomClipBox();
+      }
+      if (editorBox) {
+        editorBox.deactivate();
+      }
+
+      viewer.entities.removeAll();
+      if (handlerBox) {
+        handlerBox.clear();
+        handlerBox.deactivate();
+      }
+    },
+
+    /**
+     * 切换地下模式
+     * @param isunderground true 地下, false 地上,空 切换
+     */
+    undergroundModeAnalysis(isunderground) {
+      if (isunderground == true) {
+        this.underground = true;
+      } else if (isunderground == false) {
+        this.underground = false;
+      } else {
+        this.underground = !this.underground;
+      }
+      window.QXLayerNames.forEach((QXLayerName) => {
+        debugger;
+        let layer = scene.layers.find(QXLayerName);
+        if (this.underground) {
+          if (layer && layer.style3D) {
+            layer.style3D.fillForeColor.alpha = window.Layeralpha;
+          }
+          if (layer && layer.alpha) {
+            layer.alpha = window.Layeralpha;
+          }
+        }
+        // 倾斜图层通明度1
+        else {
+          if (layer && layer.style3D) {
+            layer.style3D.fillForeColor.alpha = 1;
+          }
+          if (layer && layer.alpha) {
+            layer.alpha = 1;
+          }
+        }
+      });
+
+      undergroundMode(this.underground);
+    },
+  },
+
+  beforeDestroy() {
+    this.undergroundModeAnalysis(false);
+    this.removeEntities();
+  },
+};
+</script>
+<style lang="scss">
+@import "@/../../zt.scss";
+</style>
+<style lang="scss" scoped>
+.el-card {
+  border: 0px solid #02a7f0;
+}
+.el-form-item {
+  margin-bottom: 0;
+}
+.grid-content {
+  display: flex;
+  justify-content: center;
+  align-items: center;
+}
+</style>

+ 21 - 4
src/views/ConstructionApplication3D/projectInfo/addProjectInfo.vue

@@ -28,7 +28,7 @@
           </el-form-item>
           <el-form-item label="用地面积" size="mini" prop="landarea">
             <el-col :span="20">
-              <el-input size="mini" v-model="form.landarea"></el-input>
+              <el-input size="mini" v-model.number="form.landarea"></el-input>
             </el-col>
             <el-col :span="4">平方米</el-col>
           </el-form-item>
@@ -64,7 +64,7 @@
             <el-col :span="20">
               <el-input
                 size="mini"
-                v-model="form.totalprojectinvestment"
+                v-model.number="form.totalprojectinvestment"
               ></el-input>
             </el-col>
             <el-col :span="4">亿元</el-col>
@@ -144,6 +144,14 @@ export default {
         landusenature: [
           { required: true, message: "用地性质", trigger: "blur" },
         ],
+        landarea: [
+          { required: true, message: "不能为空", trigger: "blur" },
+          { type: "number", message: "必须为数字值", trigger: "blur" },
+        ],
+        totalprojectinvestment: [
+          { required: true, message: "不能为空", trigger: "blur" },
+          { type: "number", message: "必须为数字值", trigger: "blur" },
+        ],
       },
     };
   },
@@ -175,8 +183,16 @@ export default {
   mounted() {
     debugger;
     // this.init();
-    if (this.info) {
+    if (this.info.id) {
       this.form = this.info;
+      if (this.form.landarea) {
+        this.form.landarea = Number(this.form.landarea);
+      }
+      if (this.form.totalprojectinvestment) {
+        this.form.totalprojectinvestment = Number(
+          this.form.totalprojectinvestment
+        );
+      }
     }
   },
   methods: {
@@ -184,7 +200,8 @@ export default {
       let that = this;
       this.$refs[formName].validate(async (valid) => {
         if (valid) {
-          if (this.info) {
+          if (this.info.id) {
+            debugger;
             let result = await updateProjectinformation(that.form);
             if (result.code) {
               that.$message({

+ 4 - 4
src/views/ConstructionApplication3D/projectInfo/projectInfo.vue

@@ -16,7 +16,7 @@
             info.plotnumber
           }}</el-descriptions-item>
           <el-descriptions-item label="用地面积">
-            {{ info.landarea }}
+            {{ info.landarea }}平方米
           </el-descriptions-item>
           <el-descriptions-item label="用地性质">{{
             info.landusenature
@@ -27,9 +27,9 @@
           <el-descriptions-item label="土地情况">{{
             info.landsituation
           }}</el-descriptions-item>
-          <el-descriptions-item label="项目总投资">{{
-            info.totalprojectinvestment
-          }}</el-descriptions-item>
+          <el-descriptions-item label="项目总投资"
+            >{{ info.totalprojectinvestment }}亿元</el-descriptions-item
+          >
           <el-descriptions-item label="资金来源">{{
             info.fundingsource
           }}</el-descriptions-item>

+ 37 - 25
src/views/ConstructionApplication3D/projectManagement/projectManagement.vue

@@ -58,6 +58,18 @@
                       @click.stop="openProjectInfo(item)"
                     ></i>
                   </el-tooltip>
+                  <el-tooltip
+                    class="item"
+                    effect="dark"
+                    content="项目修改"
+                    placement="top-start"
+                  >
+                    <i
+                      style="padding-left: 10px"
+                      class="el-icon-edit"
+                      @click.stop="openaddProjectInfo(item)"
+                    ></i>
+                  </el-tooltip>
 
                   <el-tooltip
                     class="item"
@@ -703,6 +715,7 @@ import ArchitecturaAnalysis from "@/views/ConstructionApplication3D/Architectura
 import RSAnalysis from "@/views/ConstructionApplication3D/RSAnalysis/RSAnalysis.vue";
 import BuildingStretchingAnalysis from "@/views/ConstructionApplication3D/BuildingStretchingAnalysis/BuildingStretchingAnalysis.vue";
 import parkResult from "@/views/ConstructionApplication3D/parkCheck/parkResult.vue";
+import clipboxByEditor from "@/views/ConstructionApplication3D/clipboxByEditor/clipboxByEditor.vue";
 import ghqk from "./ghqk.js";
 import CheckParkAnalyse from "./CheckParkAnalyse.js";
 import {
@@ -997,7 +1010,7 @@ export default {
       });
     },
     // 添加项目信息
-    openaddProjectInfo() {
+    openaddProjectInfo(item) {
       if (this.addProjectInfolayerid) {
         this.$layer.close(this.addProjectInfolayerid);
       }
@@ -1005,7 +1018,7 @@ export default {
         content: {
           content: addProjectInfo, //传递的组件对象
           parent: this, //当前的vue对象
-          data: {}, //props
+          data: { info: item }, //props
         },
 
         area: ["30rem", "38rem"], //宽 高
@@ -2153,30 +2166,29 @@ export default {
 
     //切换地下模式
     undergroundModeAnalysis() {
-      this.underground = !this.underground;
-      window.QXLayerNames.forEach((QXLayerName) => {
-        debugger;
-        let layer = scene.layers.find(QXLayerName);
-        if (this.underground) {
-          if (layer && layer.style3D) {
-            layer.style3D.fillForeColor.alpha = window.Layeralpha;
-          }
-          if (layer && layer.alpha) {
-            layer.alpha = window.Layeralpha;
-          }
-        }
-        // 倾斜图层通明度1
-        else {
-          if (layer && layer.style3D) {
-            layer.style3D.fillForeColor.alpha = 1;
-          }
-          if (layer && layer.alpha) {
-            layer.alpha = 1;
-          }
-        }
+      let that = this;
+      let w = document.body.offsetWidth;
+      let h = document.body.offsetHeight;
+      //左上角(left=弹窗宽/2;top=弹窗高/2+header高)
+      //右上角 (left=w-弹窗宽+(弹窗宽/2);top=弹窗高/2+header高);
+      let left = w - 340 + 340 / 2;
+      let top = 340 / 2 + 60;
+      this.XGFXInfolayerid = this.$layer.iframe({
+        content: {
+          content: clipboxByEditor, //传递的组件对象
+          parent: this, //当前的vue对象
+          data: {}, //props
+        },
+        offset: [left, top], //left top
+        area: ["340px", "180px"], //宽 高
+        title: "地下分析",
+        maxmin: false,
+        shade: false, //是否显示遮罩
+        shadeClose: false, //点击遮罩是否关闭
+        cancel: () => {
+          //关闭事件
+        },
       });
-
-      undergroundMode(this.underground);
     },
     //建筑退线
     backLineAnalysis(Minfo) {

+ 3 - 2
src/views/ConstructionApplication3D/skylineAnalysis/skylineAnalysis.vue

@@ -37,7 +37,7 @@ var endPoint;
 export default {
   data() {
     return {
-      skyColor: 'rgba(87, 126, 197, 0.23)',
+      skyColor: 'rgba(113, 155, 247, 0.5)',
       faceW: 200,
       faceH: 100,
       minH: 0,
@@ -203,7 +203,7 @@ export default {
             parent: that, //当前的vue对象
             data: { 'imageData': { 'height': that.faceH, 'width': that.viewW, 'data': base64data, 'minH': that.minH, "rgb": that.skyColor } }, //props
           },
-          area: ["100rem", "35rem"], //宽 高
+          area: ["70rem", "35rem"], //宽 高
           title: "天际线分析结果",
           maxmin: true,
           shade: false, //是否显示遮罩
@@ -247,6 +247,7 @@ export default {
       facade.clear();
       // drawHandler.clear();
       viewer.entities.removeAll();
+      // rgba(96, 150, 248, 0.8)
     }
 
   }

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 0 - 0
src/views/ConstructionApplication3D/skylineAnalysis/skylineExecute.js


برخی فایل ها در این مقایسه diff نمایش داده نمی شوند زیرا تعداد فایل ها بسیار زیاد است