uniapp之封装横向进度条

本文介绍了一个针对uni-app投票详情需求的进度条组件封装方法,通过自定义组件实现动态展示投票比例及投票总数,适用于不同场景的进度展示。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

主要是针对投票详情这个需求进行封装,uniapp官方实例中没有进度条;如果不需要显示总数(总票数,可以不绑定这个字段值);效果图如下:

下面看一下实现的代码部分。

1 、在comonents文件下创建一个uni-progress.vue的文件   

<template>
    <view class="uni-progress-box">
        <!-- 进度条底层 -->
        <view class="progress-bottom">
            <!-- 进度条实际 -->
            <view class="progress" :style="{width:percentage+'%', background:percentBackground}"></view>
        </view>
        <!-- 实际进度条占比 -->
        <view class="percentage"> {{ percentage }} % </view>
        <!-- 如果是投票模式,显示投票总数 -->
        <view v-if="explain">{{ explain }}</view>
    </view> 
</template>

<script>
    export default {
        props:{
            // 进度条占比
            percentage:{
                type: Number,
                default: 0
            },
            // 如果是投票模式,已投得票数
            explain:{
                type: [Number,String],
                default: '0票'
            },
            // 进度条占比的颜色设置
            percentBackground:{
                type: String,
                default: null
            }
        },
        data() {
            return {
                
            };
        }
    }
</script>

<style scoped lang="scss">
.uni-progress-box{
    display: flex;
    // 进度条底层样式
    .progress-bottom{
        margin-top:20upx;
        height: 16upx; 
        width: 70%; 
        background: #ccc;
        border-radius: 20upx;
        // 进度条占比样式
        .progress{
            height: 16upx;
            border-radius: 20upx;
        }
    }
    // 已占比的进度条样式
    .percentage{
        margin:0 4%;
    }
}
</style>
 

2 去需要引用进度条的界面,进行引用

import uniProgress from '../../../../components/uni-progress.vue'
    export default {
        components:{
            uniProgress
        },

}

在视图部分使用组件

<uniProgress :percentage="60" explain="6票" percentBackground="#007aff"></uniProgress>
 <uniProgress :percentage="20" explain="2票" percentBackground="red"></uniProgress>
  <uniProgress :percentage="20" explain="2票" percentBackground="yellow"></uniProgress>

作为动态获取的数据,我们需要在 explain  percentage   percentBackground  前面加上:然后再附上变量

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值