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/views/wel/land.vue | 260 +++++++++++++++++++++++++++++++++++++++------------
1 files changed, 197 insertions(+), 63 deletions(-)
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