Kaynağa Gözat

fix:招标采购搜索--融创存储筛选存储本地缓存优化,回显处理

zhangsiya 1 yıl önce
ebeveyn
işleme
298896703b

+ 3 - 3
apps/bigmember_pc/src/views/search/bidding/components/search-bid-filter.vue

@@ -65,19 +65,19 @@ async function getCustomInfo () {
   const { error_code:code, data = [] } = await getCMCustomInfo()
   if(code === 0) {
     if (data) {
-      const expandSearchParams = {}
+      // const expandSearchParams = {}
       data.forEach(item => {
         if(item.key && item.defaultVal) {
           const par = {
             key: item.key,
             value: item.defaultVal
           }
-          expandSearchParams[item.key] = item.defaultVal
+          // expandSearchParams[item.key] = item.defaultVal
           updateFilterBase(par)
         }
       })
       doUpdateData(data, 'more')
-      doQuery(expandSearchParams, 'firstPage')
+      doQuery({}, 'firstPage')
     }
   }
 }

+ 13 - 9
apps/bigmember_pc/src/views/search/bidding/model/base.js

@@ -663,14 +663,6 @@ export default function () {
     if(activeItemStyleType.value === 'T') {
       restoreListTabActive()
     }
-    // 存储筛选条件
-    if(isInApp.value && isLogin.value && listState.pageNum === 1 && !inBIPropertyIframe) {
-      saveSearchGroupToLocal()
-
-      if(inputKeywordsState.value.input) {
-        saveFilterToLocal()
-      }
-    }
 
     //P271需求--潜客圈进引流需求
     if(!advancedInfo.show && !getShowChart.value && inputKeywordsState.value.input) {
@@ -696,6 +688,14 @@ export default function () {
   }
   // 处理查询请求后的数据以及其他业务
   function afterQueryAjax (res, searchType) {
+    // 存储筛选条件
+    if(isInApp.value && isLogin.value && listState.pageNum === 1 && !inBIPropertyIframe) {
+      saveSearchGroupToLocal()
+
+      if(inputKeywordsState.value.input) {
+        saveFilterToLocal()
+      }
+    }
     // 变更搜索模式
     changeSearchMode(searchType)
 
@@ -912,6 +912,8 @@ export default function () {
       Object.assign(resultFilter, expandFilter)
     }
     doChangeTab({ key: resultFilter.searchGroup })
+
+    const _expand = resultFilter._expand || {}
     filterState.value = {
       bidField: isBidField ? 'medical' : '',
       publishTime: resultFilter.publishTime,
@@ -927,7 +929,9 @@ export default function () {
       notkey: resultFilter.notkey,
       buyer: resultFilter.buyer,
       winner: resultFilter.winner,
-      agency: resultFilter.agency
+      agency: resultFilter.agency,
+      ..._expand,
+      _expand: _expand
     }
     inputKeywordsState.value = {
       input: resultFilter.input,

+ 12 - 6
apps/bigmember_pc/src/views/search/bidding/model/modules/filter.js

@@ -100,6 +100,7 @@ export function useSearchFilterModel(conf) {
     if(typeof (_expand) === 'object' && Object.keys(_expand).length > 0) {
       for(let key in _expand) {
         expandTag[key] = filterState.value[key]
+        _expand[key] = filterState.value[key]
       }
     }
 
@@ -181,12 +182,17 @@ export function useSearchFilterModel(conf) {
     const {key, value } = keyObj
 
     if(keyObj && Object.keys(keyObj).length > 0) {
-      filterBase.value = Object.assign(filterBase.value, {
-        [key]: value
-      })
-      filterBase.value._expand = Object.assign({}, {
-        [key]: value
-      })
+      const _expand = filterBase.value._expand || {}
+      if(!filterBase.value[key]) {
+        filterBase.value = Object.assign(filterBase.value, {
+          [key]: value
+        })
+      }
+      if(Object.keys(_expand).length === 0 || !_expand[key]) {
+        filterBase.value._expand = Object.assign(_expand, {
+          [key]: value
+        })
+      }
       if(!inBIPropertyIframe) {
         filterState.value = Object.assign(filterBase.value, filterState.value)
       }