vant 3环形进度条

<template>
  <div class="circle-page1">
    <van-circle
      :id="id"
      class="circle-box"
      v-model:current-rate="currentRate"
      layer-color="rgb(75, 87, 105)"
      :stroke-width="86"
      :clockwise="false"
      :color="gradientColor"
      :rate="rate"
      :speed="speed"
      text=""
    />
    <!-- <div :class="props.total_score-0 > 9999 ? 'point-box1' : 'point-box'">
            <span class="point-number" :class="props.total_score-0 > 9999 ?'numberMore':''">{{props.total_score}}</span>
            <span class="fen">分</span>
        </div> -->
  </div>
</template>
<script setup>
  import { ref, onMounted, defineProps, nextTick, watch } from 'vue'
  import { useRoute } from 'vue-router'
  let props = defineProps({
    total_score: {},
    id: {},
    total_full_score: {}
  })
  const route = useRoute()

  console.log(props, 'props')
  let rate = ref(0)
  let speed = ref(0)
  onMounted(() => {})
  const currentRate = ref(0)
  const gradientColor = {
    '0%': '#89D2FA',
    '50%': '#6CAFF6',
    '100%': '#4F8CF2'
  }

  watch(
    () => props.total_score,
    (val) => {
      nextTick(() => {
        let dom = document.getElementById(props.id)?.getElementsByTagName('linearGradient')[0]
        dom && dom.setAttribute('x1', '0%')
        dom && dom.setAttribute('y2', '100%')
      })
      console.log(props.total_score, 'props.total_score')
      rate.value = Math.ceil((+props.total_score / +props.total_full_score) * 100)
      if (!route.query.back) {
        speed.value = rate.value / 5.2
      }
    }
  )
  watch(currentRate, (newValue, oldValue) => {
    // console.log('新值是' + newValue, '旧址是' + oldValue)
  })
</script>
<style scoped lang="scss">
  .circle-page1 {
    position: relative;
    width: 300px;
    height: 300px;
    display: flex;
    align-items: center;
    justify-content: center;

    .circle-box {
      width: 298px;
      height: 298px;
    }
  }
</style>

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值