Ver Fonte

智能选址前端修改

liutao há 3 meses atrás
pai
commit
bc5184db38

+ 25 - 15
web_ui/src/views/industrial-land/AiIndustriaLandDetail.vue

@@ -485,17 +485,18 @@ export default {
     this.$nextTick(() => {
       this.activeIndex = 0;
       this.initMap();
-      this.detailData = {
-        id: 48668,
-        dkid: "1895353609416212480",
-        xzqmc: "萧山区",
-        dkmc: "湘湖国家旅游度假区建设工矿仓储项目",
-        address: "位于萧山区义桥镇,东至空地,南至空地,西至空地,北至云临路。",
-        dkmj: 60.714,
-        tdyt: "工业用地",
-        center_wkt: "POINT(120.912063 29.486802)",
-      };
-      this.showDetail = true;
+      // this.detailData = {
+      //   id: 48668,
+      //   dkid: "1895353609416212480",
+      //   xzqmc: "萧山区",
+      //   dkmc: "湘湖国家旅游度假区建设工矿仓储项目",
+      //   address: "位于萧山区义桥镇,东至空地,南至空地,西至空地,北至云临路。",
+      //   dkmj: 60.714,
+      //   tdyt: "工业用地",
+      //   tax:'100',
+      //   center_wkt: "POINT(120.912063 29.486802)",
+      // };
+      // this.showDetail = true;
       // this.checkPermision();
     });
   },
@@ -610,6 +611,7 @@ export default {
       this.zwinputText = "";
       this.questionModal = false;
       this.histories = new ArrayQueue(5);
+      this.toggleInfoTab();
       this.toggleTab(0);
     },
     zwsend() {
@@ -620,6 +622,7 @@ export default {
       // this.hzData = [item]
       this.hzData.push(item);
       this.activeIndex = 0;
+      this.toggleInfoTab();
       this.send();
     },
     //ai超时超过3.5分钟 或者报错处理,结束请求提示未查询到信息
@@ -994,11 +997,15 @@ export default {
         this.detailData = data.data.features[0].properties;
         this.detailData.center_wkt = item.center_wkt;
         var geojson = data.data.features[0].geometry;
+        this.detailData.wkt = wkt.stringify(geojson);
+        console.log("this.detailData");
+        console.log(this.detailData);
         var geos = L.geoJSON(geojson, {
           style: function (feature) {
             return { color: "red", fillOpacity: 0 };
           },
         });
+
         this.dkGeo = geos;
         this.dkGeoJson = geojson;
         this.geojsonLayer = geos.addTo(this.map);
@@ -1116,6 +1123,11 @@ export default {
         });
         this.wktToGeojsonLayer = null;
       }
+      if (this.nearMarkerList && this.nearMarkerList.length > 0) {
+        this.nearMarkerList.forEach((ele) => {
+          this.map.removeLayer(ele);
+        });
+      }
     },
     addClusterLayer(points) {
       this.nearMarkerList.forEach((ele) => {
@@ -1124,12 +1136,13 @@ export default {
       this.nearMarkerList = [];
       points.forEach((ele) => {
         var className = "point-yellow-icon";
-        let ll=  String.fromCharCode(65+ele.letter)
+        let ll = String.fromCharCode(65 + ele.letter);
         var myIcon = L.divIcon({
           html: "<div>" + ll + "<div>",
           className: className,
           //图标大小
           iconSize: [28, 28],
+          properties: ll,
         });
         var marker = L.marker([ele.latitude, ele.longitude], {
           icon: myIcon,
@@ -1152,9 +1165,6 @@ export default {
           className: className,
           //图标大小
           iconSize: [32, 32],
-        });
-        this.nearMarkerList.forEach(ele=>{
-
         });
         this.map.flyTo([centerList[1], centerList[0]], 17);
         // this.markerLayer = L.marker([centerList[1], centerList[0]], {

+ 161 - 90
web_ui/src/views/industrial-land/ZnxzDetail.vue

@@ -231,7 +231,7 @@
               <div class="table">
                 <div class="table-con">
                   <div class="t-item">
-                    <div class="th c1">地类名称</div>
+                    <div class="th c1">用地性质</div>
                     <div class="th t2 c6">占用面积(亩)</div>
                   </div>
                   <div
@@ -298,7 +298,7 @@
                 @click="goLocationByCenter(item)"
               >
                 <div class="name">
-                  <div class="icon">{{ index |transNumber}}</div>
+                  <div class="icon">{{ index | transNumber }}</div>
                   <div class="bt">{{ item.name }}</div>
                 </div>
                 <div class="value c" v-if="item.label">
@@ -396,7 +396,7 @@
                 :key="index"
               >
                 <div class="name">
-                  <div class="icon">{{index | transNumber }}</div>
+                  <div class="icon">{{ index | transNumber }}</div>
                   <div class="bt">{{ item.name }}</div>
                 </div>
                 <div class="value">
@@ -435,6 +435,50 @@ export default {
   },
   data() {
     return {
+      xzfxResult: {
+        code: 0,
+        data: {
+          sdIntersectArea: 1,
+          gdIntersectArea: 2,
+          zzydIntersectArea: 3,
+          ldIntersectArea: 4,
+          cdIntersectArea: 5,
+          jtysydIntersectArea: 6,
+          syjslssydIntersectArea: 7,
+          ssnydIntersectArea: 8,
+          czcjjsydIntersectArea: 9,
+          jsydIntersectArea: 10,
+        },
+        msg: "",
+      },
+
+      ghfxResult: {
+        code: 0,
+        data: [
+          {
+            intersectArea: 3108.5721669433706,
+            ydxz: "一类工业/二类工业兼容用地",
+          },
+          {
+            intersectArea: 1155.0272379748128,
+            ydxz: "防护绿地",
+          },
+          {
+            intersectArea: 497.01126515004717,
+            ydxz: "公用设施营业网点用地",
+          },
+        ],
+        msg: "",
+      },
+      sqsxResult: {
+        code: 0,
+        data: {
+          czkfbjIntersectArea: 4760.609707314682,
+          stbhhxIntersectArea: null,
+          yjjbntIntersectArea: 0,
+        },
+        msg: "",
+      },
       markercenter: [],
       surroundAnalysisData: {
         code: 200,
@@ -480,7 +524,7 @@ export default {
           ],
           trafficConditions: [
             {
-              name: "地铁站",
+              name: "公交站",
               result: [],
             },
             {
@@ -488,19 +532,19 @@ export default {
               result: [],
             },
             {
-              name: "道",
+              name: "道",
               result: [],
             },
             {
-              name: "港口",
+              name: "国道",
               result: [],
             },
             {
-              name: "公交站",
+              name: "地铁站",
               result: [],
             },
             {
-              name: "机场",
+              name: "乡道",
               result: [],
             },
             {
@@ -508,15 +552,15 @@ export default {
               result: [],
             },
             {
-              name: "道",
+              name: "道",
               result: [],
             },
             {
-              name: "国道",
+              name: "港口",
               result: [],
             },
             {
-              name: "县道",
+              name: "机场",
               result: [],
             },
           ],
@@ -884,7 +928,7 @@ export default {
         {
           name: "单位能耗增加值",
           value: "",
-          key: "unit_energy_comsumption_added",
+          key: "unit_energy_consumption_added",
         },
         {
           name: "单位排放增加值",
@@ -913,10 +957,6 @@ export default {
           name: "耕地",
           value: 0,
         },
-        {
-          name: "永久基本农田",
-          value: 0,
-        },
         {
           name: "园地",
           value: 0,
@@ -933,89 +973,24 @@ export default {
           name: "设施农用地",
           value: 0,
         },
-        {
-          name: "生态保护红线",
-          value: 0,
-        },
-        {
-          name: "城镇开发边界内",
-          value: 0,
-        },
         {
           name: "建设用地",
           value: 0,
         },
         {
-          name: "地质灾害低易发区",
+          name: "水域及水利设施用地",
           value: 0,
         },
         {
-          name: "重要矿产资源",
+          name: "城镇村及建设用地",
           value: 0,
         },
         {
-          name: "粮食生产功能区",
-          value: 0,
-        },
-        {
-          name: "生态公益林",
-          value: 0,
-        },
-      ],
-      ghfxList: [
-        {
-          name: "耕地",
-          value: 0,
-        },
-        {
-          name: "永久基本农田",
-          value: 0,
-        },
-        {
-          name: "园地",
-          value: 0,
-        },
-        {
-          name: "草地",
-          value: 0,
-        },
-        {
-          name: "林地",
-          value: 0,
-        },
-        {
-          name: "设施农用地",
-          value: 0,
-        },
-        {
-          name: "生态保护红线",
-          value: 0,
-        },
-        {
-          name: "城镇开发边界内",
-          value: 0,
-        },
-        {
-          name: "建设用地",
-          value: 0,
-        },
-        {
-          name: "地质灾害低易发区",
-          value: 0,
-        },
-        {
-          name: "重要矿产资源",
-          value: 0,
-        },
-        {
-          name: "粮食生产功能区",
-          value: 0,
-        },
-        {
-          name: "生态公益林",
+          name: "交通运输用地",
           value: 0,
         },
       ],
+      ghfxList: [],
       sqsxList: [
         {
           name: "永久基本农田",
@@ -1492,7 +1467,7 @@ export default {
             const tempresults = posts[i].data.pois;
             for (let i = 0; i < tempresults.length; i++) {
               let titem = tempresults[i];
-              titem.letter = tindex;
+              // titem.letter = tindex;
               tindex++;
               const lnglat = titem.lonlat;
               const lng = lnglat.split(",")[0];
@@ -1512,25 +1487,115 @@ export default {
             (String(b.distance).indexOf("k") > -1 ? 1000 : 1);
           return distance - distance1;
         });
-        console.log(featureResultsList);
+        for (let j = 0; j < featureResultsList.length; j++) {
+          featureResultsList[j].letter = j;
+        }
         targetList.result = featureResultsList;
         let pointList = [];
         featureResultsList.forEach((e) => {
-          
           pointList.push({
             latitude: e.location.lat,
             longitude: e.location.lng,
             letter: e.letter,
           });
         });
-        console.log(pointList);
         that.$emit("cluster", pointList);
         // that.aroundInfolist = featureResultsList
         // that.initaroundGeometry(featureResultsList)
       });
     },
 
+    initXzfx(wktStr) {
+      this.xzfxList[0].value = 0;
+      this.xzfxList[1].value = 0;
+      this.xzfxList[2].value = 0;
+      this.xzfxList[3].value = 0;
+      this.xzfxList[4].value = 0;
+      this.xzfxList[5].value = 0;
+      this.xzfxList[6].value = 0;
+      this.xzfxList[7].value = 0;
+      this.xzfxList[8].value = 0;
+
+      axios
+        .get(window.ApplicationConfig.xzfxUrl + "?wkt=" + wktStr)
+        .then((d) => {
+          if (d && d.data && d.data.data) {
+            let data = d.data.data;
+            this.xzfxList[0].value = (data.gdIntersectArea * 0.0015).toFixed(2);
+            this.xzfxList[1].value = (data.zzydIntersectArea * 0.0015).toFixed(2);
+            this.xzfxList[2].value = (data.cdIntersectArea * 0.0015).toFixed(2);
+            this.xzfxList[3].value = (data.ldIntersectArea * 0.0015).toFixed(2);
+            this.xzfxList[4].value = (data.ssnydIntersectArea * 0.0015).toFixed(2);
+            this.xzfxList[5].value = (data.jsydIntersectArea * 0.0015).toFixed(2);
+            this.xzfxList[6].value = (data.syjslssydIntersectArea * 0.0015).toFixed(2);
+            this.xzfxList[7].value = (data.czcjjsydIntersectArea * 0.0015).toFixed(2);
+            this.xzfxList[8].value = (data.jtysydIntersectArea * 0.0015).toFixed(2);
+          }
+        });
+    },
+    initGhfx(wktStr) {
+      this.ghfxList = [];
+      axios
+        .get(window.ApplicationConfig.ghfxUrl + "?wkt=" + wktStr)
+        .then((d) => {
+          if (d && d.data && d.data.data) {
+            let data = d.data.data;
+            let map = {};
+            data.forEach((item) => {
+              if (item.ydxz in map) {
+                map[item.ydxz] += item.intersectArea;
+              } else {
+                map[item.ydxz] = item.intersectArea;
+              }
+            });
+            for (let k in map) {
+              this.ghfxList.push({
+                name: k,
+                value: (map[k] * 0.0015).toFixed(2),
+              });
+            }
+          }
+        });
+      // let map={};
+      // this.ghfxResult.data.forEach((item) => {
+      //   if (item.ydxz in map) {
+      //     map[item.ydxz] += item.intersectArea;
+      //   } else {
+      //     map[item.ydxz] = item.intersectArea;
+      //   }
+      // });
+      // for (let k in map) {
+      //   this.ghfxList.push({
+      //     name: k,
+      //     value: (map[k] * 0.0015).toFixed(2),
+      //   });
+      // }
+    },
+    initSqsx(wktStr) {
+      this.sqsxList[0].value = 0;
+      this.sqsxList[1].value = 0;
+      this.sqsxList[2].value = 0;
+      axios
+        .get(window.ApplicationConfig.sqsxUrl + "?wkt=" + wktStr)
+        .then((d) => {
+          if (d && d.data && d.data.data) {
+            let data = d.data.data;
+            this.sqsxList[0].value = data.yjjbntIntersectArea
+              ? (data.yjjbntIntersectArea * 0.0015).toFixed(2)
+              : 0;
+            this.sqsxList[1].value = data.czkfbjIntersectArea
+              ? (data.czkfbjIntersectArea * 0.0015).toFixed(2)
+              : 0;
+            this.sqsxList[2].value = data.stbhhxIntersectArea
+              ? (data.stbhhxIntersectArea * 0.0015).toFixed(2)
+              : 0;
+          }
+        });
+    },
     analysis() {
+      this.initXzfx(this.item.wkt);
+      this.initGhfx(this.item.wkt);
+      this.initSqsx(this.item.wkt);
       let pointWkt = this.item.center_wkt;
       var c = this.item.center_wkt;
       this.center = c.substring(6, c.length - 1).replace(" ", ",");
@@ -1675,9 +1740,15 @@ export default {
           that.dlfxList.push(t);
         });
       }
+      let plot_ratio_start = this.dkxx["plot_ratio_start"];
+      let plot_ratio_end = this.dkxx["plot_ratio_end"];
       this.dkxx.forEach((prop) => {
         if (prop.key in this.item) {
-          prop.value = this.item[prop.key];
+          if (prop.key == "tax" && this.item[prop.key]) {
+            prop.value = "≥" + this.item[prop.key];
+          } else {
+            prop.value = this.item[prop.key];
+          }
         }
       });
       this.loading = false;