Преглед на файлове

feat: searchGroup切换处理

zhangsiya преди 1 година
родител
ревизия
f5fcfaf241

+ 54 - 4
apps/bigmember_pc/src/utils/format/search-bid-filter.js

@@ -501,6 +501,8 @@ export class FilterHistoryViewModel2AjaxModel {
     const buyerClass = this.formatBuyerClass(map.buyerclass)
     // 包含关系、多个关键词
     const { additionalWords, wordsMode } = this.formatSelectMoreKey(map.selectMoreKey, map.additionalWords, map.wordsMode)
+    // tab值
+    const searchGroup = this.formatSearchGroup(map.searchGroup)
 
     const formatted = {
       searchvalue: map.input,
@@ -519,7 +521,7 @@ export class FilterHistoryViewModel2AjaxModel {
       agency: map.agency ? map.agency.join(',') : '', // 招标代理机构
       fileExists: map.fileExists, // 附件
       regionMap: map.regionMap, // 地区
-      searchGroup: map.searchGroup, // 搜索分组:默认0:全部;1:招标采购公告;2:超前项目
+      searchGroup: searchGroup, // 搜索分组:默认0:全部;1:招标采购公告;2:超前项目
       searchMode: Number(map.searchMode),  // 搜索模式:0:精准搜索;1:模糊搜索
       wordsMode: wordsMode, // 搜索关键词模式;默认0:包含所有,1:包含任意
       additionalWords: additionalWords, //关键词:附加关键词(副:五组,每组最多15个字符)
@@ -705,6 +707,34 @@ export class FilterHistoryViewModel2AjaxModel {
       wordsMode: wMode
     }
   }
+
+  /**
+   * 整理当前搜索分组tab 搜索分组:默认全部0 招标采购公告1 超前项目2
+   * @param m
+   */
+  static formatSearchGroup(val) {
+    let result = 0
+    if (val !== undefined && val !== null) {
+      const nVal = Number(val)
+      switch (nVal) {
+        case 0:
+        case 4:
+        case 5:
+          result = 0
+          break
+        case 3:
+        case 1:
+          result = 3
+          break
+        case 2:
+          result = 2
+          break
+        default:
+          result = 0
+      }
+    }
+    return result
+  }
 }
 
 
@@ -763,7 +793,7 @@ export class FilterHistoryAjaxModelRestore {
     const matchKeys = this.formatMatchKeys(map.keywords, additionalWords)
     // 精准匹配/模糊匹配
     const searchMode= this.formatSearchMode(map.searchMode)
-    //
+    // tab值
     const searchGroup = this.formatSearchGroup(map.searchGroup)
     // 采购单位
     const { buyerClass } = this.formatBuyerClass(map.buyerClass)
@@ -846,8 +876,28 @@ export class FilterHistoryAjaxModelRestore {
    * 整理当前搜索分组tab 搜索分组:默认全部0 招标采购公告1 超前项目2
    * @param m
    */
-  static formatSearchGroup(m) {
-    return m
+  static formatSearchGroup(val) {
+    let result = 0
+    if (val !== undefined && val !== null) {
+      const nVal = Number(val)
+      switch (nVal) {
+        case 0:
+        case 4:
+        case 5:
+          result = 0
+          break
+        case 3:
+        case 1:
+          result = 1
+          break
+        case 2:
+          result = 2
+          break
+        default:
+          result = 0
+      }
+    }
+    return result
   }
   /**
    * 行业整理

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

@@ -13,11 +13,12 @@ const {
   cooperateCode,
   inputKeywordsState,
   doQuery,
+  onChangeTab,
   searchModelOptions,
   SearchTabsModel
 } = SearchBidModel
 
-const { searchTabs, doChangeTab } = SearchTabsModel
+const { searchTabs } = SearchTabsModel
 
 const that = getCurrentInstance().proxy
 
@@ -50,7 +51,7 @@ function goToPublish () {
       v-model="inputKeywordsState.input"
       :tabs="searchTabs"
       placeholder="招标信息搜索"
-      @change-tab="doChangeTab"
+      @change-tab="onChangeTab"
       @search="doSearch"
       :show-wx-qr="!cooperateCode"
     >

+ 15 - 2
apps/bigmember_pc/src/views/search/bidding/model/base.js

@@ -119,7 +119,15 @@ export default function () {
     activeHeaderActions,
     disabledHeaderActions
   } = useSearchListHeaderActionsModel()
+
+  // 页面tab切换Model
   const SearchTabsModel = useSearchTabsModel()
+  const { activeTab, doChangeTab } = SearchTabsModel
+  // tab切换处理
+  function onChangeTab (item) {
+    doChangeTab(item)
+    doQuery()
+  }
 
   // 列表状态
   const listState = reactive({
@@ -359,7 +367,8 @@ export default function () {
     // 合并所有模型的搜索筛选项
     const result = Object.assign(
       {
-        reqType: 'lastNews',
+        searchGroup: activeTab.value,
+        reqType: 'lastNews', // cache:空搜索缓存数据;lastNews:最新数据
         pageNum: listState.pageNum,
         pageSize: listState.pageSize,
         // 该接口与用户身份有关
@@ -457,7 +466,9 @@ export default function () {
    */
   async function onSaveFilter() {
     const originParams = Object.assign(
-      {},
+      {
+        searchGroup: activeTab.value,
+      },
       filterState.value,
       inputKeywordsState.value
     )
@@ -525,6 +536,7 @@ export default function () {
       additionalWords: resultFilter.additionalWords,
       selectMoreKey: resultFilter.additionalWords?.length > 0
     }
+    doChangeTab({ key: resultFilter.searchGroup })
     historyFilterDialogVisible.value = false
     doQuery()
   }
@@ -803,6 +815,7 @@ export default function () {
     doChangeSelect,
     doChangePageNum,
     doChangePageSize,
+    onChangeTab,
     onSaveFilter, // 以下存筛选条件相关
     disposeFilterActionModel,
     historyFilterDialogVisible,

+ 5 - 4
apps/bigmember_pc/src/views/search/bidding/model/modules/tabs.js

@@ -1,20 +1,20 @@
 import { computed, ref } from 'vue'
 
 export function useSearchTabsModel() {
-  const activeTab = ref('all')
+  const activeTab = ref(0)
   const Tabs = [
     {
       label: '全部',
-      key: 'all'
+      key: 0
     },
     {
       label: '招标采购公告',
-      key: 'bid'
+      key: 1
     },
     {
       label: '超前项目',
       badge: '推荐',
-      key: 'project'
+      key: 2
     }
   ]
   const searchTabs = computed(() => {
@@ -28,6 +28,7 @@ export function useSearchTabsModel() {
     activeTab.value = tab.key
   }
 
+
   return {
     searchTabs,
     activeTab,