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/realTimePolice/real.vue           |   81 ++++++++++++--------
 src/views/feedbackReport/feedbackReport.vue |  142 ++++++++++++++++++++++++++++-------
 src/components/map/main.vue                 |   10 +-
 3 files changed, 166 insertions(+), 67 deletions(-)

diff --git a/src/components/map/main.vue b/src/components/map/main.vue
index f49e9e1..21bc0b0 100644
--- a/src/components/map/main.vue
+++ b/src/components/map/main.vue
@@ -95,11 +95,11 @@
 
             // 注意地图控件的写法
             controls: defaults().extend([
-                new FullScreen(),
-                new ScaleLine(),
-                new MousePosition(),
-                new Rotate(),
-                new Attribution()
+                // new FullScreen(),
+                // new ScaleLine(),
+                // new MousePosition(),
+                // new Rotate(),
+                // new Attribution()
             ]),
             target: 'map',
             view: new OlView({
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 != "") {
diff --git a/src/views/realTimePolice/real.vue b/src/views/realTimePolice/real.vue
index cec2529..d6c012d 100644
--- a/src/views/realTimePolice/real.vue
+++ b/src/views/realTimePolice/real.vue
@@ -116,7 +116,17 @@
         >派发
         </el-button>
       </template>
+
+      <template slot-scope="{type,disabled}" slot="xllxzsForm">
+        <div style="width: 200px;height: 200px">
+          <Map ref="modalForm" />
+        </div>
+      </template>
+
+
     </avue-crud>
+
+
     <real-popup ref="realPopupView"></real-popup>
     <el-drawer title="电子地图" append-to-body="true" :visible.sync="showMap">
       <iframe
@@ -400,18 +410,26 @@
               editDisplay: true,
               viewDisplay: true,
             },
-            // {
-            //   label: "巡逻路线",
-            //   prop: "xllx",
-            //   hide: true,
-            //   display: true,
-            //   type: "tree",
-            //   filter: false,
-            //   dicUrl: "/api/routeIn/routein/tree",
-            //   props: {
-            //     label: "title",
-            //   },
-            // },
+            {
+              label: "巡逻路线",
+              prop: "xllx",
+              hide: true,
+              display: true,
+              type: "tree",
+              dicUrl: "/api/routeIn/routein/tree",
+              props: {
+                label: "title",
+              },
+            },
+            {
+              label: "路线展示",
+              labelWidth: "0",
+              prop: "xllxzs",
+              className: "cityreal3",
+              hide: true,
+              display: true,
+              formslot:true,
+            },
           ],
         },
         data: [],
@@ -475,25 +493,25 @@
         },
         immediate: true,
       },
-      // "form.alarmType": {
-      //   handler(val) {
-      //     var xllx = this.findObject(this.option.column, "xllx");
-      //     if (val === "巡逻任务") {
-      //       xllx.display = true;
-      //       xllx.rules = [
-      //         {
-      //           required: true,
-      //           message: "请选择巡逻路线",
-      //           trigger: "blur",
-      //         },
-      //       ];
-      //     } else {
-      //       xllx.display = false;
-      //       xllx.rules = [];
-      //     }
-      //   },
-      //   immediate: true,
-      // },
+      "form.alarmType": {
+        handler(val) {
+          var xllx = this.findObject(this.option.column, "xllx");
+          if (val === "巡逻任务") {
+            xllx.display = true;
+            xllx.rules = [
+              {
+                required: true,
+                message: "请选择巡逻路线",
+                trigger: "blur",
+              },
+            ];
+          } else {
+            xllx.display = false;
+            xllx.rules = [];
+          }
+        },
+        immediate: true,
+      },
     },
     computed: {
       ...mapGetters(["permission", "flowRoutes"]),
@@ -517,7 +535,6 @@
       this.dateTime = this.getDate();
     },
     mounted(){
-      debugger
       var xb = JSON.parse(window.sessionStorage.getItem('sjsb'));
       var data = this.$route.query;
       if (xb == 1){

--
Gitblit v1.9.3