| | |
| | | <template> |
| | | <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> |
| | | <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 domtoimage from 'dom-to-image' |
| | | import h2 from 'html2canvas' |
| | | import getMapDataInThere from "./getMapDataInThere.vue" |
| | | 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 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: "保存", |
| | | 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" |
| | | }, |
| | | 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", |
| | | }, |
| | | url:"", |
| | | landUrl:"", |
| | | polygon:[], |
| | | area:"", |
| | | 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: "", |
| | | visible: false, |
| | | }; |
| | | }, |
| | | created() { |
| | | this.url = |
| | | this.drawMapUrlBase + "/base?type=1&lng=112&lat=24&status=manage"; |
| | | }, |
| | | computed: { |
| | | ...mapGetters([ |
| | | "userInfo", |
| | | "permission", |
| | | "polygons", |
| | | "$farmId", |
| | | "drawMapUrlBase", |
| | | ]), |
| | | }, |
| | | watch: { |
| | | landUrl: { |
| | | handler(newVal, oldVal) { |
| | | if (newVal) { |
| | | this.$refs.form.submit(); |
| | | } |
| | | }, |
| | | }, |
| | | created() { |
| | | this.url = this.drawMapUrlBase + "/base?type=1&lng=112&lat=24&status=manage" |
| | | "form.landName": { |
| | | handler(newVal, oldVal) { |
| | | this.landUrl = ""; |
| | | }, |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["userInfo", "permission", "polygons","$farmId", "drawMapUrlBase"]), |
| | | "form.landType": { |
| | | handler(newVal, oldVal) { |
| | | this.landUrl = ""; |
| | | }, |
| | | }, |
| | | watch:{ |
| | | "landUrl":{ |
| | | handler(newVal,oldVal){ |
| | | this.$refs.form.submit() |
| | | } |
| | | "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; |
| | | }, |
| | | // 表单提交 |
| | | 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 += ";"; |
| | | } |
| | | } |
| | | }, |
| | | mounted () { |
| | | this.initData(this.userInfo.tenant_id) |
| | | window.addEventListener('message', this.handleMessage) |
| | | }, |
| | | methods: { |
| | | handleMessage(event) { |
| | | if(event.type){ |
| | | var obj = event.data |
| | | this.polygon = obj.polygons |
| | | this.landUrl = obj.url |
| | | this.area = obj.area.toFixed(2) |
| | | } |
| | | //设置坐标点 |
| | | 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(); |
| | | }, |
| | | 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) { |
| | | console.log(row) |
| | | 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 |
| | | 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 |
| | | (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; |
| | | .map { |
| | | height: 450px; |
| | | } |
| | | </style> |
| | |
| | | <template> |
| | | <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> |
| | | <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: "保存", |
| | | 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" |
| | | }, |
| | | 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", |
| | | }, |
| | | url:"", |
| | | landUrl:"", |
| | | polygon:[], |
| | | area:"", |
| | | 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 += ";"; |
| | | } |
| | | } |
| | | }, |
| | | watch:{ |
| | | "landUrl":{ |
| | | handler(newVal,oldVal){ |
| | | this.$refs.form.submit() |
| | | //设置坐标点 |
| | | 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; |
| | | } |
| | | |
| | | 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 |
| | | |
| | | // 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); |
| | | } |
| | | }); |
| | | }, |
| | | (error) => { |
| | | loading(); |
| | | window.console.log(error); |
| | | } |
| | | ); |
| | | }, |
| | | computed: { |
| | | ...mapGetters(["userInfo", "permission", "polygons","drawMapUrlBase"]), |
| | | setMapData(val) { |
| | | this.LineData = val[0]; |
| | | this.PointData = val[1]; |
| | | }, |
| | | mounted () { |
| | | this.initData(this.userInfo.tenant_id) |
| | | window.addEventListener('message', this.handleMessage) |
| | | }, |
| | | methods: { |
| | | handleMessage(event) { |
| | | if(event.type){ |
| | | var obj = event.data |
| | | this.polygon = obj.polygons |
| | | this.landUrl = obj.url |
| | | this.area = obj.area.toFixed(2) |
| | | |
| | | } |
| | | }, |
| | | 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 += ";" |
| | | } |
| | | } |
| | | //设置坐标点 |
| | | 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 (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 |
| | | |
| | | // 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) |
| | | } |
| | | |
| | | }) |
| | | |
| | | }, 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; |
| | | .map { |
| | | height: 450px; |
| | | } |
| | | </style> |
| | |
| | | id="getMapData" |
| | | @setMapData="setMapData" |
| | | ></getMapDataInThere> --> |
| | | |
| | | </template> |
| | | </avue-form> |
| | | |
| | | <div class="map"> |
| | | <iframe :src="url" frameborder="0" width="100%" height="100%" ></iframe> |
| | | <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 { 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, |
| | | submitBtn: false, |
| | | gutter: 30, |
| | | column: [ |
| | | { |
| | | label: "地块名称", |
| | | prop: "landName", |
| | | rules: [{ |
| | | required: true, |
| | | message: "请输入地块名称", |
| | | trigger: "blur" |
| | | }] |
| | | rules: [ |
| | | { |
| | | required: true, |
| | | message: "请输入地块名称", |
| | | trigger: "blur", |
| | | }, |
| | | ], |
| | | }, |
| | | { |
| | | label: "所属农场", |
| | |
| | | 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: "地块类型", |
| | |
| | | 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, |
| | |
| | | // } |
| | | ], |
| | | }, |
| | | url:"", |
| | | landUrl:"", |
| | | polygon:[], |
| | | area:"", |
| | | url: "", |
| | | landUrl: "", |
| | | polygon: [], |
| | | area: "", |
| | | visible: false, |
| | | }; |
| | | }, |
| | | created(){ |
| | | this.url = this.drawMapUrlBase + "/base?type=1&lng=112&lat=24&status=manage" |
| | | created() { |
| | | this.url = |
| | | this.drawMapUrlBase + "/base?type=1&lng=112&lat=24&status=manage"; |
| | | }, |
| | | watch:{ |
| | | "landUrl":{ |
| | | handler(newVal,oldVal){ |
| | | this.$refs.form.submit() |
| | | } |
| | | } |
| | | 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","drawMapUrlBase"]), |
| | | ...mapGetters([ |
| | | "userInfo", |
| | | "permission", |
| | | "polygons", |
| | | "$farmId", |
| | | "drawMapUrlBase", |
| | | ]), |
| | | }, |
| | | mounted() { |
| | | this.initData(this.userInfo.tenant_id); |
| | | window.addEventListener('message', this.handleMessage) |
| | | window.addEventListener("message", this.handleMessage); |
| | | }, |
| | | methods: { |
| | | handleMessage(event) { |
| | | if(event.type){ |
| | | var obj = event.data |
| | | this.polygon = obj.polygons |
| | | this.landUrl = obj.url |
| | | this.area = obj.area.toFixed(2) |
| | | 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; |
| | | }); |
| | |
| | | //初始化 |
| | | init() { |
| | | //计算当前时间 |
| | | this.form.landArea = 0 |
| | | this.visible = true; |
| | | this.form.farmId = this.$farmId |
| | | this.form.farmId = this.$farmId; |
| | | }, |
| | | // 表单提交 |
| | | submit(row,done) { |
| | | submit(row, done) { |
| | | var that = this; |
| | | |
| | | |
| | | // if (this.polygons.length == 0) { |
| | | // //没有面的数据 |
| | |
| | | // 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 |
| | | 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() |
| | | //没有面的数据 |
| | | // 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 += ";" |
| | | } |
| | | //如果有值,空间坐标转换 |
| | | 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 |
| | | } |
| | | //设置坐标点 |
| | | row.userId = this.userInfo.user_id; |
| | | row.landRange = usePolygons; |
| | | } |
| | | |
| | | row['tenantId'] = this.userInfo.tenant_id; |
| | | row['deptId'] = this.userInfo.dept_id; |
| | | row['url'] = this.landUrl |
| | | row['landArea'] = this.area |
| | | 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]; |
| | |
| | | top: 10px; |
| | | left: 90px; |
| | | } |
| | | .map{ |
| | | height: 450px; |
| | | .map { |
| | | height: 450px; |
| | | } |
| | | </style> |