Selaa lähdekoodia

feat: 动态 ref 调整传递

zhangyuhan 1 vuosi sitten
vanhempi
commit
3b521c6015

+ 7 - 2
apps/bigmember_pc/src/components/selector/InfoTypeSelector.vue

@@ -18,6 +18,7 @@
       :initInfoType="initInfoType"
       :beforeChange="beforeChange"
       :oneLevelSelected="oneLevelSelected"
+      :showDataType="showDataType"
       @onChange="onChange"
     />
   </selector-card>
@@ -56,6 +57,10 @@ export default {
     value: {
       type: Array,
       default: () => []
+    },
+    showDataType: {
+      type: String,
+      default: 'card'
     }
   },
   model: {
@@ -63,8 +68,8 @@ export default {
     event: 'change'
   },
   watch: {
-    value (val) {
-      if(!val || val?.length === 0) {
+    value(val) {
+      if (!val || val?.length === 0) {
         this.initList()
       } else {
         this.setInfoTypeState(val)

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

@@ -24,11 +24,12 @@ const  {
   SearchBidBaseSchema,
   SearchBidMoreSchema,
   searchBidMoreFreeSchema,
-  searchBidMoreVipSchema
+  searchBidMoreVipSchema,
+  doUpdateData
 } = disposeFilterSchema()
 
 watch(activeTab, (newVal) => {
-  disposeFilterSchema()
+  doUpdateData()
 })
 
 const customMoreSchema = computed(() => {

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

@@ -148,12 +148,14 @@ export default function () {
   }
 
   // 筛选条件动态配置处理
-  function disposeFilterSchema () {
-    const conf = ref({
-      vipUser: isVip.value && isInApp.value,
-      oldUser: isOld.value && isInApp.value,
-      showVip: isLogin.value && isInApp.value,
-      infoType: activeTab.value
+  function disposeFilterSchema() {
+    const conf = computed(() => {
+      return {
+        vipUser: isVip.value && isInApp.value,
+        oldUser: isOld.value && isInApp.value,
+        showVip: isLogin.value && isInApp.value,
+        infoType: activeTab.value
+      }
     })
 
     // 标准筛选
@@ -166,14 +168,23 @@ export default function () {
     SearchBidBaseSchema.value =  createSearchBidBaseSchema(conf.value)
     SearchBidMoreSchema.value =  createSearchBidMoreSchema()
 
-    searchBidMoreFreeSchema.value = SearchBidMoreSchema.value?.filter((s) => !s.vipMark)
-    searchBidMoreVipSchema.value = SearchBidMoreSchema.value?.filter((s) => s.vipMark)
+    searchBidMoreFreeSchema.value = SearchBidMoreSchema.value?.filter(
+      (s) => !s.vipMark
+    )
+    searchBidMoreVipSchema.value = SearchBidMoreSchema.value?.filter(
+      (s) => s.vipMark
+    )
+
+    function doUpdateData() {
+      SearchBidBaseSchema.value = createSearchBidBaseSchema(conf.value)
+    }
 
     return {
       SearchBidBaseSchema,
       SearchBidMoreSchema,
       searchBidMoreFreeSchema,
-      searchBidMoreVipSchema
+      searchBidMoreVipSchema,
+      doUpdateData
     }
   }