Как суммировать значения в VueJs - PullRequest
0 голосов
/ 10 апреля 2020

Может ли кто-нибудь помочь мне в сумме значений в VueJs Я пытаюсь получить сумму продуктов. Все мои продукты отображаются в теге выбора опций по v-for. Я добавляю событие по клику, и после этого я получаю значение цены в методе. Если кто-то есть информация о решении этой проблемы, я так благодарен

это мой код в Vue компонент

<div class="form-group row">
  <label class="typo__label col-sm-3 col-form-label">Продукты</label>
  <div class="col-sm-9">
    <multiselect selectLabel="Выбрать" deselectLabel="Удалить" selectedLabel="Выбрано" @input="setSelected"
      :taggable="true" v-model="formData.products" :options="this.$store.state.order.products" :multiple="true"
      :hideSelected="true" :custom-label="titleWithPrice" :close-on-select="false" :clear-on-select="false"
      :preserve-search="true" placeholder="Выберите продукты" label="title" track-by="id" :preselect-first="true">
      <template slot="selection" slot-scope="{ values, search, isOpen }"><span class="multiselect__single"
          v-if="values.length &amp;&amp; !isOpen">{{ values.length }} options selected</span></template>
    </multiselect>
  </div>
</div>

это мой код в методе

setSelected(value) {
            let prices = value;
            prices.forEach((price) => {
                this.price = price.price
            })
        }

это мой код вычисляется

 totalItem: function(){
            let sum = 0;
            this.items.forEach(function(item) {
                sum += (parseFloat(item.price));
            });

            return sum;
        }

1 Ответ

0 голосов
/ 10 апреля 2020

Если formData.products правильно устанавливает выбранные значения, то вы можете напрямую получить сумму значений из вычисленного сечения.

computed:{
  sum : function(){
    let products = this.formData.products;
    return products.reduce((a,b)=>{
      return parseFloat(a.price) + parseFloat(b.price);
    })
  }
}
...