Задача - при изменении единицы измерения считать общий вес продуктов.
Сейчас в массиве данные меняются, но на экране отображаются новые данные только при клике на другие input поля
Есть таблица с данными из массива, с полями: Имя товара, вес нетто, количество.
В таблице есть select с выбором единицы измерения - кг, грамм, чтобы понять в каких единицах задается "вес нетто"
к каждому значению есть коэффециент конверсии conversion_num из отдельного массива
Сейчас при смене единицы измерения запускается функция unitChange, которая меняет данные в массиве, но изменения не отображаются на экране.
Пробовал через computed, получается то же самое.
Что не так делаю?
<tr v-for="(comp, i) in st">
<td>{{comp.name}}</td>
<td>
<input v-model.number="comp.weight_netto">
</td>
<td>
<select @change="unitChange($event.target.value, i)" v-model="comp.unit_id">
<option v-for="val in ul" :value="val.unit_id" v-text="val.name" ></option>
</select>
</td>
<td>
<input v-model.number="comp.quantity">
</td>
<td>{{itemqty(i)}}</td>
</tr>
methods: {
unitChange(value, i){
for (var j=0; j<this.ul.length; j++){
if (this.ul[j].unit_id==value){
this.st[i].conversion_num=this.ul[j].conversion_num;
break;
}
}
},
itemqty(i){
return (this.st[i].weight_netto*this.st[i].quantity)/this.st[i].conversion_num;
}
}