From 3b03f87a02458f719e2eb4bf112a13441b427d14 Mon Sep 17 00:00:00 2001 From: ‘chensiAb’ <‘chenchenco03@163.com’> Date: Tue, 25 Mar 2025 13:54:34 +0800 Subject: [PATCH] Merge branch 'master' of ssh://dev.zhiheiot.com:29418/mob-components --- _cursor.ai/plugins.doc/infiniteScroll.doc/CInfiniteScroll.doc.md | 91 +++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 91 insertions(+), 0 deletions(-) diff --git a/_cursor.ai/plugins.doc/infiniteScroll.doc/CInfiniteScroll.doc.md b/_cursor.ai/plugins.doc/infiniteScroll.doc/CInfiniteScroll.doc.md new file mode 100644 index 0000000..42f04ea --- /dev/null +++ b/_cursor.ai/plugins.doc/infiniteScroll.doc/CInfiniteScroll.doc.md @@ -0,0 +1,91 @@ +# CInfiniteScroll 无限滚动组件 + +## 功能说明 + +该组件实现了移动端常见的下拉刷新和上拉加载更多功能,支持自动加载第一页和手动触发加载,适用于列表展示场景。内置了加载状态、空数据状态和加载完成状态的显示,使用简单便捷。 + +## 引用方式 + +```js +import { CInfiniteScroll } from '@components/plugins/infiniteScroll'; +``` + +## 组件参数 + +- `autoInit` (Boolean,默认值:false):是否自动初始化(自动加载第一页) +- `onLoadMore` (Function,必填):发起加载页面数据的回调函数 + - `current` (Number):当前页页码 + - `next` (Number):需要加载的页面页码 + - `success` (Function):当加载成功后调用 + - 参数:`{ pageTotal: Number }` 总页数 + - `fail` (Function):加载失败后调用 + +## 实例方法 + +- `$initScroll`:初始化加载第一页数据 +- `$refresh`:重置并刷新数据 + - `autoStart` (String,可选):当值为 'off' 时不会自动加载,其他值或不传时会立即加载 + +## 使用示例 + +### 基础用法 + +```html +<template> + <view class="page"> + <CInfiniteScroll + ref="scrollList" + :autoInit="true" + :onLoadMore="handleLoadMore" + > + <view class="list-item" v-for="(item, index) in list" :key="index"> + {{ item.name }} + </view> + </CInfiniteScroll> + </view> +</template> + +<script> +import { CInfiniteScroll } from '@components/plugins/infiniteScroll'; +import { $fetchCommon } from '@fetchers/FCommon'; + +export default { + components: { + CInfiniteScroll + }, + data() { + return { + list: [] + } + }, + methods: { + handleLoadMore({ current, next, success, fail }) { + $fetchCommon.getList({ page: next }).then(res => { + // 拼接数据 + if (current === 0) { + this.list = res.list; + } else { + this.list = this.list.concat(res.list); + } + success({ + pageTotal: res.pageTotal + }); + }).catch(() => { + fail(); + }); + }, + // 手动刷新列表 + refreshList() { + this.$refs.scrollList.$refresh(); + } + } +} +</script> +``` + +## 注意事项 + +- 组件通过检测滚动位置自动触发加载更多功能 +- 下拉刷新功能仅在滚动到顶部时可用 +- 加载状态会自动管理,包括"加载中"、"没有更多了"和"暂无数据"等提示 +- 组件内部对 H5 和小程序环境做了适配,在不同平台上使用相同的 API 即可 \ No newline at end of file -- Gitblit v1.9.1