From 63ad2c3598400370dd7da5534659fd7e768a0a4a Mon Sep 17 00:00:00 2001
From: zengh <123456>
Date: Mon, 16 May 2022 17:29:46 +0800
Subject: [PATCH] 地址替换

---
 src/views/feedbackReport/feedbackReport.vue |  205 +++++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 167 insertions(+), 38 deletions(-)

diff --git a/src/views/feedbackReport/feedbackReport.vue b/src/views/feedbackReport/feedbackReport.vue
index 7aeadaa..e292e21 100644
--- a/src/views/feedbackReport/feedbackReport.vue
+++ b/src/views/feedbackReport/feedbackReport.vue
@@ -22,7 +22,7 @@
     >
       <template slot="menuLeft">
         <el-button
-          type="danger"
+
           size="small"
           icon="el-icon-delete"
           plain
@@ -32,12 +32,18 @@
         </el-button>
       </template>
 
-      <template slot-scope="scope" slot="menuLeft">
-        <el-button type="danger" icon="el-icon-plus" size="small" plain @click.stop="$refs.crud.rowAdd()">新增</el-button>
+      <template slot-scope="{type,size, row}" slot="menu">
+        <el-button
+          v-if="row.type != 1"
+          icon="el-icon-check" :size="size" :type="type" @click="setReal(row)">接收</el-button>
       </template>
 
-      <template slot-scope="{type,size, row}" slot="menu">
-        <el-button icon="el-icon-check" :size="size" :type="type" @click="setReal(row)">接收</el-button>
+      <template slot-scope="{ row }" slot="type">
+        <el-tag
+        >{{
+          row.type == 1 ?"已接受":"未接受"
+          }}
+        </el-tag>
       </template>
 
     </avue-crud>
@@ -54,6 +60,7 @@
   } from "@/api/feedback/feedback";
   import {getBaTree} from "@/api/client/client";
   import {mapGetters} from "vuex";
+  import AvueMap from "avue-plugin-map";
 
   export default {
     data() {
@@ -91,6 +98,7 @@
               search: true,
               searchLabelWidth: 100,
               searchSpan: 5,
+              width: 100,
               addDisplay: false,
               editDisplay: false,
             },
@@ -102,7 +110,6 @@
               props: {
                 label: "title",
               },
-              width: 72,
               hide: true,
               addDisplay: true,
               editDisplay: true,
@@ -116,38 +123,9 @@
               ],
             },
             {
-              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",
+              width: 150,
               type: "datetime",
               format: "yyyy-MM-dd HH:mm:ss",
               valueFormat: "yyyy-MM-dd HH:mm:ss",
@@ -173,6 +151,72 @@
                   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",
+              span: 24,
+              rules: [
+                {
+                  required: true,
+                  message: "请输入处理结果",
+                  trigger: "blur",
+                },
+              ],
+            },
+            {
+              label: "接收状态",
+              prop: "type",
+              width: 80,
+              slot: true,
+              addDisplay: false,
+              viewDisplay: false,
+              editDisplay: false,
             },
             {
               label: "图片",
@@ -212,6 +256,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 != "") {
@@ -252,6 +351,8 @@
           stime: row.stime,
           result: row.result,
           place: row.place,
+          jd: row.jd,
+          wd: row.wd,
         };
         if (row.images.length > 0) {
           var imageArr = row.images;
@@ -294,6 +395,8 @@
           stime: row.stime,
           result: row.result,
           place: row.place,
+          jd: row.jd,
+          wd: row.wd,
         };
         if (row.images.length > 0) {
           var imageArr = row.images;
@@ -328,8 +431,7 @@
       rowDel(row) {
         this.$confirm("确定将选择数据删除?", {
           confirmButtonText: "确定",
-          cancelButtonText: "取消",
-          type: "warning",
+          cancelButtonText: "取消",           type: "warning",
         })
           .then(() => {
             return remove(row.id);
@@ -381,6 +483,33 @@
       //派遣任务
       setReal(row) {
         var arr = [];
+        var data = {
+          id: row.id,
+          status: 1,
+          tpaddress: "",
+          spaddress: "",
+          sname: row.$snumber,
+          snumber: row.snumber,
+          stime: row.stime,
+          result: row.result,
+          place: row.place,
+          jd: row.jd,
+          wd: row.wd,
+          type: 1,
+        };
+        updates(data).then(
+          () => {
+            this.onLoad(this.page);
+            // this.$message({
+            //   type: "success",
+            //   message: "操作成功!",
+            // });
+            done();
+          },
+          (error) => {
+          }
+        );
+
         this.$store.state.tags.tagList.forEach((item) => {
           if (item.label != "任务下发") {
             arr.push(item);

--
Gitblit v1.9.3