做一个微信购物小程序的个人中心与购物车的代码例子
时间: 2024-03-29 18:40:21 浏览: 92
以下是一个简单的微信购物小程序的个人中心和购物车的代码示例,仅供参考:
1. `index.wxml` 文件
```xml
<!--个人中心页面-->
<view class="container">
<view class="user-info">
<image src="{{userInfo.avatarUrl}}" class="avatar"></image>
<text class="nickname">{{userInfo.nickName}}</text>
<button class="edit-btn" bindtap="goToEdit">编辑</button>
</view>
<view class="order-list">
<view class="order-item" wx:for="{{orderList}}" wx:key="index">
<image src="{{item.imageUrl}}" class="order-img"></image>
<text class="order-name">{{item.name}}</text>
<text class="order-price">{{item.price}}</text>
</view>
</view>
</view>
<!--购物车页面-->
<view class="container">
<view class="cart-list">
<view class="cart-item" wx:for="{{cartList}}" wx:key="index">
<image src="{{item.imageUrl}}" class="cart-img"></image>
<text class="cart-name">{{item.name}}</text>
<text class="cart-price">{{item.price}}</text>
<button class="delete-btn" bindtap="deleteFromCart" data-index="{{index}}">删除</button>
</view>
</view>
<view class="cart-total">
<text class="total-text">总计:</text>
<text class="total-price">{{totalPrice}}</text>
<button class="pay-btn" bindtap="goToPay">去结算</button>
</view>
</view>
```
2. `index.js` 文件
```javascript
Page({
data: {
userInfo: {},
orderList: [
{
name: '商品1',
price: 10.00,
imageUrl: 'https://www.example.com/image1.jpg'
},
{
name: '商品2',
price: 20.00,
imageUrl: 'https://www.example.com/image2.jpg'
}
],
cartList: [],
totalPrice: 0.00
},
onLoad: function () {
// 获取用户信息
wx.getUserInfo({
success: res => {
this.setData({
userInfo: res.userInfo
})
}
})
// 获取购物车数据
let cartList = wx.getStorageSync('cartList') || []
this.setData({
cartList: cartList
})
// 计算总价
let totalPrice = 0.00
for (let i = 0; i < cartList.length; i++) {
totalPrice += cartList[i].price
}
this.setData({
totalPrice: totalPrice.toFixed(2)
})
},
// 进入个人信息编辑页面
goToEdit: function () {
wx.navigateTo({
url: '/pages/edit/edit'
})
},
// 从购物车删除商品
deleteFromCart: function (e) {
let index = e.currentTarget.dataset.index
let cartList = this.data.cartList
cartList.splice(index, 1)
wx.setStorageSync('cartList', cartList)
// 更新购物车数据和总价
this.setData({
cartList: cartList,
totalPrice: (this.data.totalPrice - cartList[index].price).toFixed(2)
})
},
// 进入结算页面
goToPay: function () {
wx.navigateTo({
url: '/pages/pay/pay'
})
}
})
```
3. `edit.wxml` 文件
```xml
<!--个人信息编辑页面-->
<view class="container">
<form bindsubmit="submitForm">
<view class="form-item">
<text class="label">昵称:</text>
<input class="input" name="nickname" value="{{userInfo.nickName}}"></input>
</view>
<view class="form-item">
<text class="label">性别:</text>
<picker class="picker" name="gender" value="{{userInfo.gender}}" range="{{genderList}}" range-key="{{genderKey}}" bindchange="pickerChange"></picker>
</view>
<view class="form-item">
<text class="label">城市:</text>
<input class="input" name="city" value="{{userInfo.city}}"></input>
</view>
<view class="form-item">
<text class="label">个性签名:</text>
<textarea class="textarea" name="signature" value="{{userInfo.signature}}"></textarea>
</view>
<button class="save-btn" formType="submit">保存</button>
</form>
</view>
```
4. `edit.js` 文件
```javascript
Page({
data: {
userInfo: {},
genderList: ['男', '女', '未知'],
genderKey: ['1', '2', '0']
},
onLoad: function () {
// 获取用户信息
wx.getUserInfo({
success: res => {
this.setData({
userInfo: res.userInfo
})
}
})
},
// picker值改变时触发
pickerChange: function (e) {
let userInfo = this.data.userInfo
userInfo.gender = e.detail.value
this.setData({
userInfo: userInfo
})
},
// 提交表单
submitForm: function (e) {
let userInfo = e.detail.value
wx.setStorageSync('userInfo', userInfo)
wx.navigateBack()
}
})
```
以上是一个简单的微信购物小程序的个人中心和购物车的代码示例,其中包含了获取用户信息、存储购物车数据、计算总价、删除购物车商品、编辑个人信息等功能。实际开发中,还需要根据具体需求进行修改和扩展。
阅读全文