# Scroll 列表
列表业务组件,专门为列表而设计的,利用它可以快速实现列表上拉加载、下拉刷新、切换列表、空页面、滑至顶部、触底提示等功能。
# Props
Prop name | Description | Type | Values | Default |
---|---|---|---|---|
tabs | 每个子列表的配置项,当 tabs.length>1 时显示列表栏 | array | [{name: "列表名1" , more: {} , url: "" , list: []} , {name: "列表名2" , more: {} , url: "" , list: []}] | [] |
px | 标题左右间距 | number | - | 20 |
lazy | 是否开启懒加载 | Boolean | String | true , false | true |
value | 当前列表下标 | number | - | 0 |
top | 当前列表内容距离顶部高度,单位 rpx | Number | String | - | 20 |
bottom | 当前列表内容距离底部高度,单位 rpx | number | - | 20 |
tabsHeight | 列表栏高度,单位 rpx | number | - | 80 |
tabRight | 列表栏标签间的间距,单位 rpx,为 0 时为 flex 布局 | number | - | 0 |
bcColor | 列表栏背景颜色 | string | - | "#fff" |
cColor | 列表栏字体颜色 | string | - | "#000" |
blColor | 列表栏下划线颜色 | string | - | "#479ff7" |
downOption | 列表下拉配置 | object | - | { auto: false, // 不自动加载 } |
upOption | 列表上拉配置 | object | - | { auto: false, // 不自动加载 empty: { tip: "~ 空空如也 ~", // 提示 }, } |
# Events
Event name | Properties | Description |
---|---|---|
input | i number - 切换的列表下标 | 切换列表默认通过 v-model 语法糖将下标更改,父组件使用 v-model 或:value |
moreChange | i number - 切换的列表下标 | 切换列表自定义事件回调 |
change | i number - 切换的列表下标 | 切换列表默认事件事件回调 |
success | list array - 加载后的数据 | 上拉加载成功回调 |
downCallback | 下拉刷新回调 |
# Slots
Name | Description | Bindings |
---|---|---|
moreTab | 支持列表右侧自定义内容 | |
支持列表内容插槽 | ||
default | 支持列表内容插槽 |
# Scroll 使用方法
<uct-scroll
:tabs="tabs"
@success="init"
v-model="tabIndex"
@change="changeTabIndex"
:tabRight="tabRight"
>
<view v-for="(item,index) in tabs"
class="px40"
:key="index"
:slot="index">
<view>{{index}}</view>
</view>
</uct-scroll>
export default {
data() {
return {
/**
* @description: 列表配置
* @param {object} name!:String "标题",url:String 请求url,more!:Object|Boolean 请求参数{key:value},api:String 根据api返回list数据,list:Array 请求返回数据
*/
tabs: [
{ name: "标题0", url: "", api: "", more: false, list: [] },
{ name: "标题1", url: "", api: "", more: false, list: [] },
{ name: "标题2", url: "", api: "", more: false, list: [] },
{ name: "标题3", url: "", api: "", more: false, list: [] },
{ name: "标题4", url: "", api: "", more: false, list: [] },
{ name: "标题5", url: "", api: "", more: false, list: [] }
],
tabRight: 100, //列表水平滚动间距,为0时为flex平均分布于
tabIndex: 1 //当前列表下标
};
},
methods: {
changeTabIndex(v) {
console.log(v);
}
}
};