Ver Fonte

Merge branch 'main' into hotfix/v1.0.29.2

lianbingjie há 1 ano atrás
pai
commit
6dbc346062
1 ficheiros alterados com 29 adições e 8 exclusões
  1. 29 8
      apps/bigmember_pc/src/views/search/bidding/model/base.js

+ 29 - 8
apps/bigmember_pc/src/views/search/bidding/model/base.js

@@ -105,6 +105,8 @@ export default function () {
    // 是否是领域化页面(医械通)
   const isBidField =  location.href.includes('/jylab/medical/index')
 
+  const  { goback, keywords: urlKeywords,  selectType: urlSelectType } = useRoute().query
+
   // 缓存存储配置
   const storageConfig = {
     listTab: {
@@ -182,7 +184,6 @@ export default function () {
   /**
    * 搜索前校验
    */
-  const { keywords: urlKeywords } = useRoute().query
   const {
     getWhiteList,
     onTheWhiteList,
@@ -471,7 +472,6 @@ export default function () {
     listState.pageNum = page
     doQuery({}, 'pageNumChange', page)
   }
-
   // 分页大小事件
   function doChangePageSize(size) {
     listState.pageSize = size
@@ -557,7 +557,6 @@ export default function () {
   // P260需求精准搜索无结果时 自动切换到模糊搜索(查询) 模糊搜索也无结果时再切回精准(不查询)
   // 条件:1.精准搜索模式 2.返回无数据 3.有主关键词或附加词
   let autoSwitchModel = false
-  const { goback } = useRoute().query
   function changeSearchMode (searchType) {
     const total = listState.total
     const { searchMode, additionalWords,  input } = inputKeywordsState.value
@@ -888,13 +887,17 @@ export default function () {
       restoreFilter(item, 'saveBack')
     }
   }
-  function restoreFilter (viewFilter, type) {
+  function restoreFilter (viewFilter, type, expandFilter) {
     let resultFilter = {}
     if(type === 'saveBack') {
       resultFilter = FilterHistoryAjaxModelRestore.formatAll(viewFilter)
     } else {
       resultFilter = viewFilter
     }
+    // 额外需要回显的拓展数据
+    if(expandFilter && typeof expandFilter === 'object') {
+      Object.assign(resultFilter, expandFilter)
+    }
     doChangeTab({ key: resultFilter.searchGroup })
     filterState.value = {
       bidField: isBidField ? 'medical' : '',
@@ -1295,14 +1298,20 @@ export default function () {
     const { key, _storage } = storageConfig.filter
     const params =_storage.getItem(key)
     if (params) {
-      restoreFilter(JSON.parse(params), 'localBack')
+      const expandFilter = {}
+      if(urlSelectType) {
+        expandFilter.selectType = urlSelectType.split(',')
+      }
+      if(urlKeywords) {
+        expandFilter.input = urlKeywords
+      }
+      restoreFilter(JSON.parse(params), 'localBack', expandFilter)
     }
   }
 
   // 恢复筛选条件
   // 恢复优先级、外边跳转进工作台的最高、其次是本地缓存、最后是已存筛选条件第一条
   function getLastFilter () {
-    const { goback, searchGroup, subtype } = useRoute().query
     if(isLogin.value) {
       const { key, _storage } = storageConfig.filter
       const params =_storage.getItem(key)
@@ -1312,7 +1321,12 @@ export default function () {
         // 免费用户恢复tab,搜索范围默认标题和正文
         if(isFree.value) {
           restoreSearchGroupFromLocal()
-          const defaultSelectType = ['title', 'content']
+          let defaultSelectType = ['title', 'content']
+          // 如果路由传参带入搜索范围参数
+          if(urlSelectType) {
+            const arr = urlSelectType.split(',')
+            defaultSelectType = arr
+          }
           filterState.value.selectType = defaultSelectType
           if(!goback) {
             // 非工作台外跳转进入则默认搜索
@@ -1330,7 +1344,14 @@ export default function () {
           if(isVip.value) {
             // 付费用户,优先恢复本地缓存,本地无缓存,则恢复已存筛选第一条数据
             if(!jParams && Array.isArray(arr) && arr.length > 0){
-              restoreFilter(arr[0], 'saveBack')
+              const expandFilter = {}
+              if(urlSelectType) {
+                expandFilter.selectType = urlSelectType.split(',')
+              }
+              if(urlKeywords) {
+                expandFilter.input = urlKeywords
+              }
+              restoreFilter(arr[0], 'saveBack', expandFilter)
             }
           }
         })