更新记录

1.0.0(2023-08-21)

首次更新


平台兼容性

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

下载进度按钮

下载进度按钮是一款基于uniapp的按钮组件,符合easycom模式,无需手动引入,代码简洁、易于理解、使用方便。主要使用场景为:下载页面作为下载按钮动态展示下载进度、静态展示进度条等

快速使用

第一步 安装

下载插件并导入HBulidX

第二步 基本用法

在template中使用

<kt-download-btn :progress="downloadPercent" @click="onClick" successText="下载完成" initText="开始下载"
            failedText="下载失败" ref="downloadBtn"></kt-download-btn>

以下为示例程序代码,可以直接下载示例程序查看。

<template>
    <view class="content">
        <view class="text-area">
            <text>{{title}}</text>
        </view>

        <view class="distance">
            <view class="line"></view><text>基本示例</text>
        </view>

        <kt-download-btn :progress="downloadPercent" @click="onClick" successText="下载完成" initText="开始下载"
            failedText="下载失败" ref="downloadBtn"></kt-download-btn>

        <view class="distance">
            <view class="line"></view><text>下载状态示例</text>
        </view>

        <kt-download-btn :progress="0" ref="btnDownloading"></kt-download-btn>

        <view class="distance">
            <view class="line"></view><text>完成状态示例</text>
        </view>

        <kt-download-btn :progress="downloadPercent" successText="下载完成" ref="btnSuccess">
        </kt-download-btn>

        <view class="distance">
            <view class="line"></view><text>失败状态示例</text>
        </view>

        <kt-download-btn :progress="downloadPercent" ref="btnFailed" failedText="下载失败">
        </kt-download-btn>

        <view class="distance">
            <view class="line"></view><text>进度条示例</text>
        </view>

        <kt-download-btn progress="10">
        </kt-download-btn>
        <view class="distance"></view>
        <kt-download-btn progress="66">
        </kt-download-btn>
        <view class="distance"></view>
        <kt-download-btn progress="88">
        </kt-download-btn>
        <view class="distance"></view>

    </view>

</template>

<script>
    export default {
        data() {
            return {
                title: '下载进度按钮组件主要使用场景如:动态展示下载进度,静态展示进度条等 ',
                downloadPercent: 0
            }
        },
        onShow() {
            // 初始化按钮状态
            this.$nextTick().then(() => {
                this.$refs.btnDownloading.start()
                this.$refs.btnSuccess.success()
                this.$refs.btnFailed.failed()
            });
        },
        methods: {
            onClick() {
                this.downloadPercent = 0
                //模拟下载进度
                const timer = setInterval(() => {
                    this.downloadPercent++
                    if (this.downloadPercent >= 100) {
                        clearInterval(timer)

                    }
                }, 100)

            },
            init() {
                this.downloadPercent = 0
                this.$refs.downloadBtn.init()
            },
            success() {
                this.$refs.downloadBtn.success()
            },
            failed() {
                this.$refs.downloadBtn.failed()
            },
            start() {
                this.$refs.downloadBtn.start()

            }

        }
    }

</script>

<style>
    .content {
        margin: 30rpx;
    }

    .text-area {
        margin-bottom: 30rpx;
        padding-bottom: 30rpx;
        border-bottom: 1px solid #f8f8f8;
    }

    .title {
        font-size: 32rpx;
        color: #333333;
    }

    .line {
        height: 10px;
        background-color: aquamarine;
        width: 5px;
        border-radius: 2px;
        display: inline-block;
        margin-right: 10rpx;
    }

    .distance {
        margin: 30rpx;
    }

</style>

API

Props

属性名 说明 类型 默认值
width 按钮宽度 Number 460 默认单位rpx
color 下载过程中的填充色 String linear-gradient(90deg, #FFCD1E, #FF8A18)
progress 下载进度 String,Number 0
initText 按钮默认状态下显示文本 String 下载
successText 下载成功显示文本 String 完成
failedText 下载失败显示文本 String 失败

Events

事件名 事件说明
@click 点击事件

Function

方法名 方法说明
init() 初始化,使用this.$refs.downloadBtn.init()方式调用,一般用于恢复按钮初始默认状态
start() 开始下载,使用this.$refs.downloadBtn.start()方式调用,一般用于点击按钮执行下载逻辑时调用,另外progress变化也可直接进入下载状态
success() 下载成功,使用this.$refs.downloadBtn.success()方式调用,一般用于下载完成之后主动调用(增加此方法主要为了防止下载进度progress返回不准确的情况)
failed() 下载失败,使用this.$refs.downloadBtn.failed()方式调用,一般用于下载失败时主动调用

有任何优化、建议、bug欢迎留言,一起学习交流。

隐私、权限声明

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

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

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

许可协议

MIT协议

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