Browse Source

feat: 物业专版筛选条件添加完成

zhangsiya 1 year ago
parent
commit
97dbb75875

+ 1 - 1
apps/bigmember_pc/src/components/filter-items/SearchRangeDropdown.vue

@@ -86,7 +86,7 @@ export default {
   watch: {
     value: {
       handler(val) {
-        this.selectedVal = val
+        this.selectVal = val
       },
       deep: true
     }

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

@@ -1,6 +1,7 @@
 <script setup>
-import { ref, computed, watch } from 'vue'
+import { computed, watch } from 'vue'
 import { SearchBidModel } from '../model/index'
+import { getPropertyFilters } from '@/api/modules/bi'
 import SearchSchemaFilter from '@/views/search/components/search-schema-filter.vue'
 import SelectorWithBasePower from '@/components/filter-items/SelectorWithBasePower.vue'
 import $bus from '@/utils/bus'
@@ -27,12 +28,35 @@ const  {
   searchBidMoreFreeSchema,
   searchBidMoreVipSchema,
   doUpdateData
-} = disposeFilterSchema()
+} =  disposeFilterSchema()
 
 watch(activeTab, (newVal) => {
   doUpdateData()
 })
 
+// 物业专版获取筛选条件,更新视图
+async function getBiPropertyFilters () {
+  const { error_code: code, data} = await getPropertyFilters()
+  if(code === 0) {
+    let newData = {}
+    Object.keys(data).forEach(v => {
+      newData[v] = []
+      data[v].forEach(s => {
+        let sArr = s.split('#')
+        s = {
+          label: sArr[0],
+          value: sArr[1]
+        }
+        newData[v].push(s)
+      })
+    })
+    doUpdateData(newData)
+  }
+}
+if(inBIPropertyIframe) {
+  getBiPropertyFilters()
+}
+
 const customMoreSchema = computed(() => {
   return {
     vipShow: true,
@@ -59,7 +83,6 @@ function doChangeFilter() {
   doQuery()
 }
 
-
 </script>
 
 <template>

+ 0 - 1
apps/bigmember_pc/src/views/search/bidding/constant/index.js

@@ -3,7 +3,6 @@ import { createSearchBidBaseSchema, createSearchBidMoreSchema  } from '@/views/s
 
 export function getCreateSearchSchema(conf) {
   const { bi } = conf
-  console.log(bi)
   if(bi) {
     return {
       createSearchBidBaseSchema: createBiSearchBidBaseSchema,

+ 25 - 30
apps/bigmember_pc/src/views/search/bidding/constant/search-filters-bi.js

@@ -1,5 +1,3 @@
-import { getPropertyFilters } from '@/api/modules/bi'
-
 import RegionCollapseSelector from '@/components/filter-items/RegionCollapseSelector'
 import CommonCheckboxSelector from '@/components/filter-items/CommonCheckboxSelector'
 import PriceSelector from '@/components/selector/PriceSelector'
@@ -16,33 +14,13 @@ import ChangeHandsDropdown from '@/components/filter-items/ChangeHandsDropdown.v
 import SearchTimeScopeSelector from '@/components/selector/SearchTimeScopeSelector.vue'
 import ContactSelector from '@/components/filter-items/ContactSelector.vue'
 import KeywordTagsSelector from '@/components/filter-items/KeywordTagsSelector'
-import basicDropdown from '@/components/selector/basicDropdown'
 
-// 获取物业专版筛选条件
-let propertyListData = {}
-async function getFilters () {
-  const { error_code: code, data} = await getPropertyFilters()
-  if(code === 0) {
-    let newData = {}
-    Object.keys(data).forEach(v => {
-      newData[v] = []
-      data[v].forEach(s => {
-        let sArr = s.split('#')
-        s = {
-          label: sArr[0],
-          value: sArr[1]
-        }
-        newData[v].push(s)
-      })
-    })
-    propertyListData = newData
-    createBiSearchBidBaseSchema()
-  }
-}
-getFilters()
 
-function createBiSearchBidBaseSchema() {
+function createBiSearchBidBaseSchema(propertyListData = {}) {
   const businessList = propertyListData['业务类型'] || []
+  const priceList =  propertyListData['价格区间'] || []
+  const periodList =  propertyListData['合同周期'] || []
+  const propertyList =  propertyListData['物业业态'] || []
   const SearchBidBaseSchema = [
     {
       key: 'regionMap',
@@ -81,6 +59,7 @@ function createBiSearchBidBaseSchema() {
       expand: {
         component: CommonCheckboxSelector,
         props: {
+          field: 'value',
           options: {
             value: businessList
           }
@@ -95,8 +74,13 @@ function createBiSearchBidBaseSchema() {
       _name: 'scale',
       _type: 'component',
       expand: {
-        component: PriceSelector,
-        props: {},
+        component: CommonCheckboxSelector,
+        props: {
+          field: 'value',
+          options: {
+            value: priceList
+          }
+        },
         hooks: {}
       }
     },
@@ -108,7 +92,13 @@ function createBiSearchBidBaseSchema() {
       _type: 'component',
       expand: {
         component: CommonCheckboxSelector,
-        props: {},
+        props: {
+          single: true,
+          field: 'value',
+          options: {
+            value: periodList
+          }
+        },
         hooks: {}
       }
     },
@@ -120,7 +110,12 @@ function createBiSearchBidBaseSchema() {
       _type: 'component',
       expand: {
         component: CommonCheckboxSelector,
-        props: {},
+        props: {
+          field: 'value',
+          options: {
+            value: propertyList
+          }
+        },
         hooks: {}
       }
     }

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

@@ -199,7 +199,7 @@ export default function () {
     const searchBidMoreFreeSchema = ref([])
     const searchBidMoreVipSchema = ref([])
 
-    SearchBidBaseSchema.value =  createSearchBidBaseSchema(conf.value)
+    SearchBidBaseSchema.value = createSearchBidBaseSchema(conf.value)
     SearchBidMoreSchema.value =  createSearchBidMoreSchema()
 
     searchBidMoreFreeSchema.value = SearchBidMoreSchema.value?.filter(
@@ -209,8 +209,10 @@ export default function () {
       (s) => s.vipMark
     )
 
-    function doUpdateData() {
-      SearchBidBaseSchema.value = createSearchBidBaseSchema(conf.value)
+
+    function doUpdateData(schema) {
+      const payload = schema || conf.value
+      SearchBidBaseSchema.value = createSearchBidBaseSchema(payload)
     }
 
     return {
@@ -613,11 +615,18 @@ export default function () {
   }
   // 监听路由事件
   onMounted(() => {
-    if(useRoute().query.goback) {
+    const { goback, searchGroup, subtype } = useRoute().query
+    if(goback) {
       goBackFilter()
-    } else if(useRoute().query.searchGroup) {
-      const key = Number(useRoute().query.searchGroup)
+    } else if(searchGroup) {
+      // 进入页面,默认回显tab
+      const key = Number(searchGroup)
       doChangeTab({ key})
+    } else if(subtype && subtype ==='采购意向' && inBIPropertyIframe) {
+      // 物业专版,采购意向回显
+      filterState.value = Object.assign(filterState.value, {
+        subtype: {采购意向: ['采购意向']}
+      })
     }
   })
   // 回显筛选条件

+ 0 - 1
apps/bigmember_pc/src/views/search/bidding/model/modules/filter.js

@@ -72,7 +72,6 @@ export function useSearchFilterModel(conf) {
     filterState.value = filterBase.value
   }
 
-
   function getFormatAPIParams() {
     const { publishTime, regionMap, industry, notkey, buyerclass, subtype } = filterBase.value
     const { area, city, district } = FilterHistoryViewModel2AjaxModel.formatAreaCity(regionMap)

+ 1 - 0
apps/bigmember_pc/src/views/search/components/search-schema-filter.vue

@@ -122,6 +122,7 @@ const getPrefix = {
     font-size: 14px;
     line-height: 22px;
     margin-right: 12px;
+    text-align: right;
   }
 }
 </style>