| 
					
				 | 
			
			
				@@ -0,0 +1,108 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import ColEmpty from '@/components/col-empty' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Pagination from '@/components/pagination' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import request from '@/helpers/request' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import styles from './index.module.less' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { ElSkeleton, ElSkeletonItem } from 'element-plus' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import { defineComponent } from 'vue' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+import Item from './item' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+export default defineComponent({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  name: 'list', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  data() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      pageInfo: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        // 分页规则 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        limit: 10, // 限制显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page: 1, // 当前页 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        total: 0, // 总条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        page_size: [10, 20, 40, 50] // 选择限制显示条数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      list: [] as any[], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      loading: false, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      dataShow: false // 是否有数据 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  mounted() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    this.getList() 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  methods: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    async getList() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      this.loading = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      try { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        const { data } = await request.post( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          '/api-website/student/queryMyFollow', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            requestType: 'json', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            data: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              page: this.pageInfo.page, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              rows: this.pageInfo.limit 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.list = data.rows || [] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.pageInfo.total = data.total 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if (data.total <= 0) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.dataShow = true 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } catch {} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      if (this.dataShow) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        this.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        setTimeout(() => { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          this.loading = false 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        }, 200) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  render() { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      <> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <div class="px-[38px] pt-4"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          <ElSkeleton 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            loading={this.loading} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            animated 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            class=" w-full m-auto px-[14px] flex items-center flex-col" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            count={3} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            v-slots={{ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              template: () => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                <div class="h-[94px] flex items-center justify-between w-full mb-2"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <div class="w-2/3 flex items-center"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <ElSkeletonItem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      variant="circle" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      style={{ width: '66px', height: '66px' }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    ></ElSkeletonItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    <div class="w-1/2 pl-2"> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <ElSkeletonItem variant="h3"></ElSkeletonItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      <ElSkeletonItem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        variant="p" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                        style={{ width: '50%' }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                      ></ElSkeletonItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  <ElSkeletonItem 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    variant="p" 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    style={{ width: '20%' }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                  ></ElSkeletonItem> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            }} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          > 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            {this.list.map((item: any) => ( 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+              <Item class="mb-2" item={item} /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            ))} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          </ElSkeleton> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        </div> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        <Pagination 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          total={this.pageInfo.total} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          v-model:page={this.pageInfo.page} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          limit={this.pageInfo.limit} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pageSizes={this.pageInfo.page_size} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          pagination={this.getList} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        /> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        {this.dataShow && <ColEmpty />} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      </> 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    ) 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}) 
			 |