Forráskód Böngészése

bug fix: 39953 (上海工业博物馆-PC端)概述总览-搜索输入框输入内容没有返回结果

任一存 1 éve
szülő
commit
6222b91910
1 módosított fájl, 40 hozzáadás és 16 törlés
  1. 40 16
      src/views/General.vue

+ 40 - 16
src/views/General.vue

@@ -173,10 +173,30 @@ export default {
     })
 
     // 搜索框功能
-    // watch(filterKeyword, utils.debounce(async (vNew) => {
-    // }, 500, false), {
-    //   immediate: true,
-    // })
+    watch(filterKeyword, utils.debounce(async (vNew) => {
+      corpListRaw.value = await api.getGeneralList({
+        searchKey: vNew,
+      })
+      corpListMap.clear()
+      corpListRaw.value.forEach(element => {
+        let decade = ''
+        if (element.createDay.substring(0, 2) === '18') {
+          decade = `十九世纪`
+        } else if (element.createDay.substring(0, 2) === '19') {
+          const decadeValue = element.createDay[2]
+          decade = `上世纪${decadeValue}0年代`
+        } else {
+          const decadeValue = element.createDay[2]
+          decade = `本世纪${decadeValue}0年代`
+        }
+        if (!corpListMap.get(decade)) {
+          corpListMap.set(decade, [])
+        }
+        corpListMap.get(decade).push(element)
+      })
+    }, 500, false), {
+      immediate: true,
+    })
 
     /**
      * swiper 相关
@@ -220,18 +240,6 @@ export default {
       }
     })
     const bannerImgList = reactive({ value: [] })
-    watch(activeCorpId, async (vNew) => {
-      if (vNew) {
-        const res = await api.getGeneralDetail(vNew)
-        bannerImgList.value = res.file
-        swiper && swiper.destroy()
-        nextTick(() => {
-          bannerImgList.value.length && initSwiper()
-        })
-      } else {
-        bannerImgList.value = []
-      }
-    })
 
     // 无论是网页里还是unity内部点击了企业,都调用这个
     function onClickCorpItem(id) {
@@ -258,6 +266,22 @@ export default {
         clickedElement.scrollIntoView()
       }
 
+      if (activeCorpId.value) {
+        api.getGeneralDetail(activeCorpId.value).then((res) => {
+          bannerImgList.value = res.file
+          if (swiper) {
+            swiper.destroy()
+          }
+          if (bannerImgList.value.length) {
+            nextTick(() => {
+              initSwiper()
+            })
+          }
+        })
+      } else {
+        bannerImgList.value = []
+      }
+
       // // 只显示选中的
       // if (activeCorpId.value === id) {
       //   activeCorpId.value = ''