From 0ddaebe0030d7fa7545f20ce894861856a35bf4c Mon Sep 17 00:00:00 2001
From: shuishen <1109946754@qq.com>
Date: Mon, 18 Jul 2022 17:28:11 +0800
Subject: [PATCH] 解数据
---
src/views/land/LandDetail.vue | 522 ++++++++++++++++++++++++++++-----------------------------
src/views/land/getMapDataInThere.vue | 16 +
2 files changed, 272 insertions(+), 266 deletions(-)
diff --git a/src/views/land/LandDetail.vue b/src/views/land/LandDetail.vue
index 3dce1b0..66c0cd8 100644
--- a/src/views/land/LandDetail.vue
+++ b/src/views/land/LandDetail.vue
@@ -1,323 +1,317 @@
<template>
- <div class="wraaper-box farming-detail-box">
- <div class="dd">
- <div class="da">
- <div class="land-img" @click="mod(usePolygons)">
- <img :src="url" class="landimg"/>
- </div>
- <div class="cent">
- <div class="l">{{ landName }}</div>
- <div class="ln">{{ dic }}</div>
- </div>
- <div class="dc">占地面积:{{ landArea }}{{ dica }}</div>
- <div class="dck">所属农场:{{ deptname }}</div>
+ <div class="wraaper-box farming-detail-box">
+ <div class="dd">
+ <div class="da">
+ <div class="land-img" @click="mod(usePolygons)">
+ <img :src="url" class="landimg" />
+ </div>
+ <div class="cent">
+ <div class="l">{{ landName }}</div>
+ <div class="ln">{{ dic }}</div>
+ </div>
+ <div class="dc">占地面积:{{ landArea }}{{ dica }}</div>
+ <div class="dck">所属农场:{{ deptname }}</div>
- <div class="edit">
- <el-button @click="btnGrounpShow = !btnGrounpShow" icon="el-icon-menu"></el-button>
+ <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>
+ <div v-show="btnGrounpShow" class="btn-grounp" @click="DelLand(delId)">
+ <el-button>删除地块</el-button>
+ </div>
+ </div>
+ </div>
+ <div class="dv">
+ <el-tabs v-model="activeName" @tab-click="handleClick">
+ <!-- 种植记录 -->
+ <el-tab-pane label="种养品种" name="tab1">
+ <farmplant></farmplant>
+ </el-tab-pane>
+ <!-- 农事记录 -->
+ <el-tab-pane label="农事记录" name="tab2">
+ <farming></farming>
+ </el-tab-pane>
+ <!-- 采收记录 -->
+ <el-tab-pane label="采收记录" name="tab3">
+ <recovery></recovery>
+ </el-tab-pane>
+ </el-tabs>
+ </div>
</div>
- </div>
- <div class="dv">
- <el-tabs v-model="activeName" @tab-click="handleClick">
- <!-- 种植记录 -->
- <el-tab-pane label="种养品种" name="tab1">
- <farmplant></farmplant>
- </el-tab-pane>
- <!-- 农事记录 -->
- <el-tab-pane label="农事记录" name="tab2">
- <farming></farming>
- </el-tab-pane>
- <!-- 采收记录 -->
- <el-tab-pane label="采收记录" name="tab3">
- <recovery></recovery>
- </el-tab-pane>
- </el-tabs>
- </div>
+
+ <el-dialog
+ title="地块位置"
+ class="current-map-box"
+ :visible.sync="gradeBoxVisible1"
+ :modal="true"
+ :modal-append-to-body="true"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ :close-on-press-escape="false"
+ :before-close="dialogBeforeClose"
+ >
+ <getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
+ <el-button class="save" type="success" @click="upLand()">保存</el-button>
+ </el-dialog>
</div>
-
- <el-dialog
- title="地块位置"
- class="current-map-box"
- :visible.sync="gradeBoxVisible1"
- :modal="true"
- :modal-append-to-body="true"
- :append-to-body="true"
- :close-on-click-modal="false"
- :close-on-press-escape="false"
- :before-close="dialogBeforeClose"
- >
- <getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
- <el-button class="save" type="success" @click="upLand()">保存</el-button>
- </el-dialog>
- </div>
</template>
<script>
-import {mapGetters} from "vuex"
+import { mapGetters } from "vuex"
import farmplant from "@/views/farmplant/farmplant.vue"
import farming from "@/views/farm/farmingrecord.vue"
import recovery from "@/views/recovery/recovery.vue"
import getMapDataInThere from "./getMapDataInThere.vue"
-import {remove, update} from "@/api/land/land"
+import { remove, update } from "@/api/land/land"
export default {
- components: {
- farmplant,
- farming,
- recovery,
- getMapDataInThere
- },
- data() {
- return {
- farmId: "",
- activeName: "tab1",
- url: "",
- dica: "",
- deptname: "",
- landUnit: "",
- delId: "",
- landArea: "",
- usePolygons: "",
- dic: "",
- formC: {},
- gradeBoxVisible1: false,
- option2: {
- index: true,
- tip: false,
- searchMenuSpan: 6,
- height: 583,
- menuWidth: 300,
- border: true,
- align: "center",
- selection: true,
- column: [
- {
- label: "路线展示",
- labelWidth: "0",
- prop: "line",
- className: "mapClass",
- hide: true,
- display: true,
- span: 24,
- formslot: true,
- addDisplay: true
- }
- ],
- },
- btnGrounpShow: false
- }
- },
- computed: {
- ...mapGetters(["userInfo", "permission", "polygons"]),
- },
- created() {
- this.url = this.$route.query.url
- this.landName = this.$route.query.landName
- this.dic = this.$route.query.dic
- this.landArea = this.$route.query.landArea
- this.dica = this.$route.query.dica
- this.deptname = this.$route.query.deptname
- this.delId = this.$route.query.id
- this.landUnit = this.$route.query.landUnit
- // this.form = res.data.data;
- this.usePolygons = this.$route.query.landRange
- .split("POLYGON((")[1]
- .split("))")[0]
- .split(",")
- for (let k in usePolygons) {
- usePolygons[k] = {
- lng: +usePolygons[k].split(" ")[0],
- lat: +usePolygons[k].split(" ")[1],
- }
- }
- },
- methods: {
- mod(usePolygons) {
- this.gradeBoxVisible1 = true
- this.$refs.getMapData.draw(usePolygons)
+ components: {
+ farmplant,
+ farming,
+ recovery,
+ getMapDataInThere
},
- setMapData(val) {
- this.LineData = val[0];
- this.PointData = val[1];
- },
- //删除地块
- DelLand(delId) {
- this.$confirm("确定将选择数据删除?", {
- confirmButtonText: "确定",
- cancelButtonText: "取消",
- type: "warning"
- })
- .then(() => {
- return remove(delId);
- })
- .then(() => {
- this.$message({
- type: "success",
- message: "操作成功!"
- });
- this.$router.push({
- path: `/land/cs`,
- });
- });
- },
- //修改地块
- upLand() {
- var params = {}
- 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 += ";";
- }
+ data () {
+ return {
+ farmId: "",
+ activeName: "tab1",
+ url: "",
+ dica: "",
+ deptname: "",
+ landUnit: "",
+ delId: "",
+ landArea: "",
+ usePolygons: "",
+ dic: "",
+ formC: {},
+ gradeBoxVisible1: false,
+ option2: {
+ index: true,
+ tip: false,
+ searchMenuSpan: 6,
+ height: 583,
+ menuWidth: 300,
+ border: true,
+ align: "center",
+ selection: true,
+ column: [
+ {
+ label: "路线展示",
+ labelWidth: "0",
+ prop: "line",
+ className: "mapClass",
+ hide: true,
+ display: true,
+ span: 24,
+ formslot: true,
+ addDisplay: true
+ }
+ ],
+ },
+ btnGrounpShow: false
}
- //设置坐标点
- params.userId = this.userInfo.user_id;
- params.landRange = usePolygons;
- params.id = this.delId,
- params.landUnit = this.landUnit
- }
- // update(params).then(() => {
- // that.$refs.form.resetFields();
- // that.visible = false;
- // this.$message({
- // type: "success",
- // message: "操作成功!"
- // });
- // done();
- // }, error => {
- // loading();
- // window.console.log(error);
- // });
- }
- },
- watch: {},
+ },
+ computed: {
+ ...mapGetters(["userInfo", "permission", "polygons"]),
+ },
+ created () {
+ this.url = this.$route.query.url
+ this.landName = this.$route.query.landName
+ this.dic = this.$route.query.dic
+ this.landArea = this.$route.query.landArea
+ this.dica = this.$route.query.dica
+ this.deptname = this.$route.query.deptname
+ this.delId = this.$route.query.id
+ this.landUnit = this.$route.query.landUnit
+ // this.form = res.data.data;
+ this.usePolygons = this.$route.query.landRange
+ .split("POLYGON((")[1]
+ .split("))")[0]
+ .split(",")
+ },
+ methods: {
+ mod (usePolygons) {
+ this.gradeBoxVisible1 = true
+ this.$refs.getMapData.draw(usePolygons)
+ },
+ setMapData (val) {
+ this.LineData = val[0]
+ this.PointData = val[1]
+ },
+ //删除地块
+ DelLand (delId) {
+ this.$confirm("确定将选择数据删除?", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ return remove(delId)
+ })
+ .then(() => {
+ this.$message({
+ type: "success",
+ message: "操作成功!"
+ })
+ this.$router.push({
+ path: `/land/cs`,
+ })
+ })
+ },
+ //修改地块
+ upLand () {
+ var params = {}
+ 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 += ";"
+ }
+ }
+ //设置坐标点
+ params.userId = this.userInfo.user_id
+ params.landRange = usePolygons
+ params.id = this.delId,
+ params.landUnit = this.landUnit
+ }
+ // update(params).then(() => {
+ // that.$refs.form.resetFields();
+ // that.visible = false;
+ // this.$message({
+ // type: "success",
+ // message: "操作成功!"
+ // });
+ // done();
+ // }, error => {
+ // loading();
+ // window.console.log(error);
+ // });
+ }
+ },
+ watch: {},
}
</script>
<style scoped lang="scss">
#getMapData {
- position: absolute;
- top: 0;
- left: 0;
- right: 0;
- bottom: 0;
- margin: auto;
- width: 100%;
- height: 100%;
+ position: absolute;
+ top: 0;
+ left: 0;
+ right: 0;
+ bottom: 0;
+ margin: auto;
+ width: 100%;
+ height: 100%;
}
.wraaper-box {
- padding: 0 !important;
- position: absolute;
- top: 40px;
- left: 0;
- width: 100%;
- height: calc(100% - 40px);
+ padding: 0 !important;
+ position: absolute;
+ top: 40px;
+ left: 0;
+ width: 100%;
+ height: calc(100% - 40px);
}
.land-img {
- width: 200px;
- height: 200px;
- margin-top: 25px;
- margin-left: 60px;
- float: left;
+ width: 200px;
+ height: 200px;
+ margin-top: 25px;
+ margin-left: 60px;
+ float: left;
}
.cent {
- width: 250px;
- height: 40px;
- margin-top: 25px;
- margin-left: 40px;
- float: left;
- text-align: center;
- line-height: 40px;
+ width: 250px;
+ height: 40px;
+ margin-top: 25px;
+ margin-left: 40px;
+ float: left;
+ text-align: center;
+ line-height: 40px;
}
.l {
- width: 120px;
- height: 40px;
- float: left;
- text-align: center;
- line-height: 40px;
+ width: 120px;
+ height: 40px;
+ float: left;
+ text-align: center;
+ line-height: 40px;
}
.ln {
- width: 120px;
- height: 40px;
- margin-left: 2px;
- float: left;
- text-align: center;
- line-height: 40px;
- display: inline-block;
- vertical-align: 1px;
- border-radius: 3px;
+ width: 120px;
+ height: 40px;
+ margin-left: 2px;
+ float: left;
+ text-align: center;
+ line-height: 40px;
+ display: inline-block;
+ vertical-align: 1px;
+ border-radius: 3px;
}
.dc {
- width: 151px;
- margin-top: 20px;
- margin-left: 340px;
- width: 175px;
+ width: 151px;
+ margin-top: 20px;
+ margin-left: 340px;
+ width: 175px;
}
.dck {
- width: 151px;
- margin-left: 340px;
- width: 175px;
+ width: 151px;
+ margin-left: 340px;
+ width: 175px;
}
.landimg {
- width: 200px;
- height: 200px;
+ width: 200px;
+ height: 200px;
}
.dd {
- padding: 10px;
- wdith: 100%;
- height: 100%;
- display: flex;
- flex-direction: column;
- box-sizing: border-box;
+ padding: 10px;
+ wdith: 100%;
+ height: 100%;
+ display: flex;
+ flex-direction: column;
+ box-sizing: border-box;
}
.da {
- position: relative;
- width: 100%;
- line-height: 60px;
- background: #fff;
+ position: relative;
+ width: 100%;
+ line-height: 60px;
+ background: #fff;
- .edit {
- position: absolute;
- top: 25px;
- right: 60px;
+ .edit {
+ position: absolute;
+ top: 25px;
+ right: 60px;
- .btn-grounp {
- padding: 0 10px;
- position: absolute;
- top: 40px;
- right: 60px;
- background: #fff;
- box-shadow: 0 0 10px 1px #ccc;
+ .btn-grounp {
+ padding: 0 10px;
+ position: absolute;
+ top: 40px;
+ right: 60px;
+ background: #fff;
+ box-shadow: 0 0 10px 1px #ccc;
+ }
}
- }
}
.dv {
- flex: 1;
- line-height: 60px;
- background: #fff;
- width: 100%;
- overflow: hidden;
+ flex: 1;
+ line-height: 60px;
+ background: #fff;
+ width: 100%;
+ overflow: hidden;
}
</style>
diff --git a/src/views/land/getMapDataInThere.vue b/src/views/land/getMapDataInThere.vue
index e3950e0..cb6886e 100644
--- a/src/views/land/getMapDataInThere.vue
+++ b/src/views/land/getMapDataInThere.vue
@@ -63,8 +63,20 @@
},
methods: {
draw (usePolygons) {
- this.$store.commit("setpolygon", usePolygons) //用vuex传最终数据
- this.doThat(usePolygons)
+
+ let arr = []
+
+ usePolygons.forEach(item => {
+ arr.push({
+ lng: item.split(' ')[0],
+ lat: item.split(' ')[1]
+ })
+ })
+
+ console.log(arr, 23)
+
+ this.$store.commit("setpolygon", arr) //用vuex传最终数据
+ this.doThat(arr)
},
doThat (val) {
this.checkDom("getMapDataRefs", (dom) => {
--
Gitblit v1.9.3