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 | 1122 ++++++++++++++++++++++++++++++++++++++++------------------
 1 files changed, 765 insertions(+), 357 deletions(-)

diff --git a/src/views/mapPattern/index.vue b/src/views/mapPattern/index.vue
index ddec951..d178ba1 100644
--- a/src/views/mapPattern/index.vue
+++ b/src/views/mapPattern/index.vue
@@ -1,413 +1,821 @@
 <template>
-  <div style="width: 1920px;
-        height: 1080px;
-        background: #FFFFFF;
-        border-radius: 0px 0px 0px 0px;
-        opacity: 1;">
-    <div class="top">
-      <div class="logo">
-        <img src="../../../public/mg.png" />
-      </div>
-      <div class="farm-info">
-        <div class="farm-name">
-          <span>{{ farmInfo.farmName }}</span>
-        </div>
-        <div class="farm-area">
-          <span>地块总面积:</span>
-          <span style="font-size: 16px;font-weight: bold;">&nbsp;{{landAreaInfo.zarea}}亩</span>
-          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-          <span>在田面积:</span>
-          <span style="font-size: 16px;font-weight: bold;">&nbsp;{{landAreaInfo.sarea}}亩</span>
-        </div>
-      </div>
-      <div class="out" @click="goToBack">
-        <img src="../../../public/img/out.png" />
-        <span>&nbsp;&nbsp;退出</span>
-      </div>
-    </div>
-    <div class="down">
-      <div class="farm-plant">
-        <div class="title"><span>种养品种 · {{ this.page.total }}种</span></div>
-        <div class="content">
-          <div class="list-item" v-for="item in farmPlantList">
-            <div class="item-img">
-              <img :src="item.url" />
-              <span>{{ item.strainName }}</span>
+    <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" />
             </div>
-            <div class="item-num">{{ item.area }}亩</div>
-          </div>
-        </div>
-      </div>
-      <div class="land-info">
-        <div class="content">
-          <span>有轮廓的地块:</span><span style="font-size: 26px;font-weight: bold;color: #5ABF78;"> &nbsp;{{landIsAreaStatistic[0]}}</span>
-          &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-          <span>无轮廓的地块:</span><span style="font-size: 26px;font-weight: bold;color: #E3B745;"> &nbsp;{{landIsAreaStatistic[1]}}</span>
-        </div>
-      </div>
-      <div class="farm-land">
-        <div class="title"><span>地块 · {{ this.pageLand.total }}种</span></div>
-        <div class="content">
-          <div class="list-item" v-for="item in landList">
-            <div class="item-img">
-              <img :src="item.url" />
-              <span>{{ item.landName }}</span>
+            <div class="farm-info">
+                <div class="farm-name">
+                    <span>{{ farmInfo.farmName }}</span>
+                </div>
+                <div class="farm-area">
+                    <span>地块总面积:</span>
+                    <span style="font-size: 16px;font-weight: bold;">&nbsp;{{landAreaInfo.zarea}}亩</span>
+                    &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
+                    <span>在田面积:</span>
+                    <span style="font-size: 16px;font-weight: bold;">&nbsp;{{landAreaInfo.sarea}}亩</span>
+                </div>
             </div>
-            <div class="item-num">{{ item.landArea }}亩</div>
-          </div>
+            <div class="out" @click="goToBack">
+                <img src="../../../public/img/out.png" />
+                <span>&nbsp;&nbsp;返回</span>
+            </div>
         </div>
-      </div>
+
+        <div class="farm-plant">
+            <div class="title">
+                <span>种养品种 · {{ this.plotPlantBreed.length }}种</span>
+            </div>
+            <div class="content">
+                <div class="list-item" v-for="(item, index) in plotPlantBreed" :key="index">
+                    <div class="item-img">
+                        <img :src="item.url" />
+                        <span>{{ item.strainName }}</span>
+                    </div>
+                    <div class="item-num">{{ item.area }}亩</div>
+                </div>
+            </div>
+        </div>
+
+        <div class="land-info">
+            <div class="content">
+                <div>
+                    有轮廓的地块:
+                    <span
+                        style="font-size: 26px;font-weight: bold;color: #5ABF78;"
+                    >{{landIsAreaStatistic.length > 0 ? landIsAreaStatistic[0] : 0}}</span>
+                </div>
+
+                <div>
+                    无轮廓的地块:
+                    <span
+                        style="font-size: 26px;font-weight: bold;color: #E3B745;"
+                    >{{landIsAreaStatistic.length > 1 ? landIsAreaStatistic[1] : 0}}</span>
+                </div>
+            </div>
+        </div>
+
+        <div class="farm-land">
+            <div class="title">
+                <span>地块 · {{ this.pageLand.total }}个</span>
+            </div>
+            <div class="content">
+                <div
+                    class="list-item"
+                    v-for="(item, index) in landList"
+                    :key="index"
+                    @click="setCenter(item)"
+                >
+                    <div class="item-img">
+                        <img :src="item.url" />
+                        <span>{{ item.landName }}</span>
+                    </div>
+                    <div class="item-num">{{ item.landArea }}亩</div>
+                </div>
+            </div>
+        </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 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">
+                        占地面积:{{ currentPlotDetails.landArea }}{{ currentPlotDetails.dica }}
+                        <span
+                            class="type"
+                        >{{ currentPlotDetails.dic }}</span>
+                    </div>
+                    <div class="r" @click="goToPlotDetail">
+                        进入地块
+                        <i class="el-icon-arrow-right"></i>
+                    </div>
+                </div>
+            </div>
+
+            <div class="body">
+                <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 }}
+                    </div>
+                    <div
+                        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>
-  </div>
 </template>
 
 <script>
 import { mapGetters } from "vuex"
-import { getList } from "@/api/farmplant/farmplant";
-import { getList as getLandList, selectCount,getLandIsAreaStatistic } from "@/api/land/land";
-import { getDetails } from "@/api/farm/farm";
+import { getList } from "@/api/farmplant/farmplant"
+import { getList as getLandList, selectCount, getLandIsAreaStatistic, submit } from "@/api/land/land"
+import { getDetails } from "@/api/farm/farm"
 export default {
-  components: {
-  },
-  data() {
-    return {
-      page: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 0,
-      },
-      pageLand: {
-        pageSize: 10,
-        currentPage: 1,
-        total: 0,
-      },
-      farmPlantList: [],
-      landList: [],
-      farmInfo: {},
-      landAreaInfo:{},
-      landIsAreaStatistic:null,
-    }
+    components: {
+    },
+    data () {
+        return {
+            page: {
+                pageSize: 100,
+                currentPage: 1,
+                total: 0,
+            },
+            pageLand: {
+                pageSize: 100,
+                currentPage: 1,
+                total: 0,
+            },
+            farmPlantList: [],
 
-  },
-  computed: {
-    ...mapGetters(["userInfo"]),
-  },
-  created() {
-    //获取种样品列表
-    this.getFarmPlantList(this.page);
-    //获取地块列表
-    this.getLandList(this.pageLand);
-    //获取农场信息
-    this.getFarmInfo();
-    //获取统计面积信息
-    this.getLandCount();
-    //获取地块轮廓统计信息
-    this.getLandIsAreaStatistic();
-  },
-  methods: {
-    //获取种养品列表
-    getFarmPlantList(page, params = {}) {
-      params['farmId'] = this.userInfo.farmId;
-      this.loading = true;
-      getList(
-        page.currentPage,
-        page.pageSize,
-        Object.assign(params)
-      ).then((res) => {
-        const data = res.data.data;
-        this.page.total = data.total;
-        this.farmPlantList = data.records;
-        this.loading = false;
-        this.selectionClear();
-      });
+            // 数据合并后的种养品种
+            plotPlantBreed: [],
+
+            // 当前地块种养品种
+            cPPBreed: [],
+
+            // 当前地块对应弹框
+            cPShow: false,
+
+            // 当前点击地块详情
+            currentPlotDetails: {},
+            currentPlotName: "",
+
+            // 名称编辑是否显示
+            plotNameEditShow: false,
+
+            plotClickNum: 0,
+
+            landList: [],
+            farmInfo: {},
+            landAreaInfo: {},
+            landIsAreaStatistic: [],
+        }
+
     },
-    //获取地块列表
-    getLandList(page, params = {}) {
-      params['farmId'] = this.userInfo.farmId;
-      params['tenantId'] = this.userInfo.tenant_id;
-      this.loading = true;
-      getLandList(
-        page.currentPage,
-        page.pageSize,
-        Object.assign(params)
-      ).then((res) => {
-        const data = res.data.data;
-        this.pageLand.total = data.total;
-        this.landList = data.records;
-        this.loading = false;
-        this.selectionClear();
-      });
+    computed: {
+        ...mapGetters(["userInfo", "$farmId"]),
     },
-    //返回上一页
-    goToBack() {
-      this.$router.go(-1)
+    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)
+        //获取地块列表
+        this.getLandList(this.pageLand)
+        //获取农场信息
+        this.getFarmInfo()
+        //获取统计面积信息
+        this.getLandCount()
+        //获取地块轮廓统计信息
+        this.getLandIsAreaStatistic()
     },
-    //获取农场信息
-    getFarmInfo() {
-      var that = this;
-      getDetails(this.userInfo.farmId).then(res => {
-        that.farmInfo = res.data.data;
-      })
-    },
-    //获取统计面积信息
-    getLandCount() {
-      selectCount(this.userInfo.farmId).then(res => {
-        this.landAreaInfo = res.data.data;
-      })
-    },
-    //获取地块轮廓统计信息
-    getLandIsAreaStatistic(){
-       getLandIsAreaStatistic(this.userInfo.farmId).then(res=>{
-          this.landIsAreaStatistic = res.data.data;
-       })
+    methods: {
+        //获取种养品列表
+        getFarmPlantList (page, params = {}) {
+            params['farmId'] = this.$farmId
+            params['status'] = 1
+            this.loading = true
+            getList(
+                page.currentPage,
+                page.pageSize,
+                Object.assign(params)
+            ).then((res) => {
+                const data = res.data.data
+                this.page.total = data.total
+                this.farmPlantList = data.records
+
+                let arr = []
+                this.farmPlantList.forEach(item => {
+                    if (arr.length > 0) {
+                        let result = arr.some(it => {
+                            if (item.strainName == it.strainName) {
+                                it.area += Number(item.area)
+
+                                return true
+                            }
+                        })
+
+                        if (!result) {
+                            arr.push({
+                                strainName: item.strainName,
+                                area: Number(item.area),
+                                url: item.url
+                            })
+                        }
+                    } else {
+                        arr.push({
+                            strainName: item.strainName,
+                            area: Number(item.area),
+                            url: item.url
+                        })
+                    }
+                })
+
+                arr.forEach((e)=>{
+                    e.area = e.area.toFixed(3)
+                })
+
+                this.plotPlantBreed = arr
+
+                this.loading = false
+
+
+
+                // this.selectionClear()
+            })
+        },
+        //获取地块列表
+        getLandList (page, params = {}) {
+          const that = this
+            params['farmId'] = this.$farmId
+            params['tenantId'] = this.userInfo.tenant_id
+            this.loading = true
+            getLandList(
+                page.currentPage,
+                page.pageSize,
+                Object.assign(params)
+            ).then((res) => {
+                const data = res.data.data
+
+                data.records.forEach(item => {
+                    if (item.landRange != '' || item.landRange != null) {
+                        item.landRange = item.landRange.replace(/POLYGON\(\(/g, '')
+                        item.landRange = item.landRange.replace(/\)\)/g, '')
+
+                        const arr = item.landRange.split(',')
+                        var brr = []
+                        arr.forEach(it => {
+                            brr.push(it.split(' '))
+                        })
+                      that.$refs.plotMap.addPlotPolygon(brr, item)
+                    }
+                })
+
+                this.pageLand.total = data.total
+                this.landList = data.records
+                this.loading = false
+                // this.selectionClear()
+            })
+        },
+        //返回上一页
+        goToBack () {
+            this.$EventBus.$emit("getFarmObj", this.farmInfo);
+            this.$router.go(-1)
+        },
+        //获取农场信息
+        getFarmInfo () {
+            var that = this
+            getDetails(this.$farmId).then(res => {
+                that.farmInfo = res.data.data
+            })
+        },
+        //获取统计面积信息
+        getLandCount () {
+            selectCount(this.$farmId).then(res => {
+                this.landAreaInfo = res.data.data
+            })
+        },
+        //获取地块轮廓统计信息
+        getLandIsAreaStatistic () {
+            getLandIsAreaStatistic(this.$farmId).then(res => {
+                this.landIsAreaStatistic = res.data.data
+            })
+        },
+
+        // 地块定位
+        setCenter (item) {
+            console.log(item)
+            this.$refs.plotMap.setPlotCenter(item)
+        },
+
+        plotDetailsPopupShow (params) {
+            this.currentPlotDetails = params
+            this.currentPlotName = params.landName
+            let arr = []
+
+            this.farmPlantList.forEach((item, index) => {
+                if (params.id == item.landId) {
+                    arr.push(item)
+                }
+            })
+
+            this.cPPBreed = arr
+
+            this.cPShow = true
+        },
+
+        bodyClick (e) {
+            if (this.plotClickNum == 0) {
+                this.plotClickNum++
+                return
+            }
+
+            if (this.$refs.showCP) {
+                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
+                }
+            })
+        }
     }
-  }
 }
 </script>
+
 <style lang="scss" scope>
 .top {
-  width: 100%;
-  height: 80px;
-  background: #000000;
-  border-radius: 0px 0px 0px 0px;
-  opacity: 0.5;
-
-  .logo {
     position: absolute;
-    left: 36px;
-    top: 12px;
-
-    img {
-      height: 55px;
-    }
-  }
-
-  .farm-info {
-    height: 100%;
+    top: 0;
     width: 100%;
+    height: 80px;
+    background: rgba(0, 0, 0, 0.5);
+    z-index: 9;
 
-    .farm-name {
-      width: 100%;
-      height: 33px;
-      font-size: 25px;
-      font-weight: bold;
-      color: #5ABF78;
-      text-align: center;
-      padding-top: 13px;
+    .logo {
+        position: absolute;
+        left: 36px;
+        top: 12px;
+
+        img {
+            height: 55px;
+        }
     }
 
-    .farm-area {
-      width: 100%;
-      height: 19px;
-      font-size: 14px;
-      font-weight: 400;
-      color: #FFFFFF;
-      text-align: center;
-      padding-top: 6px;
-    }
-  }
+    .farm-info {
+        height: 100%;
+        width: 100%;
 
-  .out {
-    width: 136px;
-    height: 33px;
-    line-height: 33px;
-    background: rgba(236, 95, 89, 0.8000);
-    border-radius: 4px 4px 4px 4px;
-    opacity: 1;
-    border: 1px solid #EC5F59;
-    position: absolute;
-    top: 24px;
-    right: 33px;
-    text-align: center;
-    cursor: pointer;
+        .farm-name {
+            width: 100%;
+            height: 33px;
+            font-size: 25px;
+            font-weight: bold;
+            color: #5abf78;
+            text-align: center;
+            padding-top: 13px;
+        }
 
-    img {
-      width: 12px;
-      height: 18px;
-      position: relative;
-      top: 4px;
-    }
-
-    span {
-      font-size: 14px;
-      color: #FFFFFF;
-      font-weight: 400;
-    }
-  }
-
-
-}
-
-.down {
-  width: 100%;
-
-  .farm-plant {
-    width: 292px;
-    height: 550px;
-    position: absolute;
-    left: 30px;
-    top: 242px;
-
-    .title {
-      width: 292px;
-      height: 50px;
-      background: #5ABF78;
-      border-radius: 4px 4px 0px 0px;
-      opacity: 1;
-      line-height: 50px;
-      font-size: 17px;
-      font-weight: bold;
-      color: #FFFFFF;
-
-      span {
-        margin-left: 20px;
-      }
-    }
-
-    .content {
-      width: 292px;
-      // height: 500px;
-      background: #08551E;
-      border-radius: 4px 4px 0px 0px;
-      opacity: 0.9;
-      padding-bottom: 30px;
-
-      .list-item {
-        width: 252px;
-        margin: auto;
-        display: flex;
-        height: 64px;
-        line-height: 64px;
-        border-bottom: 1px solid #cccccc;
-        flex-flow: row nowrap;
-        justify-content: space-between;
-
-        .item-img {
-          margin-left: 5px;
-          display: flex;
-
-          img {
-            margin-top: 12px;
-            width: 40px;
-            height: 40px;
-            background: #2389EF;
-            border-radius: 84px 84px 84px 84px;
-            opacity: 1;
-          }
-
-          span {
-            margin-left: 11px;
+        .farm-area {
+            width: 100%;
+            height: 19px;
             font-size: 14px;
             font-weight: 400;
-            color: #FFFFFF;
-          }
+            color: #ffffff;
+            text-align: center;
+            padding-top: 6px;
         }
-
-        .item-num {
-          font-size: 14px;
-          font-weight: 400;
-          color: #FFFFFF;
-        }
-
-
-      }
     }
 
+    .out {
+        width: 136px;
+        height: 33px;
+        line-height: 33px;
+        background: rgba(236, 95, 89, 0.8);
+        border-radius: 4px 4px 4px 4px;
+        opacity: 1;
+        border: 1px solid #ec5f59;
+        position: absolute;
+        top: 24px;
+        right: 33px;
+        text-align: center;
+        cursor: pointer;
 
-  }
+        img {
+            width: 12px;
+            height: 18px;
+            position: relative;
+            top: 4px;
+        }
 
-  .land-info{
+        span {
+            font-size: 14px;
+            color: #ffffff;
+            font-weight: 400;
+        }
+    }
+}
+
+.land-info {
     width: 100%;
     position: absolute;
     top: 112px;
 
-    .content{
-      margin: auto;
-      width: 431px;
-      height: 56px;
-      background: #000000;
-      border-radius: 28px 28px 28px 28px;
-      opacity: 0.5;
-      display: flex;
-      justify-content: center;
-      align-items:center;
-      font-size: 16px;
-      font-weight: 400;
-      color: #FFFFFF;
-    }
-  }
+    .content {
+        display: flex;
+        align-items: center;
+        justify-content: space-between;
+        margin: auto;
+        padding: 0 40px;
+        width: 431px;
+        height: 56px;
+        background: rgba(0, 0, 0, 0.5);
+        border-radius: 28px 28px 28px 28px;
+        font-size: 16px;
+        font-weight: 400;
+        color: #ffffff;
 
-  .farm-land {
+        & > div {
+            display: flex;
+            align-items: center;
+        }
+    }
+}
+
+.farm-plant {
+    position: absolute;
+    left: 30px;
+    top: 242px;
+    z-index: 99;
+
     width: 292px;
     height: 550px;
+
+    .title {
+        width: 292px;
+        height: 50px;
+        background: #5abf78;
+        border-radius: 4px 4px 0px 0px;
+        opacity: 1;
+        line-height: 50px;
+        font-size: 17px;
+        font-weight: bold;
+        color: #ffffff;
+
+        span {
+            margin-left: 20px;
+        }
+    }
+
+    .content {
+        width: 292px;
+        height: calc(100% - 50px);
+        background: rgba(8, 85, 30, 0.9);
+        // height: 500px;
+        border-radius: 4px 4px 0px 0px;
+        opacity: 0.9;
+        padding-bottom: 30px;
+
+        overflow-x: hidden;
+        overflow-y: auto;
+
+        .list-item {
+            width: 252px;
+            margin: auto;
+            display: flex;
+            height: 64px;
+            line-height: 64px;
+            border-bottom: 1px solid #cccccc;
+            flex-flow: row nowrap;
+            justify-content: space-between;
+
+            .item-img {
+                margin-left: 5px;
+                display: flex;
+
+                img {
+                    margin-top: 12px;
+                    width: 40px;
+                    height: 40px;
+                    background: #2389ef;
+                    border-radius: 84px 84px 84px 84px;
+                    opacity: 1;
+                }
+
+                span {
+                    margin-left: 11px;
+                    font-size: 14px;
+                    font-weight: 400;
+                    color: #ffffff;
+                }
+            }
+
+            .item-num {
+                font-size: 14px;
+                font-weight: 400;
+                color: #ffffff;
+            }
+        }
+    }
+}
+
+.farm-land {
     position: absolute;
     right: 30px;
     top: 242px;
 
-    .title {
-      width: 292px;
-      height: 50px;
-      background: #5ABF78;
-      border-radius: 4px 4px 0px 0px;
-      opacity: 1;
-      line-height: 50px;
-      font-size: 17px;
-      font-weight: bold;
-      color: #FFFFFF;
+    z-index: 99;
 
-      span {
-        margin-left: 20px;
-      }
+    width: 292px;
+    height: 550px;
+
+    .title {
+        width: 292px;
+        height: 50px;
+        background: #5abf78;
+        border-radius: 4px 4px 0px 0px;
+        opacity: 1;
+        line-height: 50px;
+        font-size: 17px;
+        font-weight: bold;
+        color: #ffffff;
+
+        span {
+            margin-left: 20px;
+        }
     }
 
     .content {
-      width: 292px;
-      // height: 500px;
-      background: #08551E;
-      border-radius: 4px 4px 0px 0px;
-      opacity: 0.9;
-      padding-bottom: 30px;
+        width: 292px;
+        height: calc(100% - 50px);
+        background: rgba(8, 85, 30, 0.9);
+        // height: 500px;
 
-      .list-item {
-        width: 252px;
-        margin: auto;
-        display: flex;
-        height: 64px;
-        line-height: 64px;
-        border-bottom: 1px solid #cccccc;
-        flex-flow: row nowrap;
-        justify-content: space-between;
+        border-radius: 4px 4px 0px 0px;
+        opacity: 0.9;
+        padding-bottom: 30px;
 
-        .item-img {
-          margin-left: 5px;
-          display: flex;
+        overflow-x: hidden;
+        overflow-y: auto;
 
-          img {
-            margin-top: 12px;
-            width: 40px;
-            height: 40px;
-            background: #2389EF;
-            border-radius: 84px 84px 84px 84px;
-            opacity: 1;
-          }
+        .list-item {
+            width: 252px;
+            margin: auto;
+            display: flex;
+            height: 64px;
+            line-height: 64px;
+            border-bottom: 1px solid #cccccc;
+            flex-flow: row nowrap;
+            justify-content: space-between;
+            cursor: pointer;
 
-          span {
-            margin-left: 11px;
-            font-size: 14px;
-            font-weight: 400;
-            color: #FFFFFF;
-          }
+            .item-img {
+                margin-left: 5px;
+                display: flex;
+
+                img {
+                    margin-top: 12px;
+                    width: 40px;
+                    height: 40px;
+                    background: #2389ef;
+                    border-radius: 84px 84px 84px 84px;
+                    opacity: 1;
+                }
+
+                span {
+                    margin-left: 11px;
+                    font-size: 14px;
+                    font-weight: 400;
+                    color: #ffffff;
+                }
+            }
+
+            .item-num {
+                font-size: 14px;
+                font-weight: 400;
+                color: #ffffff;
+            }
         }
-
-        .item-num {
-          font-size: 14px;
-          font-weight: 400;
-          color: #FFFFFF;
-        }
-
-
-      }
     }
-  }
+}
+
+.plot-detail-popup {
+    position: fixed;
+    top: 50%;
+    left: 50%;
+
+    width: 462px;
+    height: 262px;
+
+    transform: translate(-50%, -50%);
+    z-index: 11;
+    background: rgba(255, 255, 255, 0.9);
+    border-radius: 8px;
+
+    .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: 10px 20px;
+        height: 80px;
+        background: #2cd2a9;
+        color: #fff;
+        border-radius: 8px 8px 0 0;
+        box-sizing: border-box;
+
+        & > div {
+            flex: 1;
+            display: flex;
+            align-items: center;
+        }
+
+        .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;
+            }
+        }
+    }
+
+    .body {
+        padding: 10px 20px;
+        height: calc(100% - 80px);
+        background: rgba(0, 0, 0, 0);
+        box-sizing: border-box;
+        overflow-x: hidden;
+        overflow-y: auto;
+        border-radius: 0 0 8px 8px;
+
+        .list:first-child {
+            margin: 0;
+        }
+
+        .list {
+            margin-top: 10px;
+            padding: 0 10px;
+            display: flex;
+            justify-content: space-between;
+            align-items: center;
+            height: 50px;
+            background: #fff;
+            font-size: 14px;
+
+            .l {
+                display: flex;
+                align-items: center;
+                color: #2cd2a9;
+
+                img {
+                    margin-right: 10px;
+                    width: 30px;
+                    height: 30px;
+                }
+            }
+
+            .r {
+                color: #999;
+            }
+        }
+    }
 }
 </style>

--
Gitblit v1.9.3