From 7e32d3d7ab3b116ceef1dfaa4a6216ed1d0fbf7b Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Tue, 20 Jul 2021 18:51:33 +0800
Subject: [PATCH] 位置选择

---
 src/views/feedbackReport/feedbackReport.vue |  142 +++++++++++++++++++++++++++++++++++++----------
 1 files changed, 112 insertions(+), 30 deletions(-)

diff --git a/src/views/feedbackReport/feedbackReport.vue b/src/views/feedbackReport/feedbackReport.vue
index 8e6b65a..de8449b 100644
--- a/src/views/feedbackReport/feedbackReport.vue
+++ b/src/views/feedbackReport/feedbackReport.vue
@@ -50,6 +50,7 @@
   } from "@/api/feedback/feedback";
   import {getBaTree} from "@/api/client/client";
   import {mapGetters} from "vuex";
+  import AvueMap from "avue-plugin-map";
 
   export default {
     data() {
@@ -112,36 +113,6 @@
               ],
             },
             {
-              label: "上报地址",
-              prop: "place",
-              rules: [
-                {
-                  required: true,
-                  message: "请输入事发地址",
-                  trigger: "blur",
-                },
-              ],
-            },
-            {
-              label: "经度",
-              prop: "jd",
-            },
-            {
-              label: "纬度",
-              prop: "wd",
-            },
-            {
-              label: "备注",
-              prop: "result",
-              rules: [
-                {
-                  required: true,
-                  message: "请输入处理结果",
-                  trigger: "blur",
-                },
-              ],
-            },
-            {
               label: "上报时间",
               prop: "stime",
               type: "datetime",
@@ -166,6 +137,62 @@
                 {
                   required: true,
                   message: "请选择上报时间",
+                  trigger: "blur",
+                },
+              ],
+            },
+            {
+              label: "地址",
+              prop: "place",
+              span: 10,
+              rules: [
+                {
+                  required: true,
+                  message: "请选择地址",
+                  trigger: "blur",
+                },
+              ],
+            },
+            {
+              label: null,
+              prop: "map",
+              labelWidth: "0",
+              searchSpan: 0,
+              maxlength: 0,
+              hide: true,
+              span: 2,
+              // display:false,
+              component: "AvueMap",
+            },
+            {
+              label: "经度",
+              hide: true,
+              prop: "jd",
+              searchSpan: 2,
+              width: "100",
+              labelWidth: "120",
+              formatter: (row, value, label, column) => {
+                return (value = value.substring(0, 11));
+              },
+              span: 7,
+            },
+            {
+              label: "纬度",
+              labelWidth: "45",
+              hide: true,
+              prop: "wd",
+              formatter: (row, value, label, column) => {
+                return (value = value.substring(0, 10));
+              },
+              span: 5,
+            },
+            {
+              label: "备注",
+              prop: "result",
+              rules: [
+                {
+                  required: true,
+                  message: "请输入处理结果",
                   trigger: "blur",
                 },
               ],
@@ -208,6 +235,61 @@
       };
     },
     watch: {
+      "form.map": {
+        // form是表单或者表格绑定的数据集,v-model='form'
+        handler(val) {
+          var that = this;
+          if (val) {
+            //重新加载一次页面详情数据,解决新的省市区无法写入问题
+            //判断是新增还是修改
+            if (that.isEdit) {
+              getclient(this.form.id).then((res) => {
+                // that.province = res.data.data.province;
+                // that.city = res.data.data.city;
+                // that.district = res.data.data.district;
+              });
+            }
+
+            //地址截取,从县/区开始截取,并且取从县区第一个出现的位置开始
+            if (val.formattedAddress == "") {
+              return;
+            }
+
+            //经纬度替换
+            this.form.wd = val.latitude;
+            this.form.jd = val.longitude;
+
+            var address = val.formattedAddress.toString();
+            if (address.search("县") != -1) {
+              this.form.place = address.substring(
+                address.indexOf("县") + 1,
+                address.length
+              );
+            }
+            if (address.search("区") != -1) {
+              this.form.place = address.substring(
+                address.indexOf("区") + 1,
+                address.length
+              );
+            }
+            //写入新的省市区
+            that.form.province = val.addressComponent.province;
+            if (val.addressComponent.city == "") {
+              that.form.city = val.addressComponent.province;
+            } else {
+              that.form.city = val.addressComponent.city;
+            }
+            that.form.district = val.addressComponent.district;
+          } else {
+            that.form.map = {
+              formattedAddress: "",
+              latitude: 28.699957,
+              longitude: 115.862118,
+            };
+          }
+        },
+        immediate: true,
+      },
       handler(val) {
         var that = this;
         if (val != null && val != "") {

--
Gitblit v1.9.3