微信小程序电子菜单点菜系统模块代码分析
微信小程序电子菜单点菜系统的模块代码,包括菜品列表展示,菜品详情页面,购物车页面,以及结算页面功能模块
1、WXML(菜品列表页面):
```html
<!-- pages/dishList/dishList.wxml -->
<view class="dish-list">
? <block wx:for="{{dishes}}" wx:key="id">
? ? <view class="dish-item" data-id="{{item.id}}" bindtap="addToCart">
? ? ? <image src="{{item.image}}" mode="aspectFill"></image>
? ? ? <view class="dish-info">
? ? ? ? <text class="dish-name">{{item.name}}</text>
? ? ? ? <text class="dish-price">¥{{item.price}}</text>
? ? ? </view>
? ? </view>
? </block>
</view>
```
WXSS:
```css
/* pages/dishList/dishList.wxss */
.dish-list {
? display: flex;
? flex-wrap: wrap;
? justify-content: space-between;
}
.dish-item {
? width: 45%;
? margin-bottom: 20rpx;
? border: 1rpx solid #e0e0e0;
? padding: 10rpx;
? box-sizing: border-box;
? position: relative;
}
.dish-info {
? padding-top: 10rpx;
? text-align: center;
}
.dish-name {
? font-size: 28rpx;
? color: #333;
}
.dish-price {
? font-size: 24rpx;
? color: #f00;
}
```
JS(菜品列表页面逻辑):
javascript
// pages/dishList/dishList.jsPage({
? data: {
? ? dishes: [
? ? ? { id: 1, name: '红烧肉', price: 38, image: 'dish1.jpg' },
? ? ? { id: 2, name: '鱼香肉丝', price: 28, image: 'dish2.jpg' },
? ? ? // 其他菜品数据...
? ? ],
? ? cart: [] ?// 购物车
? },
? addToCart: function(event) {
? ? let dishId = event.currentTarget.dataset.id;
? ? let selectedDish = this.data.dishes.find(dish => dish.id === dishId);
? ? this.data.cart.push(selectedDish);
? ? this.setData({
? ? ? cart: this.data.cart
? ? });
? }
});
```
2、菜品详情页面的代码。
WXML(菜品详情页面):
```html<!-- pages/dishDetail/dishDetail.wxml -->
<view class="dish-detail">
? <image src="{{dish.image}}" mode="aspectFill"></image>
? <view class="dish-info">
? ? <text class="dish-name">{{dish.name}}</text>
? ? <text class="dish-price">¥{{dish.price}}</text>
? ? <text class="dish-description">{{dish.description}}</text>
? </view>
? <button bindtap="addToCart">加入购物车</button>
</view>
```
WXSS:
```css/* pages/dishDetail/dishDetail.wxss */
.dish-detail {
? padding: 20rpx;
? box-sizing: border-box;
}
.dish-info {
? margin-top: 20rpx;
? text-align: center;
}
.dish-name {
? font-size: 32rpx;
? color: #333;
}
.dish-price {
? font-size: 28rpx;
? color: #f00;
? margin-top: 10rpx;
}
.dish-description {
? font-size: 26rpx;
? color: #666;
? margin-top: 20rpx;
}
button {
? width: 100%;
? height: 80rpx;
? line-height: 80rpx;
? background-color: #f00;
? color: #fff;
? font-size: 32rpx;
? text-align: center;
? border: none;
? border-radius: 10rpx;
? margin-top: 40rpx;
}
```
JS(菜品详情页面逻辑):
```javascript
// pages/dishDetail/dish.js
Page({
? data: {
? ? dish: {
? ? ? id: 1,
? ? ? name: '红烧肉',
? ? ? price: 38,
? ? ? image: 'dish1.jpg',
? ? ? description: '红烧肉是一道传统的中式菜肴...'
? ? }
? },
? addToCart: function() {
? ? // 将当前菜品添加到购物车,具体逻辑根据实际需求实现
? }
});
```
需要自行扩展菜品的图片、名称、价格、描述,菜品的规格选择、数量选择等功能。
?
3、购物车页面代码。
WXML(购物车页面):
```
<!-- pages/shoppingCart/shoppingCart.wxml -->
<view class="shopping-cart">
? <block wx:for="{{cart}}" wx:key="index">
? ? <view class="cart-item">
? ? ? <image src="{{item.image}}" mode="aspectFill"></image>
? ? ? <view class="cart-info">
? ? ? ? <text class="cart-name">{{item.name}}</text>
? ? ? ? <text class="cart-price">¥{{item.price}}</text>
? ? ? </view>
? ? </view>
? </block>
? <button bindtap="checkout">去结算</button>
</view>
```
WXSS:
```
/* pages/shoppingCart/shoppingCart.wxss */
.shopping-cart {
? padding: 20rpx;
? box-sizing: border-box;
}
.cart-item {
? display: flex;
? align-items: center;
? margin-bottom: 20rpx;
}
.cart-info {
? margin-left: 20rpx;
}
.cart-name {
? font-size: 28rpx;
? color: #333;
}
.cart-price {
? font-size: 24rpx;
? color: #f00;
? margin-top: 10rpx;
}
button {
? width: 100%;
? height: 80rpx;
? line-height: 80rpx;
? background-color: #f00;
? color: #fff;
? font-size: 32rpx;
? text-align: center;
? border: none;
? border-radius: 10rpx;
? margin-top: 40rpx;
}
```
JS(购物车页面逻辑):
```
// pages/shoppingCart/shoppingCart
Page({
? data: {
? ? cart: [
? ? ? {
? ? ? ? id: 1,
? ? ? ? name: '红烧肉',
? ? ? ? price: 38,
? ? ? ? image: 'dish1.jpg'
? ? ? },
? ? ? {
? ? ? ? id: 2,
? ? ? ? name: '宫保鸡丁',
? ? ? ? price: 28,
? ? ? ? image: 'dish2.jpg'
? ? ? }
? ? ]
? },
? checkout: function() {
? ? // 进入结算页面,具体逻辑根据实际需求实现 ?}
});
```
后续需要根据需求完善购物车页面的菜品数量修改、删除菜品等功能,并与结算页面进行数据交互。
?
4、结算页面代码
WXML(结算页面):
html
<!-- pages/checkout/checkout.wxml -->
<view class="checkout">
? <view class="order-summary">
? ? <text class="summary-text">订单总价:</text>
? ? <text class="summary-price">¥{{totalPrice}}</text>
? </view>
? <button bindtap="confirmOrder">确认订单</button>
</view>
```
WXSS:
css
/* pages/checkout/checkout.wxss */
.checkout {
? padding: 20rpx;
? box-sizing: border-box;
}
.order-summary {
? display: flex;
? justify-content: space-between;
? margin-bottom: 40rpx;
}
.summary-text {
? font-size: 28rpx;
? color: #333;
}
.summary-price {
? font-size: 32rpx;
? color: #f00;
}
button {
? width: 100%;
? height: 80rpx;
? line-height: 80rpx;
? background-color: #f00;
? color: #fff;
? font-size: 32rpx;
? text-align: center;
? border: none;
? border-radius: 10rpx;
}
```
JS(结算页面逻辑):
```javascript// pages/checkout/.js
Page({
? data: {
? ? totalPrice: 0, // 订单总价,根据实际情况进行算
? },
? confirmOrder: function() {
? ? // 确认订单,具体逻辑根据实际需求实现 ?}
});
```
后续需要根据需求完善结算页面的支付方式选择、订单信息展示等功能,并与后台系统进行数据交互。
?
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!