下面是一个基于 Uniapp 的油耗计算器实现,包含 Vue 组件和页面代码。
1. 创建页面文件
在 pages
目录下创建 fuel-calculator
页面:
<!-- pages/fuel-calculator/fuel-calculator.vue -->
<template><view class="container"><view class="calculator"><view class="header"><text class="title">油耗计算器</text></view><view class="input-group"><text class="label">当前油价 (元/升)</text><input type="number" v-model="price" placeholder="例如:7.85" class="input"@input="validateInput('price')"/></view><view class="input-group"><text class="label">加油金额 (元)</text><input type="number" v-model="money" placeholder="例如:300" class="input"@input="validateInput('money')"/></view><view class="input-group"><text class="label">行驶里程 (公里)</text><input type="number" v-model="distance" placeholder="例如:450" class="input"@input="validateInput('distance')"/></view><button class="calculate-btn" @click="calculate">计算油耗</button><view class="result" v-if="showResult"><view class="result-header"><text class="result-title">计算结果</text></view><view class="result-item"><text>加油量:</text><text class="result-value">{{ fuel.toFixed(2) }} 升</text></view><view class="result-item"><text>百公里油耗:</text><text class="result-value">{{ consumption.toFixed(2) }} 升/百公里</text></view><view class="result-item"><text>每公里油费:</text><text class="result-value">{{ costPerKm.toFixed(2) }} 元</text></view></view></view></view>
</template><script>
export default {data() {return {price: '',money: '',distance: '',fuel: 0,consumption: 0,costPerKm: 0,showResult: false}},methods: {validateInput(field) {// 确保输入是正数if (this[field] < 0) {this[field] = ''}},calculate() {// 验证输入if (!this.price || !this.money || !this.distance) {uni.showToast({title: '请填写完整信息',icon: 'none'})return}if (this.price <= 0 || this.money <= 0 || this.distance <= 0) {uni.showToast({title: '请输入大于0的数值',icon: 'none'})return}// 计算this.fuel = this.money / this.pricethis.consumption = (this.fuel / this.distance) * 100this.costPerKm = this.money / this.distancethis.showResult = true// 隐藏键盘uni.hideKeyboard()}}
}
</script><style>
.container {padding: 20px;background-color: #f5f5f5;min-height: 100vh;
}.calculator {background-color: #ffffff;border-radius: 10px;padding: 20px;box-shadow: 0 2px 10px rgba(0, 0, 0, 0.1);
}.header {margin-bottom: 25px;
}.title {font-size: 22px;font-weight: bold;color: #333;text-align: center;display: block;
}.input-group {margin-bottom: 20px;
}.label {font-size: 16px;color: #555;font-weight: bold;display: block;margin-bottom: 8px;
}.input {border: 1px solid #ddd;border-radius: 5px;padding: 12px;font-size: 16px;width: 100%;box-sizing: border-box;
}.calculate-btn {background-color: #4CAF50;color: white;border: none;border-radius: 5px;padding: 12px;font-size: 16px;margin-top: 10px;width: 100%;
}.calculate-btn:active {background-color: #45a049;
}.result {margin-top: 25px;padding: 15px;background-color: #f9f9f9;border-radius: 8px;
}.result-header {margin-bottom: 15px;
}.result-title {font-size: 18px;font-weight: bold;color: #333;
}.result-item {display: flex;justify-content: space-between;margin-bottom: 10px;font-size: 16px;
}.result-value {font-weight: bold;color: #2196F3;
}
</style>
2. 配置页面路由
在 pages.json
中添加页面路由配置:
{"pages": [// ...其他页面配置{"path": "pages/fuel-calculator/fuel-calculator","style": {"navigationBarTitleText": "油耗计算器"}}]
}
3. 功能说明
这个 Uniapp 油耗计算器具有以下特点:
-
响应式设计:适配各种屏幕尺寸
-
输入验证:确保输入值为正数
-
计算结果:
-
加油量(升)
-
百公里油耗(升/百公里)
-
每公里油费(元)
-
-
用户体验优化:
-
计算后自动隐藏键盘
-
错误输入提示
-
清晰的结果展示
-
4. 使用方法
-
将代码添加到您的 Uniapp 项目中
-
通过路由跳转或导航栏访问油耗计算器页面
-
输入油价、加油金额和行驶里程
-
点击"计算油耗"按钮查看结果
5. 扩展建议
如果需要进一步增强功能,可以考虑:
-
添加历史记录功能,保存每次计算结果
-
实现多车管理,比较不同车辆的油耗
-
增加图表展示,可视化油耗变化趋势
-
添加分享功能,方便分享计算结果
这个组件已经包含了完整的计算逻辑和基本的UI界面,可以直接集成到您的Uniapp项目中使用。