From e3ba92f7ec0b5a5b245968310bd48f0e34a78c37 Mon Sep 17 00:00:00 2001
From: guoshilong <123456>
Date: Tue, 07 Mar 2023 17:24:58 +0800
Subject: [PATCH] 火灾补录,修复当选择对应火灾编号时,再次输入不存在的火灾编号时产生的问题

---
 src/views/fire/fireSupplement.vue |   38 +++++++++++++++++++++++++++++---------
 1 files changed, 29 insertions(+), 9 deletions(-)

diff --git a/src/views/fire/fireSupplement.vue b/src/views/fire/fireSupplement.vue
index da4b8dd..5d71423 100644
--- a/src/views/fire/fireSupplement.vue
+++ b/src/views/fire/fireSupplement.vue
@@ -16,6 +16,7 @@
                   placeholder="请输入火灾编号"
                   :trigger-on-focus="false"
                   @select="handleSelect"
+                  @blur="inputBlur"
                 ></el-autocomplete>
               </template>
             </avue-form>
@@ -601,6 +602,7 @@
       mapLocation:{
         isDetail:true
       },
+      fireList:[],
     }
   },
   created() {
@@ -760,8 +762,17 @@
           isDetail: true,
           location:[this.form.lon,this.form.lat]
         }
+      }else {
+        getAll().then(res=>{
+          if (res.data.code == 200){
+            let data = res.data.data
+            data.forEach(e=>{
+              e.value = e.no
+            })
+            this.fireList = data
+          }
+        })
       }
-
     },
     //返回列表页
     goToList() {
@@ -770,14 +781,11 @@
     },
     //自动补全
     querySearch(queryString, cb){
-      getAll({no:queryString}).then(res=>{
-        if (res.data.code == 200){
-          let data = res.data.data
-          data.forEach(e=>{
-            e.value = e.no
-          })
-          cb(data)
-        }
+      this.$nextTick(()=>{
+        let filterArray = this.fireList.filter(e => {
+          return e.no.indexOf(queryString) != -1
+        })
+        cb(filterArray)
       })
     },
     //选择事件
@@ -788,6 +796,18 @@
         location:[this.form.lon,this.form.lat]
       }
       this.$refs.olMap.addPoint(this.mapLocation.location)
+    },
+    inputBlur(e){
+      let value = e.target.value
+      let filterArray = this.fireList.filter(e => {
+        return e.no.indexOf(value) != -1
+      })
+      if (filterArray.length>0){
+        this.handleSelect(filterArray[0])
+      }else {
+        this.$refs.form.resetForm()
+        this.$refs.olMap.clearDraw()
+      }
     }
   },
   destroyed() {

--
Gitblit v1.9.3