From bcb6af1fa7973001a43bb08a2d7a8f96e81bc5e5 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Fri, 02 Sep 2022 17:53:22 +0800
Subject: [PATCH] 地块添加修改显示天地图

---
 src/views/land/landAdd.vue |  137 +++++++++++++++++++++++++++++++++++++--------
 1 files changed, 111 insertions(+), 26 deletions(-)

diff --git a/src/views/land/landAdd.vue b/src/views/land/landAdd.vue
index cf861a7..d8f1a47 100644
--- a/src/views/land/landAdd.vue
+++ b/src/views/land/landAdd.vue
@@ -4,15 +4,21 @@
         :modal-append-to-body="false"
         :append-to-body="true"
         :close-on-click-modal="false"
-        width="60%"
+        width="80%"
         :visible.sync="visible"
+        top="10vh"
     >
         <avue-form ref="form" v-model="form" :option="option" @submit="submit">
             <!-- 地图插入 -->
             <template slot-scope="{ type, disabled }" slot="line">
-                <getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
+                <!-- <getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere> -->
+                
             </template>
         </avue-form>
+        <div class="map">
+            <iframe :src="url" frameborder="0" width="100%" height="100%"  ></iframe>
+        </div>
+
     </el-dialog>
 </template>
 
@@ -23,7 +29,10 @@
 import { getDeptTree } from "@/api/system/dept"
 import { add } from "@/api/land/land"
 import website from '@/config/website'
+import domtoimage from 'dom-to-image'
+import h2 from 'html2canvas'
 import getMapDataInThere from "./getMapDataInThere.vue"
+// import canvas2Image from 'canvas2Image'
 
 export default {
     components: {
@@ -36,6 +45,7 @@
             option: {
                 emptyBtn: false,
                 submitText: "保存",
+                submitBtn:false,
                 gutter: 30,
                 column: [
                     {
@@ -99,26 +109,49 @@
                         dataType: "number",
                         span: 6,
                     },
-                    {
-                        label: "地块展示",
-                        labelWidth: "0",
-                        prop: "line",
-                        className: "mapClass",
-                        span: 24,
-                        formslot: true,
-                    }
+                    // {
+                    //     label: "地块展示",
+                    //     labelWidth: "0",
+                    //     prop: "line",
+                    //     className: "mapClass",
+                    //     span: 24,
+                    //     formslot: true,
+                    // }
                 ],
             },
+            url:"",
+            landUrl:"",
+            polygon:[],
+            area:"",
             visible: false,
         }
     },
+    created() {
+        this.url = this.drawMapUrlBase + "/base?type=1&lng=112&lat=24&status=manage"
+    },
     computed: {
-        ...mapGetters(["userInfo", "permission", "polygons","$farmId"]),
+        ...mapGetters(["userInfo", "permission", "polygons","$farmId", "drawMapUrlBase"]),
+    },
+    watch:{
+        "landUrl":{
+            handler(newVal,oldVal){
+                this.$refs.form.submit()
+            }
+        }
     },
     mounted () {
         this.initData(this.userInfo.tenant_id)
+        window.addEventListener('message', this.handleMessage)
     },
     methods: {
+        handleMessage(event) {
+            if(event.type){
+                var obj = event.data
+                this.polygon = obj.polygons
+                this.landUrl =  obj.url
+                this.area = obj.area.toFixed(2) 
+            }
+        },
         initData (tenantId) {
             getFarmList().then(res => {
                 const column = this.findObject(this.option.column, "farmId")
@@ -135,17 +168,32 @@
         },
         // 表单提交
         submit (row, done) {
+            console.log(row)
             row['deptId'] = this.userInfo.dept_id
             // row.farmId = this.farm.id
+
+
             var that = this
-            if (this.polygons.length == 0) {
+            var poly = []
+            if(this.polygon.length !=0 ){
+                this.polygon.forEach((e)=>{
+                    poly.push({
+                        lng:e[0],
+                        lat:e[1]
+                    })
+                })
+                this.polygon = poly
+            }
+
+
+            if (this.polygon.length == 0) {
                 //没有面的数据
                 // this.$refs.getMapData.isCheck = true
                 // loading()
             } else {
                 //如果有值,空间坐标转换
-                let pol = this.polygons
-                let polLength = this.polygons.length - 1
+                let pol = this.polygon
+                let polLength = this.polygon.length - 1
                 let usePolygons = ""
                 for (let k in pol) {
                     usePolygons += pol[k].lng + "," + pol[k].lat
@@ -156,26 +204,59 @@
                 //设置坐标点
                 row.userId = this.userInfo.user_id
                 row.landRange = usePolygons
+
             }
+
+            // if (this.polygons.length == 0) {
+            //     //没有面的数据
+            //     // this.$refs.getMapData.isCheck = true
+            //     // loading()
+            // } else {
+            //     //如果有值,空间坐标转换
+            //     let pol = this.polygons
+            //     let polLength = this.polygons.length - 1
+            //     let usePolygons = ""
+            //     for (let k in pol) {
+            //         usePolygons += pol[k].lng + "," + pol[k].lat
+            //         if (k != polLength) {
+            //             usePolygons += ";"
+            //         }
+            //     }
+            //     //设置坐标点
+            //     row.userId = this.userInfo.user_id
+            //     row.landRange = usePolygons
+            //     console.log(row.landRange)
+            // }
+            
+
+
+            row['url'] = this.landUrl
+            row['landArea'] = this.area
             add(row).then(() => {
-                that.$emit("refreshOnLoad")
-                that.$refs.form.resetFields()
-                that.form.landUnit = "0"
-                that.visible = false
-                this.$message({
-                    type: "success",
-                    message: "操作成功!"
+                    that.$emit("refreshOnLoad")
+                    that.$refs.form.resetFields()
+                    that.form.landUnit = "0"
+                    that.visible = false
+                    this.$message({
+                        type: "success",
+                        message: "操作成功!"
+                    })
+                    done()
+                }, error => {
+                    // loading()
+                    window.console.log(error)
                 })
-                done()
-            }, error => {
-                // loading()
-                window.console.log(error)
-            })
+            
         },
+        
         setMapData (val) {
             this.LineData = val[0]
             this.PointData = val[1]
         },
+
+        showMap(){
+            this.mapVisible = true
+        }
     },
 };
 </script>
@@ -191,4 +272,8 @@
     top: 10px;
     left: 90px;
 }
+
+.map{
+    height: 450px;
+}
 </style>

--
Gitblit v1.9.3