Browse Source

商品列表

skyblued 3 years ago
parent
commit
883da486d1
1 changed files with 22 additions and 30 deletions
  1. 22 30
      src/views/shop-mall/components/tab-list/index.tsx

+ 22 - 30
src/views/shop-mall/components/tab-list/index.tsx

@@ -44,7 +44,6 @@ export default defineComponent({
   data() {
     return {
       list: [],
-      dataShow: true, // 判断是否有数据
       loading: false,
       finished: false,
       params: {
@@ -65,16 +64,13 @@ export default defineComponent({
   },
   methods: {
     onSearch() {
-      this.loading = false
       this.finished = false
       this.list = []
       this.params.pageNum = 1
-      if (!this.dataShow) this.getList() // list组件没有触发, 手动触发获取数据
-      this.dataShow = true
-
-      // this.getList()
+      this.getList() // list组件没有触发, 手动触发获取数据
     },
     async getList() {
+      this.loading = true
       try {
         let params = this.params
         params.productCategoryId = this.typeId ? this.typeId : undefined // 商品分类
@@ -89,7 +85,7 @@ export default defineComponent({
             ...params
           }
         })
-        this.loading = false
+        
         const result = res.data || {}
         // 处理重复请求数据
         if (this.list.length > 0 && result.pageNum === 1) {
@@ -98,11 +94,10 @@ export default defineComponent({
         this.list = this.list.concat(result.list || [])
         this.finished = result.pageNum >= result.totalPage
         this.params.pageNum = result.pageNum + 1
-        this.dataShow = this.list.length > 0
       } catch {
-        this.dataShow = false
         this.finished = true
       }
+      this.loading = false
     },
     onDetailClick(item: any) {
       if (this.isTab) {
@@ -129,27 +124,24 @@ export default defineComponent({
   render() {
     return (
       <div class={styles.tabList}>
-        {this.dataShow ? (
-          <List
-            v-model:loading={this.loading}
-            finished={this.finished}
-            finishedText=" "
-            immediateCheck={false}
-            class={[styles.goodsList, 'mb12']}
-            onLoad={this.getList}
-          >
-            {this.list.map((item: any) => (
-              <Goods
-                style={{ marginTop: '12px' }}
-                item={item}
-                onItemClick={this.onDetailClick}
-                onBuyClick={this.onBuyClick}
-              />
-            ))}
-          </List>
-        ) : (
-          <ColResult btnStatus={false} classImgSize="SMALL" tips="暂无商品" />
-        )}
+        <List
+          v-model:loading={this.loading}
+          finished={this.finished}
+          finishedText=""
+          immediateCheck={false}
+          class={[styles.goodsList, 'mb12']}
+          onLoad={this.getList}
+        >
+          {this.list.length && this.list.map((item: any) => (
+            <Goods
+              style={{ marginTop: '12px' }}
+              item={item}
+              onItemClick={this.onDetailClick}
+              onBuyClick={this.onBuyClick}
+            />
+          )) || null}
+          { !this.loading && !this.list.length && <ColResult btnStatus={false} classImgSize="SMALL" tips="暂无商品" /> || null}
+        </List>
 
         <Popup
           show={this.addGoodsShow}