react响应式进度条

在antd中找到Progress进度条  ctrl+c/v代码,根据实际数据来对进度条做出操作

重点:Math.floor(Math.floor(100 / item.lens) * item.checked_count)

  • 前端 :axios请求获取数据

    import {  Progress } from 'antd';
    {/* 进度条 */}
    <div style={{ marginBottom: 10,}}>
        // item.lens 后端返回数据总条数,item.checked_count选中条数
        // precent 控制百分比
        <Progress 
            percent={Math.floor(Math.floor(100 / item.lens) * item.checked_count)} 
        />
    </div>
  • 后端

    router.get('/data', async (req, res, next) => {
      const pro = await Project.find().lean()    //无限联级
      let obj = {}
      pro.forEach(item => {
        obj[item._id] = item
      });
    
      let data = []
      pro.forEach(item => {
        if (!item["pid"]) {
          data.push(item)
        } else {
          if (!obj[item["pid"]]["children"]) {
            obj[item["pid"]]["children"] = []
          }
          obj[item["pid"]]["children"].push(item)
        }
      });
    
      data.forEach(item => {
        //在字典中进行添加
        if (item.children) {
          item.lens = item.children.length    //选中条数
          let checked_count = 0    //选中数量
          item.children.forEach(i => {
            if (i.check == true) {
              checked_count += 1
            }
          });
          item.checked_count = checked_count
        }
        else {
          item.lens = 0
          item.checked_count = 0
        }
      });
    
    
    
      res.send({ code: 200, data })
    });
  • 后端数据展示

  •  页面展示

 

                     

  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值