该航班卡片可用于展示航班信息,包括出发航班、返程航班、航班票价、税费和总价。用户可以轻松查看航班详情,并通过点击按钮进行购买。
此代码的主要功能包括:
1. 数据绑定
首先,我们需要定义一个 data
对象来存储航班信息:
const data = ref({
departureFlight: {
// ...
},
returnFlight: {
// ...
},
flightTickets: 1044.97,
tax: 112.24,
total: 1157.21,
});
2. 航班信息展示
在模板中,我们可以使用 v-for
循环来遍历航班信息,并使用插值语法显示航班详情:
<div class="bg-gray-800 px-4 py-6">
<div class="text-white text-lg font-semibold">Departure Flight</div>
<div class="flex items-center justify-between mt-4">
<div class="flex items-center">
<div class="w-10 h-10 rounded-full bg-gray-600 mr-2"></div>
<div>
<div class="text-white text-sm">{{ data.departureFlight.airline }}</div>
<div class="text-gray-400 text-xs">{{ data.departureFlight.departureAirport }} > {{ data.departureFlight.arrivalAirport }}</div>
</div>
</div>
<div>
<div class="text-white text-sm">{{ data.departureFlight.departureTime }}</div>
<div class="text-gray-400 text-xs">23 Kg / Person</div>
</div>
<div class="text-white text-lg font-semibold">${{ data.departureFlight.price }}</div>
</div>
</div>
3. 航班票价计算
在 data
对象中,我们可以定义一个计算属性来计算总票价:
computed: {
totalTicketsPrice() {
return this.data.departureFlight.price + this.data.returnFlight.price;
},
},
4. 税费计算
类似地,我们可以定义一个计算属性来计算税费:
computed: {
tax() {
return this.totalTicketsPrice * 0.1;
},
},
5. 总价计算
最后,我们可以定义一个计算属性来计算总价:
computed: {
total() {
return this.totalTicketsPrice + this.tax;
},
},
6. 按钮功能
在模板中,我们可以使用 van-button
组件来创建按钮:
<div class="flex justify-center mt-8">
<van-button round type="primary" size="large">CHECKOUT</van-button>
</div>
点击按钮时,我们可以触发购买航班的逻辑,例如跳转到支付页面。
开发过程中的经验与收获
通过开发这段代码,我巩固了对 Vue、ECharts 和其他第三方库的使用。我还了解了如何设计和实现一个交互式的用户界面。
未来该卡片功能的拓展与优化
未来,该卡片功能可以进一步拓展和优化,例如: