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/store/modules/user.js | 3
src/views/farm/farmInfoDetail.vue | 20
src/components/map/mainInThere.vue | 29 +
src/views/remote/remote.vue | 12
src/views/wel/land.vue | 260 ++++++++--
src/views/land/landAdd.vue | 495 ++++++++++++++-------
src/views/farmplant/farmplant.vue | 3
src/store/getters.js | 1
src/views/farm/farm.vue | 26
src/views/land/landUpdate.vue | 478 +++++++++++--------
src/views/traceability/details.vue | 2
11 files changed, 852 insertions(+), 477 deletions(-)
diff --git a/src/components/map/mainInThere.vue b/src/components/map/mainInThere.vue
index 05a9d69..5c4b791 100644
--- a/src/components/map/mainInThere.vue
+++ b/src/components/map/mainInThere.vue
@@ -113,7 +113,12 @@
//面实例
zIndex: 22,
source: new VectorSource()
- })
+ }),
+ urls:[
+ "http://t{0-7}.tianditu.gov.cn/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0",
+ "http://t{0-7}.tianditu.gov.cn/DataServer?T=cva_w&x={x}&y={y}&l={z}&tk=e9533f5acb2ac470b07f406a4d24b4f0"
+ ],
+ imgSrc:''
};
},
computed: {
@@ -134,9 +139,21 @@
new OlLayerTile({
zIndex: 4,
title: "影像",
- source: new XYZ({
- url:
- "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal" // 行政区划
+ source:
+ new XYZ({
+ // url:
+ // "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal" // 行政区划
+ url:this.urls[0]
+ })
+ }),
+ new OlLayerTile({
+ zIndex: 5,
+ title: "区划",
+ source:
+ new XYZ({
+ // url:
+ // "https://webmap-tile.sf-express.com/MapTileService/rt?fetchtype=static&x={x}&y={y}&z={z}&project=sfmap&pic_size=256&pic_type=png8&data_name=361100&data_format=merged-dat&data_type=normal" // 行政区划
+ url:this.urls[1],
})
})
],
@@ -155,8 +172,8 @@
var view = ol2d.getView();
this.source = new VectorSource({ wrapX: false });
- view.setCenter([115.9032747077233, 28.67433116990186]);
-
+ // view.setCenter([115.9032747077233, 28.67433116990186]);
+ view.setCenter([116.56705776, 27.42386903]);
this.view = view;
},
methods: {
diff --git a/src/store/getters.js b/src/store/getters.js
index 834a8ab..36f6173 100644
--- a/src/store/getters.js
+++ b/src/store/getters.js
@@ -22,6 +22,7 @@
menu: state => state.user.menu,
menuId: state => state.user.menuId,
menuAll: state => state.user.menuAll,
+ drawMapUrlBase: state => state.user.drawMapUrlBase,
logsList: state => state.logs.logsList,
logsLen: state => state.logs.logsList.length || 0,
logsFlag: (state, getters) => getters.logsLen === 0,
diff --git a/src/store/modules/user.js b/src/store/modules/user.js
index 2fdc3b8..86565d3 100644
--- a/src/store/modules/user.js
+++ b/src/store/modules/user.js
@@ -51,7 +51,8 @@
menuAll: getStore({name: 'menuAll'}) || [],
token: getStore({name: 'token'}) || '',
refreshToken: getStore({name: 'refreshToken'}) || '',
- $farmId: 0
+ $farmId: 0,
+ drawMapUrlBase: 'http://182.106.212.58:8013'
},
actions: {
loginInfoByToken({commit}) {
diff --git a/src/views/farm/farm.vue b/src/views/farm/farm.vue
index 15762ba..5a6ce90 100644
--- a/src/views/farm/farm.vue
+++ b/src/views/farm/farm.vue
@@ -31,9 +31,9 @@
>删 除</el-button>
</template>
<!-- 地图插入 -->
- <template slot-scope="{ type, disabled }" slot="lineForm">
+ <!-- <template slot-scope="{ type, disabled }" slot="lineForm">
<getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
- </template>
+ </template> -->
<template slot-scope="{ type, size, row }" slot="menu">
<el-button
icon="el-icon-view"
@@ -236,17 +236,17 @@
},
action: "/api/blade-resource/oss/endpoint/put-files"
},
- {
- label: "路线展示",
- labelWidth: 145,
- prop: "line",
- className: "mapClass",
- hide: true,
- display: true,
- span: 24,
- formslot: true,
- addDisplay: true
- }
+ // {
+ // label: "路线展示",
+ // labelWidth: 145,
+ // prop: "line",
+ // className: "mapClass",
+ // hide: true,
+ // display: true,
+ // span: 24,
+ // formslot: true,
+ // addDisplay: true
+ // }
],
}
}
diff --git a/src/views/farm/farmInfoDetail.vue b/src/views/farm/farmInfoDetail.vue
index b098c3c..6cc383b 100644
--- a/src/views/farm/farmInfoDetail.vue
+++ b/src/views/farm/farmInfoDetail.vue
@@ -5,13 +5,13 @@
<basic-container>
<avue-form ref="form" v-model="objBase" :option="optionBase" @submit="submitBase">
<!-- 地图插入 -->
- <template slot-scope="{}" slot="position">
+ <!-- <template slot-scope="{}" slot="position">
<getMapDataInThere
ref="getMapData"
id="getMapData"
@setMapData="setMapData"
></getMapDataInThere>
- </template>
+ </template> -->
</avue-form>
</basic-container>
</el-tab-pane>
@@ -160,14 +160,14 @@
},
action: "/api/blade-resource/oss/endpoint/put-files"
},
- {
- label: "农场位置",
- prop: "position",
- className: "mapClass",
- span: 24,
- formslot: true,
- labelWidth: 145,
- },
+ // {
+ // label: "农场位置",
+ // prop: "position",
+ // className: "mapClass",
+ // span: 24,
+ // formslot: true,
+ // labelWidth: 145,
+ // },
],
},
],
diff --git a/src/views/farmplant/farmplant.vue b/src/views/farmplant/farmplant.vue
index 16db0fa..4726340 100644
--- a/src/views/farmplant/farmplant.vue
+++ b/src/views/farmplant/farmplant.vue
@@ -30,7 +30,7 @@
>删 除</el-button>
</template>
<template slot-scope="{ type, size, row }" slot="menu">
- <el-button icon="el-icon-check" :size="size" :type="type" @click="recovery(row)">采 收</el-button>
+ <el-button :disabled="row.plantingWay == 2" icon="el-icon-check" :size="size" :type="type" @click="recovery(row)">采 收</el-button>
<!-- <el-button icon="el-icon-error" :size="size" :type="type" @click="over(row.id)">结 束</el-button> -->
<el-button icon="el-icon-error" :size="size" :type="type" @click="getData(row)">结 束</el-button>
@@ -675,7 +675,6 @@
methods: {
//初始化数据
initData () {
- console.log(this.$farmId,66666666666)
var that = this
//获取农地数据
getLandList(this.$farmId).then((res) => {
diff --git a/src/views/land/landAdd.vue b/src/views/land/landAdd.vue
index cf861a7..6664737 100644
--- a/src/views/land/landAdd.vue
+++ b/src/views/land/landAdd.vue
@@ -1,194 +1,343 @@
<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 ref="getMapData" id="getMapData" @setMapData="setMapData"></getMapDataInThere>
- </template>
- </avue-form>
- </el-dialog>
+ <el-dialog
+ :title="title"
+ :modal-append-to-body="false"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ width="80%"
+ :visible.sync="visible"
+ top="10vh"
+ >
+ <avue-form ref="form" v-model="form" :option="option" @submit="submit">
+ <!-- 地图插入 -->
+ <template slot-scope="{ type, disabled }" slot="line">
+ <!-- <getMapDataInThere ref="getMapData" id="getMapData" @setMapData="setMapData"></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 { getFarmList } from "@/api/farm/farm"
-import { getDeptTree } from "@/api/system/dept"
-import { add } from "@/api/land/land"
-import website from '@/config/website'
-import getMapDataInThere from "./getMapDataInThere.vue"
+import { mapGetters } from "vuex";
+import { getFarmList,getDetail } from "@/api/farm/farm";
+import { getDeptTree } from "@/api/system/dept";
+import { add } from "@/api/land/land";
+import website from "@/config/website";
+import domtoimage from "dom-to-image";
+import h2 from "html2canvas";
+import getMapDataInThere from "./getMapDataInThere.vue";
+import { number } from "echarts";
+// import canvas2Image from 'canvas2Image'
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",
- value:"",
- dicData: [],
- props: {
- label: "farmName",
- value: "id"
- },
- disabled:true,
- 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"
- },
- rules: [{
- required: true,
- message: "请选择面积单位",
- trigger: "click"
- }],
- dataType: "number",
- span: 6,
- },
- {
- label: "地块展示",
- labelWidth: "0",
- prop: "line",
- className: "mapClass",
- span: 24,
- formslot: true,
- }
- ],
+ components: {
+ getMapDataInThere,
+ },
+ data() {
+ return {
+ title: "新增地块",
+ form: {},
+ option: {
+ emptyBtn: false,
+ submitText: "保存",
+ submitBtn: false,
+ gutter: 30,
+ column: [
+ {
+ label: "地块名称",
+ prop: "landName",
+ rules: [
+ {
+ required: true,
+ message: "请输入地块名称",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "所属农场",
+ prop: "farmId",
+ type: "tree",
+ value: "",
+ dicData: [],
+ props: {
+ label: "farmName",
+ value: "id",
},
- visible: false,
+ disabled: true,
+ 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: "landArea",
+ rules: [
+ {
+ required: true,
+ message: "请输入面积",
+ trigger: "click",
+ },
+ ],
+ span: 6,
+ type: "number",
+ controls: false,
+ },
+ {
+ label: "面积单位",
+ prop: "landUnit",
+ value: "0",
+ type: "select",
+ dicUrl: "/api/blade-system/dict-biz/dictionary?code=landunit",
+ props: {
+ label: "dictValue",
+ value: "dictKey",
+ },
+ rules: [
+ {
+ required: true,
+ message: "请选择面积单位",
+ trigger: "click",
+ },
+ ],
+ dataType: "number",
+ span: 6,
+ },
+ // {
+ // label: "地块展示",
+ // labelWidth: "0",
+ // prop: "line",
+ // className: "mapClass",
+ // span: 24,
+ // formslot: true,
+ // }
+ ],
+ },
+ url: "",
+ landUrl: "",
+ polygon: [],
+ area: "",
+ farmInfo:{},
+ visible: false,
+ };
+ },
+ created() {
+
+ },
+ computed: {
+ ...mapGetters([
+ "userInfo",
+ "permission",
+ "polygons",
+ "$farmId",
+ "drawMapUrlBase",
+ ]),
+ },
+ watch: {
+ landUrl: {
+ handler(newVal, oldVal) {
+ if (newVal) {
+ this.$refs.form.submit();
}
+ },
},
- computed: {
- ...mapGetters(["userInfo", "permission", "polygons","$farmId"]),
+ "form.landName": {
+ handler(newVal, oldVal) {
+ this.landUrl = "";
+ },
},
- mounted () {
- this.initData(this.userInfo.tenant_id)
+ "form.landType": {
+ handler(newVal, oldVal) {
+ this.landUrl = "";
+ },
},
- methods: {
- initData (tenantId) {
- getFarmList().then(res => {
- const column = this.findObject(this.option.column, "farmId")
- column.dicData = res.data.data
- })
- },
- //初始化
- init () {
- //清空面的数据
- this.$store.commit('clear_polygon')
- //计算当前时间
- this.visible = true
- this.form.farmId = this.$farmId
- },
- // 表单提交
- submit (row, done) {
- row['deptId'] = this.userInfo.dept_id
- // row.farmId = this.farm.id
- var that = this
- 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 += ";"
- }
- }
- //设置坐标点
- row.userId = this.userInfo.user_id
- row.landRange = usePolygons
- }
- add(row).then(() => {
- that.$emit("refreshOnLoad")
- that.$refs.form.resetFields()
- that.form.landUnit = "0"
- 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]
- },
+ "form.landArea": {
+ handler(newVal, oldVal) {
+ this.landUrl = "";
+ },
},
+ "form.landUnit": {
+ handler(newVal, oldVal) {
+ this.landUrl = "";
+ },
+ },
+ },
+ 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) {
+ getFarmList().then((res) => {
+ const column = this.findObject(this.option.column, "farmId");
+ column.dicData = res.data.data;
+ });
+ },
+ //初始化
+ init() {
+ //清空面的数据
+ this.$store.commit("clear_polygon");
+ this.form.landArea = 0
+ this.visible = true;
+ 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) {
+ row["deptId"] = this.userInfo.dept_id;
+ // row.farmId = this.farm.id
+
+ var that = this;
+ 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
+ // loading()
+ } else {
+ //如果有值,空间坐标转换
+ let pol = this.polygon;
+ let polLength = this.polygon.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;
+ }
+
+ // 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 += ";"
+ // }
+ // }
+ // //设置坐标点
+ // row.userId = this.userInfo.user_id
+ // row.landRange = usePolygons
+ // console.log(row.landRange)
+ // }
+
+ row["url"] = this.landUrl;
+ // row['landArea'] = this.area
+
+ if (row.landArea < 0) {
+ this.$message.warning("地块面积不能为负数");
+ done();
+ return;
+ }
+
+ add(row).then(
+ () => {
+ that.$emit("refreshOnLoad");
+ that.$refs.form.resetFields();
+ that.form.landUnit = "0";
+ 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];
+ },
+
+ showMap() {
+ this.mapVisible = true;
+ },
+ },
};
</script>
<style lang="scss" scoped>
.mapClass div label {
- display: none;
+ display: none;
}
#getMapData {
- width: 90%;
- position: relative;
- height: 400px;
- top: 10px;
- left: 90px;
+ width: 90%;
+ position: relative;
+ height: 400px;
+ top: 10px;
+ left: 90px;
+}
+
+.map {
+ height: 450px;
}
</style>
diff --git a/src/views/land/landUpdate.vue b/src/views/land/landUpdate.vue
index 57029e4..428d827 100644
--- a/src/views/land/landUpdate.vue
+++ b/src/views/land/landUpdate.vue
@@ -1,227 +1,299 @@
<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>
+ <el-dialog
+ :title="title"
+ :modal-append-to-body="false"
+ :append-to-body="true"
+ :close-on-click-modal="false"
+ 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 :currentPolygons="form.landRange" ref="getMapData" id="getMapData" @setMapData="setMapData"></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 { 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"
+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: {},
- isFarmNameCk:false,
- option: {
- emptyBtn: false,
- submitText: "保存",
- gutter: 30,
- farmName:'',
- column: [
- {
- label: "地块名称",
- prop: "landName",
- rules: [{
- required: true,
- message: "请输入地块名称",
- trigger: "blur"
- }]
- },
- {
- label: "所属农场",
- prop: "farmId",
- type: "tree",
- disabled:true,
- dicData: [],
- props: {
- label: "farmName",
- value: "id"
- },
- slot: true,
- click:function (value){
- this.isFarmNameCk = 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,
- }
- ],
+ components: {
+ getMapDataInThere,
+ },
+ data() {
+ return {
+ title: "编辑地块",
+ form: {},
+ isFarmNameCk: false,
+ option: {
+ emptyBtn: false,
+ submitText: "保存",
+ submitBtn: false,
+ gutter: 30,
+ farmName: "",
+ column: [
+ {
+ label: "地块名称",
+ prop: "landName",
+ rules: [
+ {
+ required: true,
+ message: "请输入地块名称",
+ trigger: "blur",
+ },
+ ],
+ },
+ {
+ label: "所属农场",
+ prop: "farmId",
+ type: "tree",
+ disabled: true,
+ dicData: [],
+ props: {
+ label: "farmName",
+ value: "id",
},
- visible: false,
+ slot: true,
+ click: function (value) {
+ this.isFarmNameCk = 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: "landArea",
+ rules: [
+ {
+ required: true,
+ message: "请输入面积",
+ trigger: "click",
+ },
+ ],
+ span: 6,
+ type: "number",
+ controls: false,
+ },
+ {
+ 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,
+ // }
+ ],
+ },
+ url: "",
+ landUrl: "",
+ polygon: [],
+ area: "",
+ visible: false,
+ };
+ },
+ watch: {
+ landUrl: {
+ handler(newVal, oldVal) {
+ this.$refs.form.submit();
+ },
+ },
+ },
+ computed: {
+ ...mapGetters(["userInfo", "permission", "polygons", "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) => {
+ const column = this.findObject(this.option.column, "farmId");
+ column.dicData = res.data.data;
+ });
+ },
+ //初始化
+ init() {
+ this.url =
+ this.drawMapUrlBase +
+ "/revamp?type=1&status=manage&position=" +
+ this.$route.query.landRange;
+ //清空面的数据
+ this.$store.commit("clear_polygon");
+ //计算当前时间
+ this.visible = true;
+ 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.$farmId = this.$route.query.deptname;
+ 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(',')
+ this.form.landRange = this.form.landRange.replaceAll(",", ";");
+ this.form.landRange = this.form.landRange.replaceAll(" ", ",");
+ },
+ // 表单提交
+ submit(row, loading) {
+ row["deptId"] = this.userInfo.dept_id;
+ var that = this;
+
+ 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) {
+ //如果有值,空间坐标转换
+ let pol = this.polygon;
+ let polLength = this.polygon.length - 1;
+ let usePolygons = "";
+ for (let k in pol) {
+ usePolygons += pol[k].lng + "," + pol[k].lat;
+ if (k != polLength) {
+ usePolygons += ";";
+ }
}
- },
- computed: {
- ...mapGetters(["userInfo", "permission", "polygons"]),
- },
- mounted () {
- this.initData(this.userInfo.tenant_id)
- },
- methods: {
- initData (tenantId) {
- 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
- 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.$farmId = this.$route.query.deptname
- this.form.landUnit = this.$route.query.landUnit
- this.form.landType = this.$route.query.landType
- this.form.landRange = this.$route.query.landRange
+ //设置坐标点
+ row.userId = this.userInfo.user_id;
+ row.landRange = usePolygons;
-
- 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
+ row["url"] = this.landUrl;
+ // row['landArea'] = this.area
+ }
+ update(row).then(
+ () => {
+ that.$emit("refreshOnLoad");
+ that.$refs.form.validate((vaild, done) => {
+ if (row.landArea < 0) {
+ this.$message.warning("地块面积不能为负数");
+ done();
+ return;
}
- update(row).then(() => {
- that.$emit("refreshOnLoad")
- that.$refs.form.validate((vaild,done)=>{
- if (vaild) {
- that.visible = false
- this.$message({
- type: "success",
- message: "操作成功!"
- })
- done()
- this.form.landRange = this.$route.query.landRange
- this.form.dica = row.$landUnit
- this.form.dic = row.$landType
- this.form.deptname = row.$farmId
+ if (vaild) {
+ that.visible = false;
+ this.$message({
+ type: "success",
+ message: "操作成功!",
+ });
+ done();
- var arr = [];
- this.$store.state.tags.tagList.forEach((item) => {
- if (item.label != "地块详情") {
- arr.push(item);
- }
- });
- this.$store.state.tags.tagList = arr;
- this.$router.replace({ path: `/LandDetail`, query: this.form });
- }
+ // this.form.landRange = this.$route.query.landRange
+ // this.form.dica = row.$landUnit
+ // this.form.dic = row.$landType
+ // this.form.deptname = row.$farmId
- })
-
- }, error => {
- loading()
- window.console.log(error)
- })
+ // var arr = [];
+ // this.$store.state.tags.tagList.forEach((item) => {
+ // if (item.label != "地块详情") {
+ // arr.push(item);
+ // }
+ // });
+ // this.$store.state.tags.tagList = arr;
+ // this.$router.replace({ path: `/land`, query: this.form });
+ this.$router.go(-1);
+ }
+ });
},
- setMapData (val) {
- this.LineData = val[0]
- this.PointData = val[1]
- },
+ (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;
+ display: none;
}
#getMapData {
- width: 90%;
- position: relative;
- height: 400px;
- top: 10px;
- left: 90px;
+ width: 90%;
+ position: relative;
+ height: 400px;
+ top: 10px;
+ left: 90px;
+}
+.map {
+ height: 450px;
}
</style>
diff --git a/src/views/remote/remote.vue b/src/views/remote/remote.vue
index 10d8a74..ca53593 100644
--- a/src/views/remote/remote.vue
+++ b/src/views/remote/remote.vue
@@ -93,7 +93,7 @@
searchSpan:4,
rules: [{
required: true,
- message: "请输入reName",
+ message: "请输入专题名称",
trigger: "blur"
}]
},
@@ -135,7 +135,7 @@
}]
},
{
- label: "通知时间",
+ label: "拍摄时间",
prop: "releaseTimeRange",
type: "datetime",
format: "yyyy-MM-dd hh:mm:ss",
@@ -157,9 +157,11 @@
prop: "reTime",
search: true,
searchSpan: 4,
- type: "datetime",
- format: "yyyy-MM-dd",
- valueFormat: "yyyy-MM-dd",
+ type: "month",
+ // format: "yyyy-MM-dd",
+ // valueFormat: "yyyy-MM-dd",
+ format: "yyyy-MM",
+ valueFormat: "yyyy-MM",
rules: [{
required: true,
message: "请输入遥感时间",
diff --git a/src/views/traceability/details.vue b/src/views/traceability/details.vue
index 58acef2..6d98fee 100644
--- a/src/views/traceability/details.vue
+++ b/src/views/traceability/details.vue
@@ -7,7 +7,7 @@
export default {
data() {
return {
- url: "/traceablityInfos.html",
+ url: "traceablityInfos.html",
};
},
created(){
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