更新记录

1.0.1(2024-08-11) 下载此版本

  • 调整为uni_modules目录规范

平台兼容性

Vue2 Vue3
App 快应用 微信小程序 支付宝小程序 百度小程序 字节小程序 QQ小程序
HBuilderX 3.1.0 app-vue × × ×
钉钉小程序 快手小程序 飞书小程序 京东小程序
× × × ×
H5-Safari Android Browser 微信浏览器(Android) QQ浏览器(Android) Chrome IE Edge Firefox PC-Safari

hj-scroll-right-load

<view style="padding: 20px;box-sizing: border-box;">
    <view class="title">
        单选
    </view>
    <hj-scroll-right-load :showlLoading="showlLoading2" :list="list2" v-model="checkValue2" @load="load2"
        @click="itemClick2" />
    <view class="title">
        多选
    </view>
    <hj-scroll-right-load :showlLoading="showlLoading" multiple :list="list" v-model="checkValue" @load="load"
        @click="itemClick" label-key="name" />
    <view class="title">
    插槽
    </view>
    <hj-scroll-right-load :list="list3" v-model="checkValue3" customBox >
        <template v-slot="{ item }">
            <view style="background-color: aquamarine;border-radius: 50%;margin-right: 10px;padding: 10px;box-sizing: border-box;">
                {{item.label}}
            </view>
        </template>
    </hj-scroll-right-load>
</view>
    export default {
        data() {
            return {
                list: [],
                checkValue: [],
                queryForm: {
                    pageNum: 1,
                    pageSize: 6
                },
                total: 0,
                showlLoading: false,
                //---------------------
                list2: [{
                    value: 0,
                    label: "数据1"
                }, {
                    value: 1,
                    label: "数据2"
                }, {
                    value: 2,
                    label: "数据3"
                }, {
                    value: 3,
                    label: "数据4"
                }, {
                    value: 4,
                    label: "数据5"
                }, {
                    value: 5,
                    label: "数据6"
                }],
                checkValue2: 2,
                showlLoading2: false,
                //---------------------
                list3: [{
                    value: 0,
                    label: "数据1"
                }, {
                    value: 1,
                    label: "数据2"
                }, {
                    value: 2,
                    label: "数据3"
                }, {
                    value: 3,
                    label: "数据4"
                }, {
                    value: 4,
                    label: "数据5"
                }, {
                    value: 5,
                    label: "数据6"
                }],
                checkValue3: 3,
            }
        },
        onLoad() {
            this.fetchData()
        },
        methods: {
            // 请求api
            async fetchData(params) {
                const res = await this.apiMock(params)
                setTimeout(() => { // 模拟加载效果
                    this.showlLoading = false // 关闭加载动画
                    this.list = this.list.concat(res.rows)
                    this.total = res.total
                }, 1000)
            },
            // 右滚动加载
            load(e) {
                // 判断页数
                let size = Math.ceil(this.total / this.queryForm.pageSize)
                if (this.queryForm.pageNum <= size && this.total > this.queryForm.pageSize) {
                    // 开启加载动画
                    this.showlLoading = true
                    this.queryForm.pageNum++
                    this.fetchData()
                }
            },
            load2(e) {
                // console.log("load2---", e)
                // 开启加载动画
                this.showlLoading2 = true
                setTimeout(() => {
                    this.showlLoading2 = false
                },1000)
            },
            // 点击事件
            itemClick(item, index) {
                console.log('itemClick', item.name, index, this.checkValue);
            },
            itemClick2(item, index) {
                console.log('itemClick2', item.label, index, this.checkValue2);
            },
            // 模拟接口返回
            apiMock() {
                return new Promise((resolve) => {
                    if (this.queryForm.pageNum === 1) {
                        let arr = [{
                            name: "测试数据1",
                            value: 1,
                        }, {
                            name: "测试数据2",
                            value: 2,
                        }, {
                            name: "测试数据3",
                            value: 3,
                        }, {
                            name: "测试数据4",
                            value: 4,
                        }, {
                            name: "测试数据5",
                            value: 5,
                        }, {
                            name: "测试数据6",
                            value: 6,
                        }]
                        resolve({
                            rows: arr,
                            total: 8
                        })
                    } else if (this.queryForm.pageNum === 2) {
                        let arr = [{
                            name: "测试数据7",
                            value: 7,
                        }, {
                            name: "测试数据8",
                            value: 8,
                        }]
                        resolve({
                            rows: arr,
                            total: 8
                        })
                    } else if (this.queryForm.pageNum === 3) {
                        resolve({
                            rows: [],
                            total: 8
                        })
                    }
                })
            }
        }
    }

Props

属性名 类型 默认值 说明 是否必填
value Number, String, Array [] 选中数据项
list Array [] 数组
valueKey String 'value' 指定list中下拉框绑定值
labelKey String 'label' 指定list中下拉框显示内容
activeStyle Object {} 激活样式
multiple Boolean false 是否多选
showlLoading Boolean false 是否显示加载动画
customBox Boolean false 自定义滚动区域数据项显示样式
list 数组对象属性
属性名 类型 默认值 说明
value String,Number 绑定值,修改默认属性名:valueKey
label String,Number 绑定内容,修改默认属性名:labelKey

点击事件

事件名称 返回参数 说明
@click 选择对象、下标索引 点击按钮事件
@load 加载更多事件

隐私、权限声明

1. 本插件需要申请的系统权限列表:

2. 本插件采集的数据、发送的服务器地址、以及数据用途说明:

3. 本插件是否包含广告,如包含需详细说明广告表达方式、展示频率:

许可协议

MIT协议

暂无用户评论。

使用中有什么不明白的地方,就向插件作者提问吧~ 我要提问