如何从 Vuetify 进度条计算中删除空值

Posted

技术标签:

【中文标题】如何从 Vuetify 进度条计算中删除空值【英文标题】:How to remove null values from Vuetify Progress Bar Calculation 【发布时间】:2018-10-13 01:53:35 【问题描述】:

我有一个进度条,当您点击页面上的 12 个复选框时,完成百分比会发生变化。问题是公式生成 NaN 直到所有框都被选中(然后是 100)。

如何忽略公式中的空值,以便即使只选中一两个框,进度条也能正常工作?

用 vue.js 构建...

进度条:

<v-progress-linear v-model="valueDeterminate" value="12" color="success"></v-progress-linear>

带有复选框的卡片示例:

<v-card flat class="ma-1 pa-3 text-xs-left">
    <v-checkbox
      v-model="member.verifiedref3"
      color="success"
      hide-details
      @change="updateValid"
    ></v-checkbox>
    <div class="title mb-2">Reference 3</div>
    <p>Name:  member.reference3 <br />
    Phone:  member.reference3Phone <br />
    Description:  member.reference3Description </p>
  </v-card-text>
  </v-card>

方法:

updateValid () 
  let member = this;
  this.$store.dispatch('updateVerification', member)

计算:

validprogress ()
  let progress = (this.member.verifiedname + this.member.verifiedaddress + this.member.verifieddob + this.member.verifiedirs + this.member.verifiedlicense + this.member.verifiedins + this.member.verifiedcar + this.member.verifiedtools + this.member.verifiedexamples + this.member.verifiedref1 + this.member.verifiedref2 + this.member.verifiedref3) * (100/12);
  this.valueDeterminate = progress;
  return progress
,

在 vuex 商店中:

updateVerification (commit, payload) 
      const db = firebase.database()
      console.log(payload);
      db.ref("contractor").child(payload.id).update(payload)
    ,

【问题讨论】:

使用radiobox或者这样+ (this.member.verifiedname || false) + 你能提供一个codepen吗?这是一个带有 vuetify 的空模板template.vuetifyjs.com 您解决了吗?如果是这样,您可以发布或接受答案吗? 【参考方案1】:

我想您可以只计算复选框值数组中true 值的数量,然后以百分比的形式返回值。 从v-progress-linear 中删除v-model,只留下value

<v-progress-linear :value="percentageCompleted"></v-progress-linear>

计算值:

percentageCompleted () 
    let checkboxValues = [
        this.member.verifiedname,  
        this.member.verifiedaddress,
        this.member.verifieddob,
        this.member.verifiedirs, 
        this.member.verifiedlicense,
        this.member.verifiedins,
        this.member.verifiedcar,
        this.member.verifiedtools,
        this.member.verifiedexamples,
        this.member.verifiedref1,
        this.member.verifiedref2,
        this.member.verifiedref3,
    ]
    const countTruthy = (a, b) => 
           return b ? a + 1 : a;
    
    return checkboxValues.reduce(countTruthy, 0) / checkboxValues.length * 100;
,

【讨论】:

以上是关于如何从 Vuetify 进度条计算中删除空值的主要内容,如果未能解决你的问题,请参考以下文章

怎么在RichEdit中插入进度条

如何显示ProgressBar的进度条,给分100

如何删除进度条的验证以保存功能

如何使进度条加快

c#winform,关于进度条当前进度的计算。求助,大侠进,在线等...

如何在service中同步更新通知activity中的进度条