From 082613d446e29e4ec1c16bfaa52345106a498b23 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 08 Nov 2022 09:03:49 +0800
Subject: [PATCH] 农事操作隐藏后四个,地图模式2d改为3d

---
 src/views/mapPattern/index.vue |  217 ++++++++++++++++++++++++++++++++++++++++++++++++-----
 1 files changed, 194 insertions(+), 23 deletions(-)

diff --git a/src/views/mapPattern/index.vue b/src/views/mapPattern/index.vue
index c045e43..d178ba1 100644
--- a/src/views/mapPattern/index.vue
+++ b/src/views/mapPattern/index.vue
@@ -1,6 +1,7 @@
 <template>
     <div @click="bodyClick($event)" style="position: relative; height: 100%;">
         <plot-map ref="plotMap" style="position: absolute; width: 100%; height: 100%;"></plot-map>
+
         <div class="top">
             <div class="logo">
                 <img src="../../../public/mg.png" />
@@ -22,6 +23,7 @@
                 <span>&nbsp;&nbsp;返回</span>
             </div>
         </div>
+
         <div class="farm-plant">
             <div class="title">
                 <span>种养品种 · {{ this.plotPlantBreed.length }}种</span>
@@ -36,6 +38,7 @@
                 </div>
             </div>
         </div>
+
         <div class="land-info">
             <div class="content">
                 <div>
@@ -53,9 +56,10 @@
                 </div>
             </div>
         </div>
+
         <div class="farm-land">
             <div class="title">
-                <span>地块 · {{ this.pageLand.total }}种</span>
+                <span>地块 · {{ this.pageLand.total }}个</span>
             </div>
             <div class="content">
                 <div
@@ -74,10 +78,39 @@
         </div>
 
         <div class="plot-detail-popup" v-show="cPShow" ref="showCP">
+            <div class="close-plot-popup" @click="closePlotPopup">
+                <i class="el-icon-close" style="color: #fff;"></i>
+            </div>
+
             <div class="header">
                 <div class="plot-name">
-                    <div class="name">{{ currentPlotDetails.landName }}</div>
-                    <i class="el-icon-edit-outline" title="编辑地块名称"></i>
+                    <div v-show="!plotNameEditShow">
+                        <div
+                            class="name"
+                            style="font-weight: bold;"
+                        >{{ currentPlotDetails.landName }}</div>
+                        <i
+                            @click="plotNameEditShow=true"
+                            class="el-icon-edit-outline edit-btn"
+                            title="编辑地块名称"
+                            style="margin-left: 9px;"
+                        ></i>
+                    </div>
+
+                    <div v-show="plotNameEditShow" class="edit-name">
+                        <el-input style="flex: 1;" v-model="currentPlotName" size="small"></el-input>
+                        <div class="btn-grounp">
+                            <span class="edit-btn" @click="editName">保存</span>
+
+                            <span style="color: #999;">|</span>
+
+                            <span
+                                class="edit-btn"
+                                @click="plotNameEditShow=fasle"
+                                style="color: #acdcd0;"
+                            >取消</span>
+                        </div>
+                    </div>
                 </div>
                 <div class="plot-area-type">
                     <div class="l">
@@ -86,7 +119,7 @@
                             class="type"
                         >{{ currentPlotDetails.dic }}</span>
                     </div>
-                    <div class="r">
+                    <div class="r" @click="goToPlotDetail">
                         进入地块
                         <i class="el-icon-arrow-right"></i>
                     </div>
@@ -94,7 +127,12 @@
             </div>
 
             <div class="body">
-                <div class="list" v-for="(item, index) in cPPBreed" :key="index">
+                <div
+                    v-show="cPPBreed.length > 0"
+                    class="list"
+                    v-for="(item, index) in cPPBreed"
+                    :key="index"
+                >
                     <div class="l">
                         <img :src="item.url" />
                         {{ item.strainName }}
@@ -103,6 +141,11 @@
                         class="r"
                     >{{ item.createTime }}{{ item.plantingWay == 0 ? "移摘" : item.plantingWay == 1 ? "播种" : "秧苗" }}</div>
                 </div>
+
+                <div
+                    v-show="cPPBreed.length == 0"
+                    style="height: 100%; display: flex; align-items: center; justify-content: center;"
+                >暂无种养品种</div>
             </div>
         </div>
     </div>
@@ -111,7 +154,7 @@
 <script>
 import { mapGetters } from "vuex"
 import { getList } from "@/api/farmplant/farmplant"
-import { getList as getLandList, selectCount, getLandIsAreaStatistic } from "@/api/land/land"
+import { getList as getLandList, selectCount, getLandIsAreaStatistic, submit } from "@/api/land/land"
 import { getDetails } from "@/api/farm/farm"
 export default {
     components: {
@@ -119,12 +162,12 @@
     data () {
         return {
             page: {
-                pageSize: 10,
+                pageSize: 100,
                 currentPage: 1,
                 total: 0,
             },
             pageLand: {
-                pageSize: 10,
+                pageSize: 100,
                 currentPage: 1,
                 total: 0,
             },
@@ -141,6 +184,10 @@
 
             // 当前点击地块详情
             currentPlotDetails: {},
+            currentPlotName: "",
+
+            // 名称编辑是否显示
+            plotNameEditShow: false,
 
             plotClickNum: 0,
 
@@ -152,9 +199,17 @@
 
     },
     computed: {
-        ...mapGetters(["userInfo"]),
+        ...mapGetters(["userInfo", "$farmId"]),
     },
     created () {
+        if (this.$farmId == 0){
+          if (sessionStorage.getItem("myFarmId")){
+            this.$store.commit("SET_FARMID",JSON.parse(sessionStorage.getItem("myFarmId")))
+          }
+        }
+        window.addEventListener('beforeunload', () => {
+          sessionStorage.setItem('myFarmId', JSON.stringify(this.$farmId))
+        })
         //获取种样品列表
         this.getFarmPlantList(this.page)
         //获取地块列表
@@ -169,7 +224,8 @@
     methods: {
         //获取种养品列表
         getFarmPlantList (page, params = {}) {
-            params['farmId'] = this.userInfo.farmId
+            params['farmId'] = this.$farmId
+            params['status'] = 1
             this.loading = true
             getList(
                 page.currentPage,
@@ -207,8 +263,11 @@
                     }
                 })
 
-                this.plotPlantBreed = arr
+                arr.forEach((e)=>{
+                    e.area = e.area.toFixed(3)
+                })
 
+                this.plotPlantBreed = arr
 
                 this.loading = false
 
@@ -219,7 +278,8 @@
         },
         //获取地块列表
         getLandList (page, params = {}) {
-            params['farmId'] = this.userInfo.farmId
+          const that = this
+            params['farmId'] = this.$farmId
             params['tenantId'] = this.userInfo.tenant_id
             this.loading = true
             getLandList(
@@ -239,8 +299,7 @@
                         arr.forEach(it => {
                             brr.push(it.split(' '))
                         })
-
-                        this.$refs.plotMap.addPlotPolygon(brr, item)
+                      that.$refs.plotMap.addPlotPolygon(brr, item)
                     }
                 })
 
@@ -252,37 +311,38 @@
         },
         //返回上一页
         goToBack () {
+            this.$EventBus.$emit("getFarmObj", this.farmInfo);
             this.$router.go(-1)
         },
         //获取农场信息
         getFarmInfo () {
             var that = this
-            getDetails(this.userInfo.farmId).then(res => {
+            getDetails(this.$farmId).then(res => {
                 that.farmInfo = res.data.data
             })
         },
         //获取统计面积信息
         getLandCount () {
-            selectCount(this.userInfo.farmId).then(res => {
+            selectCount(this.$farmId).then(res => {
                 this.landAreaInfo = res.data.data
             })
         },
         //获取地块轮廓统计信息
         getLandIsAreaStatistic () {
-            getLandIsAreaStatistic(this.userInfo.farmId).then(res => {
-                console.log(res)
+            getLandIsAreaStatistic(this.$farmId).then(res => {
                 this.landIsAreaStatistic = res.data.data
             })
         },
 
         // 地块定位
         setCenter (item) {
-            this.$refs.plotMap.setPlotCenter(item.landName)
+            console.log(item)
+            this.$refs.plotMap.setPlotCenter(item)
         },
 
         plotDetailsPopupShow (params) {
             this.currentPlotDetails = params
-
+            this.currentPlotName = params.landName
             let arr = []
 
             this.farmPlantList.forEach((item, index) => {
@@ -303,13 +363,71 @@
             }
 
             if (this.$refs.showCP) {
-                console.log(1)
                 let isSelf = this.$refs.showCP.contains(e.target)
                 if (!isSelf) {
                     this.plotClickNum = 0
                     this.cPShow = false
                 }
             }
+        },
+
+        editName () {
+            if (this.currentPlotName == "") {
+                this.$message({
+                    message: '地块名称不能为空',
+                    type: "warning",
+                })
+                return
+            }
+
+            submit({
+                id: this.currentPlotDetails.id,
+                landName: this.currentPlotName
+            }).then(res => {
+                if (res.data.code == 200) {
+                    this.currentPlotDetails.landName = this.currentPlotName
+                    this.$refs.plotMap.setPlotAttr(this.currentPlotDetails)
+                    this.landList.some(item => {
+                        if (item.id == this.currentPlotDetails.id) {
+                            item.landName = this.currentPlotDetails.landName
+                            return true
+                        }
+                    })
+
+                    this.plotNameEditShow = false
+
+                    this.$message({
+                        message: '地块名称修改成功',
+                        type: "success",
+                    })
+                }
+            })
+        },
+
+        closePlotPopup () {
+            this.plotClickNum = 0
+            this.plotNameEditShow = false
+            this.cPShow = false
+        },
+
+        goToPlotDetail () {
+            this.landList.some(item => {
+                if (item.id == this.currentPlotDetails.id) {
+                    var arr = []
+                    this.$store.state.tags.tagList.forEach((item) => {
+                        if (item.label != "地块详情") {
+                            arr.push(item)
+                        }
+                    })
+                    this.$store.state.tags.tagList = arr
+
+                    this.$router.push({
+                        path: `/LandDetail`,
+                        query: item,
+                    })
+                    return true
+                }
+            })
         }
     }
 }
@@ -583,15 +701,29 @@
     z-index: 11;
     background: rgba(255, 255, 255, 0.9);
     border-radius: 8px;
-    overflow: hidden;
+
+    .close-plot-popup {
+        display: flex;
+        align-items: center;
+        justify-content: center;
+        position: absolute;
+        top: -10px;
+        right: -10px;
+        width: 20px;
+        height: 20px;
+        border-radius: 50%;
+        background: #ccc;
+    }
 
     .header {
         display: flex;
         flex-direction: column;
-        padding: 0 20px;
+        padding: 10px 20px;
         height: 80px;
         background: #2cd2a9;
         color: #fff;
+        border-radius: 8px 8px 0 0;
+        box-sizing: border-box;
 
         & > div {
             flex: 1;
@@ -600,10 +732,48 @@
         }
 
         .plot-name {
+            & > div {
+                display: flex;
+                align-items: center;
+            }
+
+            .edit-btn {
+                cursor: pointer;
+            }
+
+            .edit-name {
+                width: 100%;
+                background: rgba(0, 0, 0, 0.15);
+                border-radius: 4px;
+
+                .btn-grounp {
+                    margin-right: 15px;
+                    display: flex;
+                    align-items: center;
+                    justify-content: space-around;
+                    width: 80px;
+                    font-size: 14px;
+                }
+            }
         }
 
         .plot-area-type {
             justify-content: space-between;
+            font-size: 14px;
+
+            .l {
+                color: #e7f7f3;
+
+                .type {
+                    padding: 2px 10px;
+                    border-radius: 11px;
+                    background-color: #31bd9a;
+                }
+            }
+
+            .r {
+                cursor: pointer;
+            }
         }
     }
 
@@ -614,6 +784,7 @@
         box-sizing: border-box;
         overflow-x: hidden;
         overflow-y: auto;
+        border-radius: 0 0 8px 8px;
 
         .list:first-child {
             margin: 0;

--
Gitblit v1.9.3