Вычисляемая недвижимость - цена нетто и цена за единицу - PullRequest
0 голосов
/ 01 июля 2018

У меня есть массив предметов с количеством и ценой (до вычета налогов). Я хотел бы посчитать цену нетто и цену за один товар. У меня также есть фильтр, который позволяет отображать валюту и хотел бы отображать этот фильтр рядом с созданным вычисляемым свойством. Вычисленные свойства и отображение фильтра рядом с ними не работают. Что я могу сделать, чтобы заставить их работать? JSFiddle здесь

HTML:

<table>
    <thead>
      <tr class="table-head">
        <th v-for="item in tableHead">{{ item.name }} <span>{{ item.desc }}</span></th>
      </tr>
    </thead>
    <tbody>
      <tr v-for="(element, index) in amount">
        <td>{{ element.amount }}</td>
        <td>
          {{ priceNet }}

        </td>
        <td>
          {{ element.price | curr }}
          {{ pricePerItem }}
        </td>
      </tr>
    </tbody>
  </table>

Vue Js:

new Vue({
  el: "#app",
  data: {
    tableHead: [
      { name: 'amount', desc: '' },
      { name: 'price', desc: '(net)' },
      { name: 'price', desc: '(pre-tax)' }
    ],
    amount: [
      { amount: 100, price: 80.61 },
      { amount: 250, price: 72.10 },
      { amount: 500, price: 79.62 },
      { amount: 1000, price: 100.20 },
      { amount: 2500, price: 147.60 },
      { amount: 5000, price: 232.56 }
    ]
  },
  computed: {
    priceNet() {
      this.amount.forEach((element) => {
        let net = (element.price / 1.23);
        return net;
      })
    },
    pricePerItem() {
      this.amount.forEach((element) => {
        let priceP = element.price / element.amount;
        return priceP;
      })
    }
  },
  filters: {
    curr: (value) => {
      return `${value.toFixed(2)} euro`
    }
  }
})

1 Ответ

0 голосов
/ 01 июля 2018

Вместо computed вы хотите methods:

methods: {
  priceNet(price) {
    return price / 1.23
  },
  pricePerItem(price, amount) {
    return price / amount
  }
},

затем в вашем html обновлении привязок:

<tr v-for="(element, index) in amount">
    <td>{{ element.amount }}</td>
    <td>{{ priceNet(element.price) | curr }}</td>
    <td>
      {{ element.price | curr }}
      {{ pricePerItem(element.price, element.amount) | curr }}
    </td>
</tr>

Обновленная скрипка:

https://jsfiddle.net/75Lk2tpe/1/

...