From 2c8f7d06ec1694667e0d03a76b36eceed5f3bdbb Mon Sep 17 00:00:00 2001
From: xiebin <123456>
Date: Tue, 02 Aug 2022 08:33:06 +0800
Subject: [PATCH] 地块编辑

---
 src/views/land/cs.vue                |    1 
 src/views/land/LandDetail.vue        |   26 ++++
 src/views/land/getMapDataInThere.vue |   18 +++
 src/views/land/landUpdate.vue        |  208 +++++++++++++++++++++++++++++++++++++++++
 src/api/land/land.js                 |    4 
 5 files changed, 250 insertions(+), 7 deletions(-)

diff --git a/src/api/land/land.js b/src/api/land/land.js
index 95a6c16..3817b91 100644
--- a/src/api/land/land.js
+++ b/src/api/land/land.js
@@ -44,9 +44,7 @@
   return request({
     url: '/api/land/land/updateLandAr',
     method: 'post',
-    params: {
-      ...params,
-    }
+    data: params
   })
 }
 
diff --git a/src/views/land/LandDetail.vue b/src/views/land/LandDetail.vue
index 13ce2df..eb7f709 100644
--- a/src/views/land/LandDetail.vue
+++ b/src/views/land/LandDetail.vue
@@ -15,8 +15,9 @@
                 <div class="edit">
                     <el-button @click="btnGrounpShow = !btnGrounpShow" icon="el-icon-menu"></el-button>
 
-                    <div v-show="btnGrounpShow" class="btn-grounp" @click="DelLand(delId)">
-                        <el-button>删除地块</el-button>
+                    <div v-show="btnGrounpShow" class="btn-grounp">
+                        <el-button @click="DelLand(delId)">删除地块</el-button>
+                        <el-button size="small" @click="land">编辑地块</el-button>
                     </div>
                 </div>
             </div>
@@ -56,6 +57,7 @@
             <getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
             <el-button class="save" type="success" @click="upLand()">保存</el-button>
         </el-dialog>
+        <landUpdate v-if="landVisible" ref="landUpdate" id="landUpdate" @refreshOnLoad="openLandUpdate"></landUpdate>
     </div>
 </template>
 
@@ -66,7 +68,8 @@
 import recovery from "@/views/recovery/recovery.vue"
 import stockUseInfo from "@/views/farm/stockUseInfo.vue"
 import getMapDataInThere from "./getMapDataInThere.vue"
-import { remove, update } from "@/api/land/land"
+import {getList, remove, update} from "@/api/land/land"
+import landUpdate from "./landUpdate"
 
 export default {
     components: {
@@ -74,6 +77,7 @@
         farming,
         recovery,
         stockUseInfo,
+        landUpdate,
         getMapDataInThere
     },
     data () {
@@ -90,6 +94,7 @@
             dic: "",
             formC: {},
             gradeBoxVisible1: false,
+            landVisible: false,
             option2: {
                 index: true,
                 tip: false,
@@ -135,6 +140,21 @@
             .split(",")
     },
     methods: {
+        //圈地
+        land () {
+          this.landVisible = true
+          this.$nextTick(() => {
+            this.$refs.landUpdate.init()
+          })
+        },
+        openLandUpdate (page, params = {}) {
+          console.log('11111111111refreshOnLoad')
+          // getList(1, 10, Object.assign(params, this.query)).then(res => {
+          //   const data = res.data.data
+          //
+          //   this.farmPlanList = data.records
+          // })
+        },
         mod (usePolygons) {
             this.gradeBoxVisible1 = true
             this.$refs.getMapData.draw(usePolygons)
diff --git a/src/views/land/cs.vue b/src/views/land/cs.vue
index 7367690..715c834 100644
--- a/src/views/land/cs.vue
+++ b/src/views/land/cs.vue
@@ -173,7 +173,6 @@
         onLoad (page, params = {}) {
             getList(1, 10, Object.assign(params, this.query)).then(res => {
                 const data = res.data.data
-
                 this.farmPlanList = data.records
             })
         },
diff --git a/src/views/land/getMapDataInThere.vue b/src/views/land/getMapDataInThere.vue
index cb6886e..781985e 100644
--- a/src/views/land/getMapDataInThere.vue
+++ b/src/views/land/getMapDataInThere.vue
@@ -18,6 +18,12 @@
 import MapInThere from "@/components/map/mainInThere.vue"
 export default {
     name: "getMapData",
+    props: {
+      currentPolygons: {
+        type: Array,
+        default: []
+      }
+    },
     components: {
         MapInThere,
     },
@@ -38,6 +44,16 @@
                 this.isCheck = false
             }
         },
+      currentPolygons: {
+          immediate: true,
+        handler (newData, oldData) {
+            console.log(newData, 5656)
+            if (newData.length > 0) {
+
+              this.draw(newData)
+            }
+        },
+      }
     },
     data () {
         return {
@@ -64,6 +80,8 @@
     methods: {
         draw (usePolygons) {
 
+          console.log(usePolygons, 456)
+
             let arr = []
 
             usePolygons.forEach(item => {
diff --git a/src/views/land/landUpdate.vue b/src/views/land/landUpdate.vue
new file mode 100644
index 0000000..5ca6701
--- /dev/null
+++ b/src/views/land/landUpdate.vue
@@ -0,0 +1,208 @@
+<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>
+</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"
+
+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",
+                        dicData: [],
+                        props: {
+                            label: "farmName",
+                            value: "id"
+                        },
+                        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"
+                        },
+                        dataType: "number",
+                        span: 6,
+                    },
+                    {
+                        label: "地块展示",
+                        labelWidth: "0",
+                        prop: "line",
+                        className: "mapClass",
+                        span: 24,
+                        formslot: true,
+                    }
+                ],
+            },
+            visible: false,
+        }
+    },
+    computed: {
+        ...mapGetters(["userInfo", "permission", "polygons"]),
+    },
+    mounted () {
+        this.initData(this.userInfo.tenant_id)
+    },
+    methods: {
+        initData (tenantId) {
+            // getDeptTree(tenantId).then(res => {        console.log(res)
+
+            //   const column = this.findObject(this.option.column, "deptId");
+            //   column.dicData = res.data.data;
+            // });
+            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
+            console.log('land1111111111111:',this.$route.query)
+            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.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(',')
+
+        },
+        // 表单提交
+        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
+            }
+
+            update(row).then(() => {
+                  that.$emit("refreshOnLoad")
+                  that.$refs.form.resetFields()
+                  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]
+        },
+    },
+};
+</script>
+<style lang="scss" scoped>
+.mapClass div label {
+    display: none;
+}
+
+#getMapData {
+    width: 90%;
+    position: relative;
+    height: 400px;
+    top: 10px;
+    left: 90px;
+}
+</style>

--
Gitblit v1.9.3