Browse Source

fix: good-list分页问题

jinx 1 year ago
parent
commit
4a15568b86

+ 19 - 9
packages/app-cdfg/src/components/Tags/goods-list.vue

@@ -150,15 +150,23 @@ const close = () => {
 const onSelect = data => {
     productSource.value = data
 }
-
+const pageNum = ref(1)
 const getData = common.debounce(
-    (reset = false) => {
-        store.dispatch('tag/getGoodsList', {
-            keyword: searchKey.value,
-            pageNum: reset ? 1 : Math.floor(list.value.length / 20) + 1,
-            reset,
-            productSourceId: productSource.value,
-        })
+    (reset = false, page) => {
+        store
+            .dispatch('tag/getGoodsList', {
+                keyword: searchKey.value,
+                // pageNum: reset ? 1 : Math.floor(list.value.length / 20) + 1,
+                pageNum: page || pageNum.value,
+                reset,
+                productSourceId: productSource.value,
+            })
+            .then(res => {
+                pageNum.value++
+            })
+            .catch(err => {
+                console.error(err)
+            })
         if (!showListPanel.value) {
             showListPanel.value = true
         }
@@ -200,7 +208,9 @@ watch(
 watch(
     () => searchKey.value,
     (newval, old) => {
-        getData(true)
+        pageNum.value = 1
+        let page = 1
+        getData(true, page)
     }
 )
 

+ 25 - 7
packages/app-cdfg/src/store/modules/tag.js

@@ -616,13 +616,31 @@ export default {
 
             let whichApi = rootGetters['scene/whichDept'] == 'HK' ? apis.get_hk_goods_list : apis.get_goods_list
 
-            let res = await whichApi(params)
-            if (res.success) {
-                if (res.data) {
-                    let list = state.goodsList.concat(res.data.list)
-                    state.goodsList = list
-                }
-            }
+            // let res = await whichApi(params)
+            // if (res.success) {
+            //     if (res.data) {
+            //         let list = state.goodsList.concat(res.data.list)
+            //         state.goodsList = list
+            //     }
+            // }
+
+            return new Promise((resolve, reject) => {
+                whichApi(params)
+                    .then(res => {
+                        if (res.success) {
+                            if (res.data) {
+                                let list = state.goodsList.concat(res.data.list)
+                                state.goodsList = list
+                            }
+                            resolve(res)
+                        } else {
+                            reject(res)
+                        }
+                    })
+                    .catch(err => {
+                        reject(err)
+                    })
+            })
         },
         async getBrandsList({ commit, state, rootGetters }, payload) {
             let params = {