私はホテルの予約申込み書を作成していますが、現在私は予約の部分に取り組んでいます。Vue.jsを使用した動的価格計算
ここでは、選択した部屋のタイプと大人の人数と選択ボックスを使用している子供の人数を編集するオプションをユーザに提供しています。
明らかに、ユーザーが1人の大人と子供がいない部屋タイプ「スタンダードルーム」を選択した場合、その特定のルームに既に保存されているデフォルト価格値を取得できます。
私は、このステップにバイオリンを添付しました:
https://jsfiddle.net/c1ud4mkv/。
私はこのステップの後で助けが必要です。ユーザーが大人2名と子供1名または2名で宿泊する必要がある場合は、それに応じて価格を変更する必要があります。
たとえば、大人1名様のスタンダードルームタイプの料金は、現在Rs.1000です。
ユーザーが大人1人を追加したい場合は、価格をRs.2000に変更する必要があることを意味します。また、大人2名と一緒に1名の子供を追加する必要がある場合は、Rs.3000(Rs.2000 + Rs.1000)として計算する必要があることを意味します(Rs.1000は子供1名追加の料金です)。
HTML:
<div id="app">
<table>
<thead>
<td>Room Type</td>
<td>Adult</td>
<td>Children</td>
<td>Total Price</td>
</thead>
<tbody>
<tr v-for="(row, index) in rows">
<td>
<select data-value="Room Type">
<option v-for="room in rooms">{{room.title}}</option>
</select>
</td>
<td>
<select data-value="1 Adult">
<option value="1">1 Adult</option>
<option value="2">2 Adults</option>
</select>
</td>
<td>
<select data-value="No Child">
<option value="1">No Child</option>
<option value="2">1 Child</option>
<option value="3">2 Children</option>
</select>
</td>
<td v-for="item in items">
{{item.price}}
</td>
</tr>
</tbody>
</table>
<div class="add-remove">
<div class="col-md-6 text-center add">
<a @click="addRoom" class="add-room"> Add Room </a>
</div>
<div class="col-md-6 text-center remove">
<a @click="removeRoom(index)" class="remove-room"> Remove Room </a>
</div>
</div>
</div>
、スクリプトました:
new Vue({
el: '#app',
data: {
rows: [],
rooms: [
{
value:0,
title: 'Standard Room'
},
{
value:0,
title: 'Deluxe Room'
},
],
items: [{
price: 1000,
}]
},
methods: {
addRoom: function() {
var elem = document.createElement('tr');
this.rows.push({
});
},
removeRoom: function(index) {
this.rows.splice(index, 1);
},
}
})
そしてjsfiddleリンクは、これが最良のコンポーネントで解決される可能性がありますhttps://jsfiddle.net/c1ud4mkv/
です。複数の部屋はどうですか? –
私は単純な(そして素早い)例を望んでいました。後は、あなたが好きなように複雑にしてください:-)状態はマークアップから店に出て、総価格は計算されたプロパティである必要があります。 (それが反応するのでメソッドより優れています) – bbsimonbb
計算されたプロパティはより良い、同意です。しかし、コンポーネントを使用せずに配列のオブジェクトの計算されたプロパティを宣言するにはどうすればいいですか? –