Ver código fonte

fix: 修复商品分页再筛选时数据未更新问题

liangan 1 mês atrás
pai
commit
98861e5be8
2 arquivos alterados com 14 adições e 5 exclusões
  1. 5 1
      src/pages/index/index.vue
  2. 9 4
      src/pages/search/search.vue

+ 5 - 1
src/pages/index/index.vue

@@ -126,6 +126,10 @@ const priceTabList = ref([
 const dataList = ref<any>([])
 const isProductListLoading = ref(false) // 商品列表加载状态
 
+function handlePriceTabChange() {
+  paging.value?.reload()
+}
+
 async function queryList(pageNo: number, pageSize: number) {
   // 如果是第一页,显示骨架屏
   if (pageNo === 1) {
@@ -374,7 +378,7 @@ onShow(() => {
           </scroll-view>
         </view>
         <view class="productList">
-          <wd-tabs v-model="priceTab" slidable="always" :line-width="0" :line-height="0" @click="() => queryList(1, 20)">
+          <wd-tabs v-model="priceTab" slidable="always" :line-width="0" :line-height="0" @click="handlePriceTabChange">
             <template v-for="item in priceTabList" :key="item">
               <wd-tab :title="$t(item.title)" :name="item.value" />
             </template>

+ 9 - 4
src/pages/search/search.vue

@@ -103,6 +103,11 @@ async function getCategoryList() {
 
 // 搜索结果
 const dataList = ref([])
+
+function reloadList() {
+  paging.value?.reload()
+}
+
 async function queryList(pageNo: number, pageSize: number) {
   try {
     // const currentTab = option1.value.find((i: any) => i.value === formData.value.price) || option1.value[0]
@@ -143,16 +148,16 @@ onLoad(() => {
               <view class="back">
                 <wd-icon name="thin-arrow-left" size="32rpx" @click="() => goBack()" />
               </view>
-              <input v-model.trim="formData.storeName" class="search-input" type="text" :placeholder="$t('search.placeholder')" @confirm="queryList(1, 20)">
+              <input v-model.trim="formData.storeName" class="search-input" type="text" :placeholder="$t('search.placeholder')" @confirm="reloadList">
               <wd-icon name="search" custom-class="search-icon" color="#999" size="32rpx" />
             </view>
           </template>
         </wd-navbar>
         <view class="bg-white text-center">
           <wd-drop-menu>
-            <wd-drop-menu-item v-model="formData.price" :options="option1" @change="queryList(1, 20)" />
-            <wd-drop-menu-item v-model="formData.cateId" :options="option2" @change="queryList(1, 20)" />
-            <wd-drop-menu-item v-model="formData.sort" :options="option3" @change="queryList(1, 20)" />
+            <wd-drop-menu-item v-model="formData.price" :options="option1" @change="reloadList" />
+            <wd-drop-menu-item v-model="formData.cateId" :options="option2" @change="reloadList" />
+            <wd-drop-menu-item v-model="formData.sort" :options="option3" @change="reloadList" />
           </wd-drop-menu>
         </view>
       </view>