From b5f7b312745b0788b4fa246591ff4884b01ff436 Mon Sep 17 00:00:00 2001
From: guanqb <18720758508@163.com>
Date: Sat, 03 Sep 2022 17:46:07 +0800
Subject: [PATCH] Merge branch 'master' of http://192.168.0.105:10010/r/zhny_web

---
 src/store/modules/user.js          |    3 
 src/views/farm/farmInfoDetail.vue  |   20 
 src/components/map/mainInThere.vue |   29 +
 src/views/remote/remote.vue        |   12 
 src/views/wel/land.vue             |  260 ++++++++--
 src/views/land/landAdd.vue         |  495 ++++++++++++++-------
 src/views/farmplant/farmplant.vue  |    3 
 src/store/getters.js               |    1 
 src/views/farm/farm.vue            |   26 
 src/views/land/landUpdate.vue      |  478 +++++++++++--------
 src/views/traceability/details.vue |    2 
 11 files changed, 852 insertions(+), 477 deletions(-)

diff --git a/src/components/map/mainInThere.vue b/src/components/map/mainInThere.vue
index 05a9d69..5c4b791 100644
--- a/src/components/map/mainInThere.vue
+++ b/src/components/map/mainInThere.vue
@@ -113,7 +113,12 @@
         //面实例
         zIndex: 22,
         source: new VectorSource()
-      })
+      }),
+      urls:[
+        "http://t{0-7}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0",
+        "http://t{0-7}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0"
+      ],
+      imgSrc:''
     };
   },
   computed: {
@@ -134,9 +139,21 @@
         new OlLayerTile({
           zIndex: 4,
           title: "影像",
-          source: new XYZ({
-            url:
-              "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal" // 行政区划
+          source: 
+          new XYZ({
+            // url:
+            //   "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal" // 行政区划
+            url:this.urls[0]
+          })
+        }),
+        new OlLayerTile({
+          zIndex: 5,
+          title: "区划",
+          source: 
+          new XYZ({
+            // url:
+            //   "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal" // 行政区划
+            url:this.urls[1],
           })
         })
       ],
@@ -155,8 +172,8 @@
 
     var view = ol2d.getView();
     this.source = new VectorSource({ wrapX: false });
-    view.setCenter([115.9032747077233, 28.67433116990186]);
-
+    // view.setCenter([115.9032747077233, 28.67433116990186]);
+    view.setCenter([116.56705776, 27.42386903]);
     this.view = view;
   },
   methods: {
diff --git a/src/store/getters.js b/src/store/getters.js
index 834a8ab..36f6173 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -22,6 +22,7 @@
     menu: state => state.user.menu,
     menuId: state => state.user.menuId,
     menuAll: state => state.user.menuAll,
+    drawMapUrlBase: state => state.user.drawMapUrlBase,
     logsList: state => state.logs.logsList,
     logsLen: state => state.logs.logsList.length || 0,
     logsFlag: (state, getters) => getters.logsLen === 0,
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 2fdc3b8..86565d3 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -51,7 +51,8 @@
     menuAll: getStore({name: 'menuAll'}) || [],
     token: getStore({name: 'token'}) || '',
     refreshToken: getStore({name: 'refreshToken'}) || '',
-    $farmId: 0
+    $farmId: 0,
+    drawMapUrlBase: 'http://182.106.212.58:8013'
   },
   actions: {
     loginInfoByToken({commit}) {
diff --git a/src/views/farm/farm.vue b/src/views/farm/farm.vue
index 15762ba..5a6ce90 100644
--- a/src/views/farm/farm.vue
+++ b/src/views/farm/farm.vue
@@ -31,9 +31,9 @@
                 >删 除</el-button>
             </template>
             <!-- 地图插入 -->
-            <template slot-scope="{ type, disabled }" slot="lineForm">
+            <!-- <template slot-scope="{ type, disabled }" slot="lineForm">
                 <getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
-            </template>
+            </template> -->
             <template slot-scope="{ type, size, row }" slot="menu">
                 <el-button
                     icon="el-icon-view"
@@ -236,17 +236,17 @@
                         },
                         action: "/api/blade-resource/oss/endpoint/put-files"
                     },
-                    {
-                        label: "路线展示",
-                        labelWidth: 145,
-                        prop: "line",
-                        className: "mapClass",
-                        hide: true,
-                        display: true,
-                        span: 24,
-                        formslot: true,
-                        addDisplay: true
-                    }
+                    // {
+                    //     label: "路线展示",
+                    //     labelWidth: 145,
+                    //     prop: "line",
+                    //     className: "mapClass",
+                    //     hide: true,
+                    //     display: true,
+                    //     span: 24,
+                    //     formslot: true,
+                    //     addDisplay: true
+                    // }
                 ],
             }
         }
diff --git a/src/views/farm/farmInfoDetail.vue b/src/views/farm/farmInfoDetail.vue
index b098c3c..6cc383b 100644
--- a/src/views/farm/farmInfoDetail.vue
+++ b/src/views/farm/farmInfoDetail.vue
@@ -5,13 +5,13 @@
             <basic-container>
                 <avue-form ref="form" v-model="objBase" :option="optionBase" @submit="submitBase">
                     <!-- 地图插入 -->
-                    <template slot-scope="{}" slot="position">
+                    <!-- <template slot-scope="{}" slot="position">
                         <getMapDataInThere
                             ref="getMapData"
                             id="getMapData"
                             @setMapData="setMapData"
                         ></getMapDataInThere>
-                    </template>
+                    </template> -->
                 </avue-form>
             </basic-container>
         </el-tab-pane>
@@ -160,14 +160,14 @@
                                 },
                                 action: "/api/blade-resource/oss/endpoint/put-files"
                             },
-                            {
-                                label: "农场位置",
-                                prop: "position",
-                                className: "mapClass",
-                                span: 24,
-                                formslot: true,
-                                labelWidth: 145,
-                            },
+                            // {
+                            //     label: "农场位置",
+                            //     prop: "position",
+                            //     className: "mapClass",
+                            //     span: 24,
+                            //     formslot: true,
+                            //     labelWidth: 145,
+                            // },
                         ],
                     },
                 ],
diff --git a/src/views/farmplant/farmplant.vue b/src/views/farmplant/farmplant.vue
index 16db0fa..4726340 100644
--- a/src/views/farmplant/farmplant.vue
+++ b/src/views/farmplant/farmplant.vue
@@ -30,7 +30,7 @@
                 >删 除</el-button>
             </template>
             <template slot-scope="{ type, size, row }" slot="menu">
-              <el-button icon="el-icon-check" :size="size" :type="type" @click="recovery(row)">采 收</el-button>
+              <el-button :disabled="row.plantingWay == 2" icon="el-icon-check" :size="size" :type="type" @click="recovery(row)">采 收</el-button>
               <!-- <el-button icon="el-icon-error" :size="size" :type="type" @click="over(row.id)">结 束</el-button> -->
               <el-button icon="el-icon-error" :size="size" :type="type" @click="getData(row)">结 束</el-button>
 
@@ -675,7 +675,6 @@
     methods: {
         //初始化数据
         initData () {
-            console.log(this.$farmId,66666666666)
             var that = this
             //获取农地数据
             getLandList(this.$farmId).then((res) => {
diff --git a/src/views/land/landAdd.vue b/src/views/land/landAdd.vue
index cf861a7..6664737 100644
--- a/src/views/land/landAdd.vue
+++ b/src/views/land/landAdd.vue
@@ -1,194 +1,343 @@
 <template>
-    <el-dialog
-        :title="title"
-        :modal-append-to-body="false"
-        :append-to-body="true"
-        :close-on-click-modal="false"
-        width="60%"
-        :visible.sync="visible"
-    >
-        <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>
-            </template>
-        </avue-form>
-    </el-dialog>
+  <el-dialog
+    :title="title"
+    :modal-append-to-body="false"
+    :append-to-body="true"
+    :close-on-click-modal="false"
+    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> -->
+      </template>
+    </avue-form>
+    <div class="map">
+      <iframe :src="url" frameborder="0" width="100%" height="100%"></iframe>
+    </div>
+  </el-dialog>
 </template>
 
 <script>
-
-import { mapGetters } from "vuex"
-import { getFarmList } from "@/api/farm/farm"
-import { getDeptTree } from "@/api/system/dept"
-import { add } from "@/api/land/land"
-import website from '@/config/website'
-import getMapDataInThere from "./getMapDataInThere.vue"
+import { mapGetters } from "vuex";
+import { getFarmList,getDetail } from "@/api/farm/farm";
+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 { number } from "echarts";
+// import canvas2Image from 'canvas2Image'
 
 export default {
-    components: {
-        getMapDataInThere
-    },
-    data () {
-        return {
-            title: "新增地块",
-            form: {},
-            option: {
-                emptyBtn: false,
-                submitText: "保存",
-                gutter: 30,
-                column: [
-                    {
-                        label: "地块名称",
-                        prop: "landName",
-                        rules: [{
-                            required: true,
-                            message: "请输入地块名称",
-                            trigger: "blur"
-                        }]
-                    },
-                    {
-                        label: "所属农场",
-                        prop: "farmId",
-                        type: "tree",
-                        value:"",
-                        dicData: [],
-                        props: {
-                            label: "farmName",
-                            value: "id"
-                        },
-                        disabled:true,
-                        slot: true,
-                        rules: [{
-                            required: true,
-                            message: "请选择所属农场",
-                            trigger: "click"
-                        }]
-                    },
-                    {
-                        label: "地块类型",
-                        type: "select",
-                        prop: "landType",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=land",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        dataType: "number",
-                        rules: [{
-                            required: true,
-                            message: "请选择地块类型",
-                            trigger: "blur"
-                        }]
-                    },
-                    {
-                        label: "面积单位",
-                        prop: "landUnit",
-                        value: "0",
-                        type: "select",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=landunit",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        rules: [{
-                            required: true,
-                            message: "请选择面积单位",
-                            trigger: "click"
-                        }],
-                        dataType: "number",
-                        span: 6,
-                    },
-                    {
-                        label: "地块展示",
-                        labelWidth: "0",
-                        prop: "line",
-                        className: "mapClass",
-                        span: 24,
-                        formslot: true,
-                    }
-                ],
+  components: {
+    getMapDataInThere,
+  },
+  data() {
+    return {
+      title: "新增地块",
+      form: {},
+      option: {
+        emptyBtn: false,
+        submitText: "保存",
+        submitBtn: false,
+        gutter: 30,
+        column: [
+          {
+            label: "地块名称",
+            prop: "landName",
+            rules: [
+              {
+                required: true,
+                message: "请输入地块名称",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "所属农场",
+            prop: "farmId",
+            type: "tree",
+            value: "",
+            dicData: [],
+            props: {
+              label: "farmName",
+              value: "id",
             },
-            visible: false,
+            disabled: true,
+            slot: true,
+            rules: [
+              {
+                required: true,
+                message: "请选择所属农场",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "地块类型",
+            type: "select",
+            prop: "landType",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=land",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            dataType: "number",
+            rules: [
+              {
+                required: true,
+                message: "请选择地块类型",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "面积",
+            prop: "landArea",
+            rules: [
+              {
+                required: true,
+                message: "请输入面积",
+                trigger: "click",
+              },
+            ],
+            span: 6,
+            type: "number",
+            controls: false,
+          },
+          {
+            label: "面积单位",
+            prop: "landUnit",
+            value: "0",
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=landunit",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择面积单位",
+                trigger: "click",
+              },
+            ],
+            dataType: "number",
+            span: 6,
+          },
+          // {
+          //     label: "地块展示",
+          //     labelWidth: "0",
+          //     prop: "line",
+          //     className: "mapClass",
+          //     span: 24,
+          //     formslot: true,
+          // }
+        ],
+      },
+      url: "",
+      landUrl: "",
+      polygon: [],
+      area: "",
+      farmInfo:{},
+      visible: false,
+    };
+  },
+  created() {
+    
+  },
+  computed: {
+    ...mapGetters([
+      "userInfo",
+      "permission",
+      "polygons",
+      "$farmId",
+      "drawMapUrlBase",
+    ]),
+  },
+  watch: {
+    landUrl: {
+      handler(newVal, oldVal) {
+        if (newVal) {
+          this.$refs.form.submit();
         }
+      },
     },
-    computed: {
-        ...mapGetters(["userInfo", "permission", "polygons","$farmId"]),
+    "form.landName": {
+      handler(newVal, oldVal) {
+        this.landUrl = "";
+      },
     },
-    mounted () {
-        this.initData(this.userInfo.tenant_id)
+    "form.landType": {
+      handler(newVal, oldVal) {
+        this.landUrl = "";
+      },
     },
-    methods: {
-        initData (tenantId) {
-            getFarmList().then(res => {
-                const column = this.findObject(this.option.column, "farmId")
-                column.dicData = res.data.data
-            })
-        },
-        //初始化
-        init () {
-            //清空面的数据
-            this.$store.commit('clear_polygon')
-            //计算当前时间
-            this.visible = true
-            this.form.farmId = this.$farmId
-        },
-        // 表单提交
-        submit (row, done) {
-            row['deptId'] = this.userInfo.dept_id
-            // row.farmId = this.farm.id
-            var that = this
-            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
-            }
-            add(row).then(() => {
-                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)
-            })
-        },
-        setMapData (val) {
-            this.LineData = val[0]
-            this.PointData = val[1]
-        },
+    "form.landArea": {
+      handler(newVal, oldVal) {
+        this.landUrl = "";
+      },
     },
+    "form.landUnit": {
+      handler(newVal, oldVal) {
+        this.landUrl = "";
+      },
+    },
+  },
+  mounted() {
+    this.initData(this.userInfo.tenant_id);
+    window.addEventListener("message", this.handleMessage);
+  },
+  methods: {
+    handleMessage(event) {
+      if (Number.isFinite(event.data)) {
+        this.form.landArea = (event.data * 0.0015).toFixed(2);
+      }
+
+      if (Object.prototype.toString.call(event.data) === "[object Object]") {
+        var obj = event.data;
+        this.polygon = obj.polygons;
+        this.landUrl = obj.url;
+      }
+    },
+    initData(tenantId) {
+      getFarmList().then((res) => {
+        const column = this.findObject(this.option.column, "farmId");
+        column.dicData = res.data.data;
+      });
+    },
+    //初始化
+    init() {
+      //清空面的数据
+      this.$store.commit("clear_polygon");
+      this.form.landArea = 0
+      this.visible = true;
+      this.form.farmId = this.$farmId;
+
+        getDetail(this.form.farmId).then(res=>{
+            this.farmInfo = res.data.data
+            this.url = this.drawMapUrlBase + "/base?type=1&lng=112&lat=24&status=manage&longitude="+this.farmInfo.longitude+"&latitude="+this.farmInfo.latitude;
+
+        })
+
+
+
+    },
+    // 表单提交
+    submit(row, done) {
+      row["deptId"] = this.userInfo.dept_id;
+      // row.farmId = this.farm.id
+
+      var that = this;
+      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.polygon;
+        let polLength = this.polygon.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;
+      }
+
+      // 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
+
+      if (row.landArea < 0) {
+        this.$message.warning("地块面积不能为负数");
+        done();
+        return;
+      }
+
+      add(row).then(
+        () => {
+          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);
+        }
+      );
+    },
+
+    setMapData(val) {
+      this.LineData = val[0];
+      this.PointData = val[1];
+    },
+
+    showMap() {
+      this.mapVisible = true;
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>
 .mapClass div label {
-    display: none;
+  display: none;
 }
 
 #getMapData {
-    width: 90%;
-    position: relative;
-    height: 400px;
-    top: 10px;
-    left: 90px;
+  width: 90%;
+  position: relative;
+  height: 400px;
+  top: 10px;
+  left: 90px;
+}
+
+.map {
+  height: 450px;
 }
 </style>
diff --git a/src/views/land/landUpdate.vue b/src/views/land/landUpdate.vue
index 57029e4..428d827 100644
--- a/src/views/land/landUpdate.vue
+++ b/src/views/land/landUpdate.vue
@@ -1,227 +1,299 @@
 <template>
-    <el-dialog
-        :title="title"
-        :modal-append-to-body="false"
-        :append-to-body="true"
-        :close-on-click-modal="false"
-        width="60%"
-        :visible.sync="visible"
-    >
-        <avue-form ref="form" v-model="form" :option="option" @submit="submit">
-            <!-- 地图插入 -->
-            <template slot-scope="{ type, disabled }" slot="line">
-                <getMapDataInThere :currentPolygons="form.landRange" ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
-            </template>
-        </avue-form>
-    </el-dialog>
+  <el-dialog
+    :title="title"
+    :modal-append-to-body="false"
+    :append-to-body="true"
+    :close-on-click-modal="false"
+    width="80%"
+    top="10vh"
+    :visible.sync="visible"
+  >
+    <avue-form ref="form" v-model="form" :option="option" @submit="submit">
+      <!-- 地图插入 -->
+      <template slot-scope="{ type, disabled }" slot="line">
+        <!-- <getMapDataInThere :currentPolygons="form.landRange" 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>
 
 <script>
-
-import { mapGetters } from "vuex"
-import { getFarmList } from "@/api/farm/farm"
-import { getDeptTree } from "@/api/system/dept"
-import {update} from "@/api/land/land"
-import website from '@/config/website'
-import getMapDataInThere from "./getMapDataInThere.vue"
+import { mapGetters } from "vuex";
+import { getFarmList } from "@/api/farm/farm";
+import { getDeptTree } from "@/api/system/dept";
+import { update } from "@/api/land/land";
+import website from "@/config/website";
+import getMapDataInThere from "./getMapDataInThere.vue";
 
 export default {
-    components: {
-        getMapDataInThere
-    },
-    data () {
-        return {
-            title: "编辑地块",
-            form: {},
-            isFarmNameCk:false,
-            option: {
-                emptyBtn: false,
-                submitText: "保存",
-                gutter: 30,
-                farmName:'',
-                column: [
-                    {
-                        label: "地块名称",
-                        prop: "landName",
-                        rules: [{
-                            required: true,
-                            message: "请输入地块名称",
-                            trigger: "blur"
-                        }]
-                    },
-                    {
-                        label: "所属农场",
-                        prop: "farmId",
-                        type: "tree",
-                        disabled:true,
-                        dicData: [],
-                        props: {
-                            label: "farmName",
-                            value: "id"
-                        },
-                        slot: true,
-                        click:function (value){
-                            this.isFarmNameCk = true
-                        },
-                        rules: [{
-                            required: true,
-                            message: "请选择所属农场",
-                            trigger: "click"
-                        }]
-                    },
-                    {
-                        label: "地块类型",
-                        type: "select",
-                        prop: "landType",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=land",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        dataType: "number",
-                        rules: [{
-                            required: true,
-                            message: "请选择地块类型",
-                            trigger: "blur"
-                        }]
-                    },
-                    {
-                        label: "面积单位",
-                        prop: "landUnit",
-                        value: "0",
-                        type: "select",
-                        dicUrl: "/api/blade-system/dict-biz/dictionary?code=landunit",
-                        props: {
-                            label: "dictValue",
-                            value: "dictKey"
-                        },
-                        dataType: "number",
-                        span: 6,
-                    },
-                    {
-                        label: "地块展示",
-                        labelWidth: "0",
-                        prop: "line",
-                        className: "mapClass",
-                        span: 24,
-                        formslot: true,
-                    }
-                ],
+  components: {
+    getMapDataInThere,
+  },
+  data() {
+    return {
+      title: "编辑地块",
+      form: {},
+      isFarmNameCk: false,
+      option: {
+        emptyBtn: false,
+        submitText: "保存",
+        submitBtn: false,
+        gutter: 30,
+        farmName: "",
+        column: [
+          {
+            label: "地块名称",
+            prop: "landName",
+            rules: [
+              {
+                required: true,
+                message: "请输入地块名称",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "所属农场",
+            prop: "farmId",
+            type: "tree",
+            disabled: true,
+            dicData: [],
+            props: {
+              label: "farmName",
+              value: "id",
             },
-            visible: false,
+            slot: true,
+            click: function (value) {
+              this.isFarmNameCk = true;
+            },
+            rules: [
+              {
+                required: true,
+                message: "请选择所属农场",
+                trigger: "click",
+              },
+            ],
+          },
+          {
+            label: "地块类型",
+            type: "select",
+            prop: "landType",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=land",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            dataType: "number",
+            rules: [
+              {
+                required: true,
+                message: "请选择地块类型",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "面积",
+            prop: "landArea",
+            rules: [
+              {
+                required: true,
+                message: "请输入面积",
+                trigger: "click",
+              },
+            ],
+            span: 6,
+            type: "number",
+            controls: false,
+          },
+          {
+            label: "面积单位",
+            prop: "landUnit",
+            value: "0",
+            type: "select",
+            dicUrl: "/api/blade-system/dict-biz/dictionary?code=landunit",
+            props: {
+              label: "dictValue",
+              value: "dictKey",
+            },
+            dataType: "number",
+            span: 6,
+          },
+          // {
+          //     label: "地块展示",
+          //     labelWidth: "0",
+          //     prop: "line",
+          //     className: "mapClass",
+          //     span: 24,
+          //     formslot: true,
+          // }
+        ],
+      },
+      url: "",
+      landUrl: "",
+      polygon: [],
+      area: "",
+      visible: false,
+    };
+  },
+  watch: {
+    landUrl: {
+      handler(newVal, oldVal) {
+        this.$refs.form.submit();
+      },
+    },
+  },
+  computed: {
+    ...mapGetters(["userInfo", "permission", "polygons", "drawMapUrlBase"]),
+  },
+  mounted() {
+    this.initData(this.userInfo.tenant_id);
+    window.addEventListener("message", this.handleMessage);
+  },
+  methods: {
+    handleMessage(event) {
+      if (Number.isFinite(event.data)) {
+        this.form.landArea = (event.data * 0.0015).toFixed(2);
+      }
+
+      if (Object.prototype.toString.call(event.data) === "[object Object]") {
+        var obj = event.data;
+        this.polygon = obj.polygons;
+        this.landUrl = obj.url;
+      }
+    },
+    initData(tenantId) {
+      const data = {
+        deptId: this.userInfo.dept_id,
+      };
+      getFarmList(data).then((res) => {
+        const column = this.findObject(this.option.column, "farmId");
+        column.dicData = res.data.data;
+      });
+    },
+    //初始化
+    init() {
+      this.url =
+        this.drawMapUrlBase +
+        "/revamp?type=1&status=manage&position=" +
+        this.$route.query.landRange;
+      //清空面的数据
+      this.$store.commit("clear_polygon");
+      //计算当前时间
+      this.visible = true;
+      this.form.landName = this.$route.query.landName;
+      this.form.id = this.$route.query.id;
+      this.form.landArea = this.$route.query.landArea;
+      this.form.farmId = this.$route.query.farmId;
+      this.form.$farmId = this.$route.query.deptname;
+      this.form.landUnit = this.$route.query.landUnit;
+      this.form.landType = this.$route.query.landType;
+      this.form.landRange = this.$route.query.landRange;
+
+      this.form.landRange = this.form.landRange.replace(/POLYGON\(\(/g, "");
+      this.form.landRange = this.form.landRange.replace(/\)\)/g, "");
+      // this.form.landRange = this.form.landRange.split(',')
+      this.form.landRange = this.form.landRange.replaceAll(",", ";");
+      this.form.landRange = this.form.landRange.replaceAll(" ", ",");
+    },
+    // 表单提交
+    submit(row, loading) {
+      row["deptId"] = this.userInfo.dept_id;
+      var that = this;
+
+      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) {
+        //如果有值,空间坐标转换
+        let pol = this.polygon;
+        let polLength = this.polygon.length - 1;
+        let usePolygons = "";
+        for (let k in pol) {
+          usePolygons += pol[k].lng + "," + pol[k].lat;
+          if (k != polLength) {
+            usePolygons += ";";
+          }
         }
-    },
-    computed: {
-        ...mapGetters(["userInfo", "permission", "polygons"]),
-    },
-    mounted () {
-        this.initData(this.userInfo.tenant_id)
-    },
-    methods: {
-        initData (tenantId) {
-            const data = {
-                deptId: this.userInfo.dept_id
-            }
-            getFarmList(data).then(res => {
-                const column = this.findObject(this.option.column, "farmId")
-                column.dicData = res.data.data
-            })
-        },
-        //初始化
-        init () {
-            //清空面的数据
-            this.$store.commit('clear_polygon')
-            //计算当前时间
-            this.visible = true
-            this.form.landName = this.$route.query.landName
-            this.form.id = this.$route.query.id
-            this.form.landArea = this.$route.query.landArea
-            this.form.farmId = this.$route.query.farmId
-            this.form.$farmId = this.$route.query.deptname
-            this.form.landUnit = this.$route.query.landUnit
-            this.form.landType = this.$route.query.landType
-            this.form.landRange = this.$route.query.landRange
+        //设置坐标点
+        row.userId = this.userInfo.user_id;
+        row.landRange = usePolygons;
 
-
-            this.form.landRange = this.form.landRange.replace(/POLYGON\(\(/g, '')
-            this.form.landRange = this.form.landRange.replace(/\)\)/g, '')
-            this.form.landRange = this.form.landRange.split(',')
-
-        },
-        // 表单提交
-        submit (row, loading) {
-            row['deptId'] = this.userInfo.dept_id
-            var that = this
-            if (this.polygons.length == 0) {
-                //没有面的数据
-                this.$refs.getMapData.isCheck = true
-                loading()
-                return
-            } 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
+        row["url"] = this.landUrl;
+        // row['landArea'] = this.area
+      }
+      update(row).then(
+        () => {
+          that.$emit("refreshOnLoad");
+          that.$refs.form.validate((vaild, done) => {
+            if (row.landArea < 0) {
+              this.$message.warning("地块面积不能为负数");
+              done();
+              return;
             }
 
-            update(row).then(() => {
-                that.$emit("refreshOnLoad")
-                that.$refs.form.validate((vaild,done)=>{
-                    if (vaild) {
-                        that.visible = false
-                        this.$message({
-                          type: "success",
-                          message: "操作成功!"
-                        })
-                      done()
-                      this.form.landRange = this.$route.query.landRange
-                      this.form.dica = row.$landUnit
-                      this.form.dic = row.$landType
-                      this.form.deptname = row.$farmId
+            if (vaild) {
+              that.visible = false;
+              this.$message({
+                type: "success",
+                message: "操作成功!",
+              });
+              done();
 
-                      var arr = [];
-                      this.$store.state.tags.tagList.forEach((item) => {
-                        if (item.label != "地块详情") {
-                          arr.push(item);
-                        }
-                      });
-                      this.$store.state.tags.tagList = arr;
-                      this.$router.replace({  path: `/LandDetail`, query: this.form  });
-                    }
+              //   this.form.landRange = this.$route.query.landRange
+              //   this.form.dica = row.$landUnit
+              //   this.form.dic = row.$landType
+              //   this.form.deptname = row.$farmId
 
-                })
-
-              }, error => {
-                  loading()
-                  window.console.log(error)
-              })
+              //   var arr = [];
+              //   this.$store.state.tags.tagList.forEach((item) => {
+              //     if (item.label != "地块详情") {
+              //       arr.push(item);
+              //     }
+              //   });
+              //   this.$store.state.tags.tagList = arr;
+              //   this.$router.replace({  path: `/land`, query: this.form  });
+              this.$router.go(-1);
+            }
+          });
         },
-        setMapData (val) {
-            this.LineData = val[0]
-            this.PointData = val[1]
-        },
+        (error) => {
+          loading();
+          window.console.log(error);
+        }
+      );
     },
+    setMapData(val) {
+      this.LineData = val[0];
+      this.PointData = val[1];
+    },
+  },
 };
 </script>
 <style lang="scss" scoped>
 .mapClass div label {
-    display: none;
+  display: none;
 }
 
 #getMapData {
-    width: 90%;
-    position: relative;
-    height: 400px;
-    top: 10px;
-    left: 90px;
+  width: 90%;
+  position: relative;
+  height: 400px;
+  top: 10px;
+  left: 90px;
+}
+.map {
+  height: 450px;
 }
 </style>
diff --git a/src/views/remote/remote.vue b/src/views/remote/remote.vue
index 10d8a74..ca53593 100644
--- a/src/views/remote/remote.vue
+++ b/src/views/remote/remote.vue
@@ -93,7 +93,7 @@
                         searchSpan:4,
                         rules: [{
                             required: true,
-                            message: "请输入reName",
+                            message: "请输入专题名称",
                             trigger: "blur"
                         }]
                     },
@@ -135,7 +135,7 @@
                         }]
                     },
                     {
-                        label: "通知时间",
+                        label: "拍摄时间",
                         prop: "releaseTimeRange",
                         type: "datetime",
                         format: "yyyy-MM-dd hh:mm:ss",
@@ -157,9 +157,11 @@
                         prop: "reTime",
                         search: true,
                         searchSpan: 4,
-                        type: "datetime",
-                        format: "yyyy-MM-dd",
-                        valueFormat: "yyyy-MM-dd",
+                        type: "month",
+                        // format: "yyyy-MM-dd",
+                        // valueFormat: "yyyy-MM-dd",
+                        format: "yyyy-MM",
+                        valueFormat: "yyyy-MM",
                         rules: [{
                             required: true,
                             message: "请输入遥感时间",
diff --git a/src/views/traceability/details.vue b/src/views/traceability/details.vue
index 58acef2..6d98fee 100644
--- a/src/views/traceability/details.vue
+++ b/src/views/traceability/details.vue
@@ -7,7 +7,7 @@
 export default {
   data() {
     return {
-      url: "/traceablityInfos.html",
+      url: "traceablityInfos.html",
     };
   },
   created(){
diff --git a/src/views/wel/land.vue b/src/views/wel/land.vue
index 1f26d0a..204f4bc 100644
--- a/src/views/wel/land.vue
+++ b/src/views/wel/land.vue
@@ -4,51 +4,59 @@
     :modal-append-to-body="false"
     :append-to-body="true"
     :close-on-click-modal="false"
-    width="60%"
+    width="80%"
+    top="10vh"
     :visible.sync="visible"
   >
     <avue-form ref="form" v-model="form" :option="option" @submit="submit">
       <!-- 地图插入 -->
       <template slot-scope="{ type, disabled }" slot="line">
-        <getMapDataInThere
+        <!-- <getMapDataInThere
           ref="getMapData"
           id="getMapData"
           @setMapData="setMapData"
-        ></getMapDataInThere>
+        ></getMapDataInThere> -->
       </template>
     </avue-form>
+
+    <div class="map">
+      <iframe :src="url" frameborder="0" width="100%" height="100%"></iframe>
+    </div>
   </el-dialog>
 </template>
 
 <script>
-
-import {mapGetters} from "vuex";
+import { mapGetters } from "vuex";
 import { getLandList } from "@/api/land/land";
+import { getDetail } from "@/api/farm/farm";
 import { getStrainList } from "@/api/farmplant/strain";
-import {add} from "@/api/land/land";
+import { add } from "@/api/land/land";
 import getMapDataInThere from "./getMapDataInThere.vue";
-import {getFarmList} from "@/api/farm/farm";
+import { getFarmList } from "@/api/farm/farm";
 export default {
   components: {
-    getMapDataInThere
+    getMapDataInThere,
   },
   data() {
     return {
-      title:"新增地块",
+      title: "新增地块",
       form: {},
       option: {
         emptyBtn: false,
         submitText: "保存",
+        submitBtn: false,
         gutter: 30,
         column: [
           {
             label: "地块名称",
             prop: "landName",
-            rules: [{
-              required: true,
-              message: "请输入地块名称",
-              trigger: "blur"
-            }]
+            rules: [
+              {
+                required: true,
+                message: "请输入地块名称",
+                trigger: "blur",
+              },
+            ],
           },
           {
             label: "所属农场",
@@ -57,15 +65,17 @@
             dicData: [],
             props: {
               label: "farmName",
-              value:"id"
+              value: "id",
             },
-            disabled:true,
+            disabled: true,
             slot: true,
-            rules: [{
-              required: true,
-              message: "请选择所属农场",
-              trigger: "click"
-            }]
+            rules: [
+              {
+                required: true,
+                message: "请选择所属农场",
+                trigger: "click",
+              },
+            ],
           },
           {
             label: "地块类型",
@@ -74,53 +84,124 @@
             dicUrl: "/api/blade-system/dict-biz/dictionary?code=land",
             props: {
               label: "dictValue",
-              value: "dictKey"
+              value: "dictKey",
             },
             dataType: "number",
-            rules: [{
-              required: true,
-              message: "请选择地块类型",
-              trigger: "blur"
-            }]
+            rules: [
+              {
+                required: true,
+                message: "请选择地块类型",
+                trigger: "blur",
+              },
+            ],
+          },
+          {
+            label: "面积",
+            prop: "landArea",
+            rules: [
+              {
+                required: true,
+                message: "请输入面积",
+                trigger: "click",
+              },
+            ],
+            span: 6,
+            type: "number",
+            controls: false,
           },
           {
             label: "面积单位",
             prop: "landUnit",
             type: "select",
-            value:"0",
+            value: "0",
             dicUrl: "/api/blade-system/dict-biz/dictionary?code=landunit",
             props: {
               label: "dictValue",
-              value: "dictKey"
+              value: "dictKey",
             },
             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";
+  },
+  watch: {
+    landUrl: {
+      handler(newVal, oldVal) {
+        if (newVal) {
+          this.$refs.form.submit();
+        }
+      },
+    },
+    "form.landName": {
+      handler(newVal, oldVal) {
+        this.landUrl = "";
+      },
+    },
+    "form.landType": {
+      handler(newVal, oldVal) {
+        this.landUrl = "";
+      },
+    },
+    "form.landArea": {
+      handler(newVal, oldVal) {
+        this.landUrl = "";
+      },
+    },
+    "form.landUnit": {
+      handler(newVal, oldVal) {
+        this.landUrl = "";
+      },
+    },
+  },
   computed: {
-    ...mapGetters(["userInfo", "permission", "polygons","$farmId"]),
+    ...mapGetters([
+      "userInfo",
+      "permission",
+      "polygons",
+      "$farmId",
+      "drawMapUrlBase",
+    ]),
   },
   mounted() {
     this.initData(this.userInfo.tenant_id);
+    window.addEventListener("message", this.handleMessage);
   },
   methods: {
+    handleMessage(event) {
+      if (Number.isFinite(event.data)) {
+        this.form.landArea = (event.data * 0.0015).toFixed(2);
+      }
+
+      if (Object.prototype.toString.call(event.data) === "[object Object]") {
+        var obj = event.data;
+        this.polygon = obj.polygons;
+        this.landUrl = obj.url;
+      }
+    },
     initData(tenantId) {
       const data = {
-        deptId:this.userInfo.dept_id
-      }
-      getFarmList(data).then(res => {
+        deptId: this.userInfo.dept_id,
+      };
+      getFarmList(data).then((res) => {
         const column = this.findObject(this.option.column, "farmId");
         column.dicData = res.data.data;
       });
@@ -128,20 +209,57 @@
     //初始化
     init() {
       //计算当前时间
+      this.form.landArea = 0
       this.visible = true;
-      this.form.farmId = this.$farmId
+      this.form.farmId = this.$farmId;
+
+      getDetail(this.form.farmId).then(res=>{
+        this.farmInfo = res.data.data
+        this.url = this.drawMapUrlBase + "/base?type=1&lng=112&lat=24&status=manage&longitude="+this.farmInfo.longitude+"&latitude="+this.farmInfo.latitude;
+      })
     },
     // 表单提交
-    submit(row,done) {
+    submit(row, done) {
       var that = this;
-      if (this.polygons.length == 0) {
+
+      // if (this.polygons.length == 0) {
+      //   //没有面的数据
+      //   this.$refs.getMapData.isCheck = true;
+      //   done();
+      // } 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;
+      // }
+      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;
-        done();
+        // 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;
@@ -153,22 +271,35 @@
         row.userId = this.userInfo.user_id;
         row.landRange = usePolygons;
       }
-      row['tenantId'] = this.userInfo.tenant_id;
-      row['deptId'] = this.userInfo.dept_id;
-      add(row).then(() => {
-        that.$refs.form.resetFields();
-        this.form.landUnit = "0"
-        that.visible = false;
-        this.$message({
-          type: "success",
-          message: "操作成功!"
-        });
-        this.$emit("refreshOnLoad")
+
+      row["tenantId"] = this.userInfo.tenant_id;
+      row["deptId"] = this.userInfo.dept_id;
+      row["url"] = this.landUrl;
+      // row['landArea'] = this.area
+
+      if (row.landArea < 0) {
+        this.$message.warning("地块面积不能为负数");
         done();
-      }, error => {
-        done();
-        window.console.log(error);
-      });
+        return;
+      }
+
+      add(row).then(
+        () => {
+          that.$refs.form.resetFields();
+          this.form.landUnit = "0";
+          that.visible = false;
+          this.$message({
+            type: "success",
+            message: "操作成功!",
+          });
+          this.$emit("refreshOnLoad");
+          done();
+        },
+        (error) => {
+          done();
+          window.console.log(error);
+        }
+      );
     },
     setMapData(val) {
       this.LineData = val[0];
@@ -189,4 +320,7 @@
   top: 10px;
   left: 90px;
 }
+.map {
+  height: 450px;
+}
 </style>

--
Gitblit v1.9.3